:root {
  --core-bg: #fffdf7;
  --core-surface: #ffffff;
  --core-surface-soft: #fff9ec;
  --core-border: #efe6d0;
  --core-border-strong: #f3e3a3;
  --core-text: #0f172a;
  --core-muted: #64748b;
  --core-link: #b88a1e;
  --core-link-hover: #8a6416;
  --core-primary: #d4af37;
  --core-primary-2: #f3d36b;
  --core-primary-dark: #8a6416;
  --core-success: #059669;
  --core-warning: #d97706;
  --core-danger: #dc2626;
  --core-radius-sm: 10px;
  --core-radius: 16px;
  --core-radius-lg: 24px;
  --core-shadow-sm: 0 8px 24px rgba(15, 23, 42, .06);
  --core-shadow: 0 18px 50px rgba(212, 175, 55, .18);
  --core-shadow-strong: 0 24px 70px rgba(15, 23, 42, .16);
  --core-gradient: linear-gradient(135deg, #ffffff 0%, #fff9ec 45%, #fff3c4 100%);
  --core-button-gradient: linear-gradient(135deg, #b88a1e 0%, #d4af37 52%, #f3d36b 100%);
}

html { scroll-behavior: smooth; }
body {
  background: radial-gradient(circle at top left, rgba(243, 227, 163, .28), transparent 30%), var(--core-bg) !important;
  color: var(--core-text);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--core-link); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover, a:focus { color: var(--core-link-hover); }

/* Shared enterprise surfaces */
.card, .admin-card, .dashboard-card, .metric-card, .settings-card,
.member-card, .portal-card, .public-card, .article-card,
.content-card, .table-card, .auth-card, .modal-content,
.dropdown-menu, .offcanvas, .list-group-item, .public-panel {
  border-color: var(--core-border) !important;
  border-radius: var(--core-radius) !important;
  box-shadow: var(--core-shadow-sm);
}

.card:hover, .member-card:hover, .public-card:hover, .article-card:hover,
.dashboard-card:hover, .metric-card:hover {
  box-shadow: var(--core-shadow);
}

.card-header, .modal-header, .dropdown-header,
.member-panel-header, .public-section-header {
  background: linear-gradient(180deg, rgba(240, 249, 255, .92), rgba(255, 255, 255, .92)) !important;
  border-color: var(--core-border) !important;
}

/* Buttons */
.btn, button, input[type="submit"], input[type="button"] {
  border-radius: 999px;
}
.btn-primary, .btn-info, .btn-submit, .public-btn-primary,
.member-btn-primary, .admin-btn-primary, button[type="submit"]:not(.btn-light):not(.btn-secondary):not(.btn-outline-secondary) {
  border: 0 !important;
  background: var(--core-button-gradient) !important;
  color: #fff !important;
  box-shadow: 0 12px 26px rgba(212, 175, 55, .24);
}
.btn-primary:hover, .btn-info:hover, .btn-submit:hover, .public-btn-primary:hover,
.member-btn-primary:hover, .admin-btn-primary:hover, button[type="submit"]:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 36px rgba(212, 175, 55, .32);
}
.btn-outline-primary, .btn-light, .btn-outline-info, .public-btn-secondary, .member-btn-secondary {
  border-color: var(--core-border-strong) !important;
  color: var(--core-primary-dark) !important;
  background: rgba(255, 255, 255, .88) !important;
}
.btn-outline-primary:hover, .btn-light:hover, .btn-outline-info:hover,
.public-btn-secondary:hover, .member-btn-secondary:hover {
  background: #fff9ec !important;
  color: var(--core-primary-dark) !important;
  box-shadow: 0 10px 24px rgba(212, 175, 55, .12);
}

/* Forms */
.form-control, .form-select, .select2-selection, textarea, input, select {
  border-color: var(--core-border) !important;
  border-radius: 14px !important;
}
.form-control:focus, .form-select:focus, textarea:focus, input:focus, select:focus,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default .select2-selection--single:focus {
  border-color: var(--core-primary-2) !important;
  box-shadow: 0 0 0 .22rem rgba(212, 175, 55, .16) !important;
}
.form-label, label { color: #334155; font-weight: 650; }
.text-muted, .muted, small { color: var(--core-muted) !important; }

/* Tables */
.table { --bs-table-hover-bg: #fff9ec; }
.table thead th, table thead th {
  background: #f8fbff !important;
  color: #334155;
  border-bottom-color: var(--core-border-strong) !important;
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.table tbody tr, table tbody tr { transition: background-color .16s ease, box-shadow .16s ease; }
.table tbody tr:hover, table tbody tr:hover { background: #fff9ec !important; }

/* Badges and alerts */
.badge, .status-badge { border-radius: 999px; font-weight: 700; }
.badge.bg-primary, .badge.text-bg-primary { background: #fff3c4 !important; color: #8a6416 !important; }
.badge.bg-success, .badge.text-bg-success { background: #dcfce7 !important; color: #047857 !important; }
.badge.bg-warning, .badge.text-bg-warning { background: #fef3c7 !important; color: #92400e !important; }
.badge.bg-danger, .badge.text-bg-danger { background: #fee2e2 !important; color: #b91c1c !important; }
.alert { border-radius: var(--core-radius); border-color: var(--core-border); box-shadow: var(--core-shadow-sm); }
.alert-info, .alert-primary { background: #eff8ff; color: #075985; }
.alert-success { background: #ecfdf5; color: #047857; }
.alert-warning { background: #fffbeb; color: #92400e; }
.alert-danger { background: #fef2f2; color: #b91c1c; }

/* Admin shell */
.admin-wrapper, .main-wrapper, .content-wrapper, .app-main, .page-wrapper {
  background: transparent !important;
}
.sidebar, .admin-sidebar, .main-sidebar, .app-sidebar {
  background: rgba(255, 255, 255, .94) !important;
  border-right: 1px solid var(--core-border) !important;
  box-shadow: 18px 0 46px rgba(15, 23, 42, .05);
}
.navbar, .topbar, .admin-topbar, .app-topbar, header.admin-header {
  background: rgba(255, 255, 255, .86) !important;
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--core-border) !important;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}
.sidebar .active, .admin-sidebar .active, .main-sidebar .active,
.nav-pills .nav-link.active, .list-group-item.active {
  background: linear-gradient(135deg, #fff3c4, #f8fbff) !important;
  color: var(--core-primary-dark) !important;
  border-color: var(--core-border-strong) !important;
}
.sidebar a, .admin-sidebar a, .main-sidebar a { border-radius: 14px; }

/* Member portal */
.member-shell, .member-layout, body.member-portal {
  background: radial-gradient(circle at top right, rgba(125, 211, 252, .26), transparent 32%), var(--core-bg) !important;
}
.member-topbar, .member-sidebar, .member-mobile-drawer {
  border-color: var(--core-border) !important;
  box-shadow: var(--core-shadow-sm);
}
.member-sidebar-link.active, .member-submenu-link.active,
.member-nav-link.active {
  color: var(--core-primary-dark) !important;
}

/* Public portal */
.public-site, body.public-site, .public-layout {
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 46%, #ffffff 100%) !important;
}
.public-header, .public-navbar, .site-header {
  background: rgba(255, 255, 255, .86) !important;
  border-bottom: 1px solid var(--core-border) !important;
  backdrop-filter: blur(18px);
}
.public-hero, .hero-section, .hero-slider, .public-hero-slide {
  background: var(--core-gradient) !important;
}
.public-hero .hero-card, .hero-content, .hero-panel {
  border: 1px solid var(--core-border) !important;
  box-shadow: var(--core-shadow);
}
.public-menu a.active, .public-navbar .active, .site-nav .active {
  color: var(--core-primary-dark) !important;
}
.article-detail img, .article-card img, .public-hero img,
.public-card img, .member-card img {
  border-radius: var(--core-radius);
}

/* Auth and maintenance */
.auth-wrapper, .login-wrapper, .maintenance-page {
  background: radial-gradient(circle at top, rgba(56, 189, 248, .24), transparent 30%), var(--core-gradient) !important;
}
.auth-card, .login-card, .maintenance-card {
  background: rgba(255, 255, 255, .9) !important;
  backdrop-filter: blur(18px);
  border: 1px solid var(--core-border) !important;
  box-shadow: var(--core-shadow-strong);
}

/* Layout spacing and typography */
.page-title, .section-title, h1, h2, h3 { letter-spacing: -.025em; }
.page-title, h1 { color: #0f172a; }
.kicker, .eyebrow, .section-kicker {
  color: var(--core-primary-dark) !important;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.breadcrumb, .breadcrumb-item, .page-subtitle { color: var(--core-muted) !important; }

/* Focus visibility */
:focus-visible {
  outline: 3px solid rgba(212, 175, 55, .32) !important;
  outline-offset: 3px;
}

/* Subtle enter animation without making the app feel noisy */
.card, .member-card, .public-card, .article-card, .metric-card, .dashboard-card {
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.card:hover, .member-card:hover, .public-card:hover, .article-card:hover, .metric-card:hover, .dashboard-card:hover {
  transform: translateY(-1px);
}

@media (max-width: 768px) {
  :root { --core-radius: 14px; --core-radius-lg: 20px; }
  .card, .member-card, .public-card, .article-card, .modal-content { border-radius: 14px !important; }
  .table-responsive { border: 1px solid var(--core-border); border-radius: var(--core-radius); box-shadow: var(--core-shadow-sm); }
  .btn { width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* Advanced enterprise interaction polish */
:root {
  --core-control-height: 42px;
  --core-focus-ring: 0 0 0 .22rem rgba(212, 175, 55, .14);
  --core-divider: rgba(243, 227, 163, .72);
}

/* Page titles, action bars, and breadcrumbs */
.page-header, .content-header, .admin-page-header, .member-page-header,
.public-page-header, .core-page-header, .d-flex.justify-content-between.align-items-center.mb-3 {
  gap: 1rem;
}
.page-header h1, .content-header h1, .admin-page-header h1,
.member-page-header h1, .public-page-header h1,
.card-title, .modal-title {
  letter-spacing: -.02em;
}
.breadcrumb, .breadcrumb-wrap {
  background: rgba(255, 255, 255, .74) !important;
  border: 1px solid var(--core-border) !important;
  border-radius: 999px !important;
  padding: .55rem .85rem !important;
  box-shadow: var(--core-shadow-sm);
}
.breadcrumb a { text-decoration: none; font-weight: 650; }

/* Compact toolbars */
.core-action-toolbar, .action-toolbar, .page-actions, .table-actions,
.card-header .btn-group, .card-header .d-flex, .dataTables_wrapper .row:first-child {
  gap: .55rem;
}
.btn-sm, .btn-group-sm > .btn {
  padding: .42rem .72rem;
  font-weight: 700;
}
.btn-danger, .btn-outline-danger, button.btn-danger, button.btn-outline-danger,
form[action*="delete"] button[type="submit"], form[action*="purge"] button[type="submit"] {
  border-color: #fecaca !important;
  background: #fff7f7 !important;
  color: #b91c1c !important;
  box-shadow: 0 10px 22px rgba(220, 38, 38, .08) !important;
}
.btn-danger:hover, .btn-outline-danger:hover,
form[action*="delete"] button[type="submit"]:hover,
form[action*="purge"] button[type="submit"]:hover {
  background: #fee2e2 !important;
  color: #991b1b !important;
}

/* Forms: enterprise spacing and required markers */
.form-group, .mb-3, .mb-4 { position: relative; }
form .row { row-gap: .65rem; }
.input-group-text {
  border-color: var(--core-border) !important;
  background: #f8fbff !important;
  color: #8a6416 !important;
  font-weight: 700;
}
.form-text, .help-text, .invalid-feedback, .valid-feedback {
  font-size: .82rem;
}
.core-required-label::after,
label.core-required-label::after {
  content: " *";
  color: var(--core-danger);
  font-weight: 800;
}
.is-invalid, .form-control.is-invalid, .form-select.is-invalid {
  border-color: #fca5a5 !important;
  box-shadow: 0 0 0 .18rem rgba(239, 68, 68, .10) !important;
}
.is-valid, .form-control.is-valid, .form-select.is-valid {
  border-color: #86efac !important;
  box-shadow: 0 0 0 .18rem rgba(34, 197, 94, .10) !important;
}

/* Lists and detail pages */
.list-group { border-radius: var(--core-radius) !important; overflow: hidden; box-shadow: var(--core-shadow-sm); }
.list-group-item {
  border-color: var(--core-border) !important;
  transition: background-color .18s ease, transform .18s ease;
}
.list-group-item:hover { background: #f8fbff !important; }
.dl-row, .detail-row, .metadata-row {
  border-bottom: 1px solid var(--core-border);
  padding: .75rem 0;
}
.dl-row:last-child, .detail-row:last-child, .metadata-row:last-child { border-bottom: 0; }

/* Tables: denser, cleaner, more readable */
.core-table-responsive {
  border: 1px solid var(--core-border);
  border-radius: var(--core-radius);
  box-shadow: var(--core-shadow-sm);
  background: #fff;
}
.core-table-responsive > table { margin-bottom: 0 !important; }
.table td, table td { vertical-align: middle; }
.table td .btn, table td .btn { white-space: nowrap; }
.table td, .table th, table td, table th { padding: .82rem .9rem; }
.table tbody td:first-child, table tbody td:first-child { font-weight: 650; color: #1e293b; }
.table-hover tbody tr:hover > *, table tbody tr:hover > * { background-color: #fff9ec !important; }
.core-table-responsive table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
}

/* Empty state generated by enhancer */
.core-empty-state {
  text-align: center;
  padding: 2.5rem 1rem !important;
  color: var(--core-muted) !important;
  background: linear-gradient(180deg, #ffffff, #f8fbff) !important;
}
.core-empty-state-inner {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  max-width: 460px;
}
.core-empty-state-icon {
  width: 56px;
  height: 56px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: #fff3c4;
  color: #8a6416;
  box-shadow: 0 14px 34px rgba(212, 175, 55, .16);
}
.core-empty-state-title {
  font-weight: 800;
  color: #0f172a;
}
.core-empty-state-copy { color: var(--core-muted); font-size: .92rem; }

/* Loading and subtle motion */
.core-loading, .btn.core-loading {
  pointer-events: none;
  opacity: .82;
  position: relative;
}
.btn.core-loading::after {
  content: "";
  width: 1rem;
  height: 1rem;
  margin-left: .55rem;
  display: inline-block;
  vertical-align: -.2rem;
  border: 2px solid rgba(255,255,255,.55);
  border-top-color: #fff;
  border-radius: 50%;
  animation: core-spin .75s linear infinite;
}
@keyframes core-spin { to { transform: rotate(360deg); } }

/* Admin sidebar grouped menu refinement */
.sidebar .nav-header, .admin-sidebar .nav-header, .main-sidebar .nav-header,
.sidebar-menu .menu-header, .app-sidebar .menu-header {
  color: #64748b !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  padding-top: .9rem !important;
  padding-bottom: .35rem !important;
}
.sidebar .nav-treeview, .admin-sidebar .nav-treeview, .main-sidebar .nav-treeview {
  border-left: 1px dashed var(--core-divider);
  margin-left: .75rem;
  padding-left: .35rem;
}
.sidebar .nav-link, .admin-sidebar .nav-link, .main-sidebar .nav-link,
.app-sidebar .nav-link {
  min-height: 40px;
}
.sidebar .nav-link p, .admin-sidebar .nav-link p, .main-sidebar .nav-link p,
.app-sidebar .nav-link p {
  white-space: normal;
  line-height: 1.2;
}

/* Mobile refinements */
@media (max-width: 768px) {
  .page-header, .content-header, .admin-page-header, .member-page-header,
  .public-page-header, .d-flex.justify-content-between.align-items-center.mb-3 {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
  .page-actions, .table-actions, .card-header .d-flex {
    width: 100%;
    flex-wrap: wrap;
  }
  .page-actions .btn, .table-actions .btn, .card-header .btn {
    flex: 1 1 auto;
  }
  .table td, .table th, table td, table th { padding: .72rem .78rem; }
  .core-table-responsive { border-radius: 14px; }
  .breadcrumb, .breadcrumb-wrap { border-radius: 16px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
