/**
 * Portal light theme — matches frount/locations.html + styles.css defaults
 */
:root {
  --portal-border: #E4E4E7;
  --portal-surface: #ffffff;
  --portal-muted: #71717A;
  --portal-accent: #FD3A25;
  --portal-accent-soft: rgba(253, 58, 37, 0.12);
}

/* ——— Base ——— */
html.admin-root,
html.admin-root body.admin-page,
body.locations-page,
body.location-login {
  min-height: 100vh;
  background-color: var(--body, #EDECEC) !important;
  background-image: radial-gradient(circle at top right, rgba(234, 43, 22, 0.1), transparent 32%) !important;
  color: var(--primary, #09090B) !important;
}

body.locations-page #wrapper,
body.admin-page #wrapper,
body.admin-page .container,
body.admin-page .section-blog,
body.admin-page .section-page-title,
body.locations-page .section-blog,
body.locations-page .section-page-title {
  background: transparent !important;
  color: inherit !important;
}

.locations-page .page-title,
.locations-page .breadcrumbs,
.locations-page h1,
.locations-page h2,
.locations-page h3,
.locations-page h4,
.locations-page h5,
.locations-page h6,
.locations-page .fw-semibold,
.locations-page .location-card .infor_name,
.admin-page .page-title,
.admin-page h1,
.admin-page h2,
.admin-page h3,
.admin-page h4,
.admin-page h5,
.admin-page h6,
.admin-page .fw-semibold,
.admin-page label,
.admin-page th,
.admin-page td,
.admin-page p,
.admin-page .admin-label {
  color: var(--primary, #09090B) !important;
}

.locations-page .text-secondary,
.admin-page .text-secondary,
.admin-page .admin-table th {
  color: var(--secondary, #71717A) !important;
}

.locations-page .link1,
.admin-page a.item-link {
  color: var(--primary, #09090B) !important;
}

.nav-menu-main .active,
.admin-page .nav-menu-main .active {
  color: var(--portal-accent) !important;
}

.admin-page .tf-header,
.locations-page .tf-header {
  background: transparent !important;
  border-bottom: 0 !important;
}

/* ——— Locations list ——— */
.location-toolbar {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
}

.location-search-wrap input,
.location-film-filter {
  background: var(--neutral-50, #FAFAFA);
  border: 1px solid var(--portal-border);
  color: var(--primary);
}

.location-search-wrap input::placeholder {
  color: var(--portal-muted);
}

.locations-counter {
  border: 1px solid var(--portal-border);
  background: var(--neutral-50, #FAFAFA);
  color: var(--primary);
}

.location-meta-item {
  background: var(--neutral-50, #FAFAFA);
  border: 1px solid var(--portal-border);
  color: var(--primary);
}

.location-empty {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface);
  color: var(--portal-muted);
}

.locations-loading {
  color: var(--portal-muted);
}

.locations-pagination button {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface);
  color: var(--primary);
}

.locations-pagination button:hover:not(:disabled) {
  background: var(--portal-accent-soft);
  border-color: rgba(253, 58, 37, 0.35);
}

.locations-pagination button.is-active {
  background: var(--portal-accent-soft);
  border-color: rgba(253, 58, 37, 0.45);
  color: var(--portal-accent);
}

.locations-pagination-info {
  color: var(--portal-muted);
}

.header-user-chip {
  border: 1px solid var(--portal-border);
  background: rgba(255, 255, 255, 0.8);
  color: var(--primary);
}

/* ——— Location show ——— */
.location-gallery-main {
  border: 1px solid var(--portal-border);
  background: var(--neutral-100, #F4F4F5);
}

.location-gallery-thumb {
  background: var(--neutral-100);
  border-color: transparent;
}

.location-gallery-empty,
.location-info-item,
.location-desc-box {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface);
}

.location-info-item span {
  color: var(--portal-muted);
}

.location-info-item strong,
.location-desc-box h2,
.location-desc-box p {
  color: var(--primary) !important;
}

.location-desc-box p {
  color: var(--secondary) !important;
}

/* Lightbox stays dark for photo viewing */
.gallery-lightbox .modal-content {
  background: #111113;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.gallery-lightbox .modal-body {
  background: #0a0a0c;
}

.gallery-lightbox-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.7);
}

.gallery-lightbox .btn-close {
  filter: invert(1);
}

/* ——— Admin ——— */
.admin-panel {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
}

.admin-step {
  border: 1px solid var(--portal-border);
  background: var(--neutral-50);
  color: var(--portal-muted);
}

.admin-step.is-active {
  border-color: rgba(253, 58, 37, 0.45);
  background: var(--portal-accent-soft);
  color: var(--primary);
}

.admin-step.is-done {
  border-color: rgba(40, 167, 69, 0.35);
  color: #1e7e34;
  background: rgba(40, 167, 69, 0.08);
}

.admin-table {
  color: var(--primary) !important;
}

.admin-table th,
.admin-table td {
  border-bottom: 1px solid var(--portal-border);
  color: var(--primary) !important;
}

.admin-table tbody tr:hover {
  background: var(--neutral-50) !important;
}

.admin-badge-admin {
  background: var(--portal-accent-soft);
  border: 1px solid rgba(253, 58, 37, 0.35);
  color: var(--portal-accent);
}

.admin-badge-user {
  background: var(--neutral-100);
  border: 1px solid var(--portal-border);
  color: var(--secondary);
}

.admin-btn {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface);
  color: var(--primary) !important;
}

.admin-btn:hover {
  background: var(--portal-accent-soft);
  border-color: rgba(253, 58, 37, 0.35);
  color: var(--portal-accent) !important;
}

.admin-btn-primary {
  background: linear-gradient(135deg, #ff3b26 0%, #ea2b16 100%);
  border-color: transparent;
  color: #fff !important;
}

.admin-btn-primary:hover {
  color: #fff !important;
}

.admin-btn-danger {
  background: rgba(220, 53, 69, 0.08);
  border-color: rgba(220, 53, 69, 0.35);
  color: #dc3545 !important;
}

.admin-alert {
  border: 1px solid rgba(40, 167, 69, 0.35);
  background: rgba(40, 167, 69, 0.1);
  color: #1e7e34 !important;
}

.admin-alert-error {
  border-color: rgba(253, 58, 37, 0.35);
  background: var(--portal-accent-soft);
  color: #c62828 !important;
}

.admin-form .admin-label {
  color: var(--primary) !important;
}

.admin-form .admin-input,
.admin-form .admin-select,
.admin-form .admin-textarea {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface) !important;
  color: var(--primary) !important;
}

.admin-form .admin-input::placeholder,
.admin-form .admin-textarea::placeholder {
  color: var(--portal-muted) !important;
}

.admin-form .invalid-feedback {
  color: #dc3545 !important;
}

.admin-gallery-item,
.admin-pending-item {
  border: 1px solid var(--portal-border);
}

.admin-dropzone {
  border: 2px dashed var(--neutral-300);
  color: var(--portal-muted) !important;
  background: var(--neutral-50);
}

.admin-dropzone.is-dragover {
  border-color: var(--portal-accent);
  background: var(--portal-accent-soft);
}

.admin-pending-count,
.admin-upload-progress-text {
  color: var(--portal-muted) !important;
}

.admin-upload-progress {
  background: var(--neutral-50);
  border: 1px solid var(--portal-border);
}

.admin-upload-progress-bar {
  background: var(--neutral-200);
}

.admin-page .pagination .page-link {
  background: var(--portal-surface) !important;
  border-color: var(--portal-border) !important;
  color: var(--primary) !important;
}

.admin-page .pagination .page-item.active .page-link {
  background: var(--portal-accent-soft) !important;
  border-color: rgba(253, 58, 37, 0.45) !important;
  color: var(--portal-accent) !important;
}

/* ——— Mobile nav ——— */
.portal-mobile-toggle {
  border: 1px solid var(--portal-border);
  background: var(--portal-surface);
  color: var(--primary);
}

.portal-mobile-nav {
  border-top: 1px solid var(--portal-border);
  background: rgba(255, 255, 255, 0.95);
}

.portal-mobile-nav .item-link,
.portal-mobile-nav .logout-btn {
  color: var(--primary) !important;
}

.portal-mobile-nav .item-link:hover,
.portal-mobile-nav .logout-btn:hover {
  background: var(--neutral-50);
}

.logout-btn {
  background: transparent;
  border: 0;
  color: inherit;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

/* ——— Login (light) ——— */
body.location-login {
  background:
    radial-gradient(circle at 50% -8%, rgba(253, 58, 37, 0.12), transparent 28%),
    radial-gradient(circle at 12% 88%, rgba(234, 43, 22, 0.08), transparent 34%),
    var(--body, #EDECEC) !important;
  color: var(--primary) !important;
}

body.location-login .login-card {
  border: 1px solid var(--portal-border) !important;
  background: var(--portal-surface) !important;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.08) !important;
  color: var(--primary) !important;
}

body.location-login .login-title,
body.location-login .login-subtitle,
body.location-login .login-label,
body.location-login .login-hint {
  color: var(--primary) !important;
}

body.location-login .login-subtitle,
body.location-login .login-hint {
  color: var(--portal-muted) !important;
}

body.location-login .login-input {
  border: 1px solid var(--portal-border) !important;
  background: var(--neutral-50) !important;
  color: var(--primary) !important;
}

body.location-login .login-input::placeholder {
  color: var(--portal-muted) !important;
}

body.location-login .login-input-icon {
  color: var(--portal-muted) !important;
}

body.location-login .error-message {
  color: #dc3545 !important;
}

body.location-login .login-orbit {
  border-color: rgba(0, 0, 0, 0.06) !important;
}

body.location-login .login-orbit::before {
  border-color: rgba(0, 0, 0, 0.08) !important;
}

body.location-login .login-orbit::after {
  border-color: rgba(253, 58, 37, 0.15) !important;
}

body.location-login .login-title {
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  color: var(--primary) !important;
}

body.location-login .login-kicker {
  color: var(--portal-accent) !important;
  background: var(--portal-accent-soft) !important;
  border-color: rgba(253, 58, 37, 0.25) !important;
}

body.location-login .login-logo-wrap {
  border: 1px solid var(--portal-border) !important;
  background: var(--neutral-50) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06) !important;
}

body.location-login .login-card::before {
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.06), transparent) !important;
}

body.location-login .login-input:focus {
  border-color: rgba(253, 58, 37, 0.44) !important;
  background: var(--portal-surface) !important;
  box-shadow: 0 0 0 4px rgba(253, 58, 37, 0.12) !important;
}

body.location-login .login-hint a {
  color: var(--portal-accent) !important;
}

/* Article cards on light background */
.locations-page .article-blog {
  background: var(--portal-surface);
}

.locations-page .location-card .infor_sub {
  color: var(--secondary) !important;
}
