:root {
  --public-primary: #6d4aff;
  --public-primary-hover: #5837dc;
  --public-primary-soft: #eeeaff;
  --public-ink: #17152a;
  --public-muted: #706e82;
  --public-border: #e5e2ef;
  --public-surface: #fff;
}

body { font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif !important; color: var(--public-ink); }
body:has(.auth-shell), body:has(.portal-login-shell) {
  background:
    radial-gradient(circle at 10% 10%, rgba(109,74,255,.18), transparent 30rem),
    radial-gradient(circle at 90% 90%, rgba(68,190,180,.11), transparent 28rem),
    #f4f3f8 !important;
}

.auth-card {
  overflow: hidden;
  border: 1px solid rgba(109,74,255,.13) !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 28px 70px rgba(28,20,62,.16) !important;
}
.auth-card .card-body { padding: clamp(26px, 5vw, 38px) !important; }
.auth-card .logo-wrap img { width: auto !important; max-width: 100% !important; height: auto !important; max-height: 56px; object-fit: contain; }
.auth-card .card-title { color: var(--public-ink) !important; letter-spacing: -.025em !important; }
.auth-card .card-subtitle { color: var(--public-muted) !important; }
.auth-card :is(.form-control, .input-group-text) { min-height: 46px; border-color: var(--public-border) !important; background: #fff !important; border-radius: 10px; }
.auth-card .form-control:focus { border-color: #9c87ff !important; box-shadow: 0 0 0 .22rem rgba(109,74,255,.14) !important; }
.auth-card .btn-primary { min-height: 46px; border: 0 !important; border-radius: 10px; background: var(--public-primary) !important; box-shadow: 0 8px 20px rgba(109,74,255,.23); }
.auth-card .btn-primary:hover { background: var(--public-primary-hover) !important; }

.portal-shell { width: min(1480px, calc(100% - 32px)) !important; }
.portal-topbar {
  border: 1px solid rgba(109,74,255,.12) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 8px 30px rgba(28,20,62,.07) !important;
  backdrop-filter: blur(14px);
}
.portal-brand-mark { background: linear-gradient(135deg, #8165ff, #5634d5) !important; }
.portal-eyebrow { color: var(--public-primary) !important; }
.portal-title { color: var(--public-ink) !important; letter-spacing: -.035em !important; }
.portal-subtitle, .portal-user-email { color: var(--public-muted) !important; }
.portal-hero, .portal-page-head {
  border: 1px solid rgba(109,74,255,.12) !important;
  border-radius: 18px !important;
  background: linear-gradient(118deg, #fff, #faf9ff 65%, #eee9ff) !important;
  box-shadow: 0 8px 28px rgba(28,20,62,.06) !important;
}
.portal-panel, .portal-table-panel, .portal-stat {
  border-color: var(--public-border) !important;
  border-radius: 14px !important;
  box-shadow: 0 7px 24px rgba(28,20,62,.055) !important;
}
.portal-table thead th { background: #f8f7fb !important; color: #686477 !important; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.portal-shell :is(.form-control, .form-select), .portal-login-shell :is(.form-control, .form-select) { min-height: 44px; border-color: var(--public-border) !important; border-radius: 9px !important; }
.portal-shell :is(.form-control, .form-select):focus, .portal-login-shell :is(.form-control, .form-select):focus { border-color: #9c87ff !important; box-shadow: 0 0 0 .2rem rgba(109,74,255,.14) !important; }
.portal-shell .btn-primary, .portal-login-shell .btn-primary, .support-shell .btn-primary { border-color: var(--public-primary) !important; background: var(--public-primary) !important; }

.portal-login-panel { overflow: hidden; border: 1px solid rgba(109,74,255,.13) !important; border-radius: 22px !important; box-shadow: 0 30px 80px rgba(28,20,62,.17) !important; }
.portal-login-info { background: linear-gradient(145deg, #19152f, #2a2150) !important; }
.portal-login-form-wrap { background: rgba(255,255,255,.97) !important; }

.support-shell { width: min(760px, calc(100% - 28px)) !important; }
.support-shell > :is(.card, section, form) { border-color: var(--public-border) !important; border-radius: 16px !important; box-shadow: 0 12px 35px rgba(28,20,62,.09) !important; }

@media (max-width: 767.98px) {
  .auth-shell { padding: 16px !important; }
  .auth-card { border-radius: 16px !important; }
  .portal-shell { width: calc(100% - 20px) !important; }
  .portal-topbar { padding: 12px !important; border-radius: 13px !important; }
  .portal-user-email { display: none; }
  .portal-hero, .portal-page-head { padding: 20px !important; border-radius: 14px !important; }
  .portal-actions { width: 100%; }
  .portal-actions .btn { flex: 1 1 auto; }
  .portal-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .portal-table { min-width: 680px; }
  .portal-login-shell { padding: 12px !important; }
  .portal-login-panel { border-radius: 16px !important; }
}
