:root {
  --bg: #080b12;
  --bg-2: #0b111b;
  --panel: rgba(14, 22, 34, 0.9);
  --panel-2: rgba(18, 29, 44, 0.78);
  --gold: #2fa8ff;
  --gold-2: #8f3dff;
  --text: #f7f8fb;
  --soft: #b2bdcc;
  --muted: #7f8b9b;
  --line: rgba(47, 168, 255, 0.28);
  --line-2: rgba(151, 172, 198, 0.16);
  --radius: 14px;
  --shadow: 0 28px 72px rgba(0, 0, 0, 0.46);

  --sw-ink: #080b12;
  --sw-graphite: #0b111b;
  --sw-panel: rgba(14, 22, 34, 0.9);
  --sw-gold: #2fa8ff;
  --sw-gold-light: #8f3dff;
  --sw-ivory: #f7f8fb;
  --sw-soft: #b2bdcc;
  --sw-line: rgba(47, 168, 255, 0.25);

  --gd-bg: #080b12;
  --gd-bg-soft: #0b111b;
  --gd-panel: #0d1622;
  --gd-panel-strong: #111c2a;
  --gd-line: rgba(47, 168, 255, 0.3);
  --gd-line-soft: rgba(151, 172, 198, 0.17);
  --gd-gold: #2fa8ff;
  --gd-gold-light: #8f3dff;
  --gd-gold-dark: #255d9b;
  --gd-cream: #f7f8fb;
  --gd-muted: #aeb9c8;
  --gd-black: #080b12;
  --gd-serif: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --gd-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html { color-scheme: dark; }

body:not(.fg-home):not(.fotografus-client-app) {
  color: var(--text);
  background:
    radial-gradient(circle at 78% 10%, rgba(143, 61, 255, 0.12), transparent 29rem),
    radial-gradient(circle at 14% 68%, rgba(47, 168, 255, 0.1), transparent 30rem),
    linear-gradient(145deg, #050810, #0a0f18 52%, #080b12);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body:not(.fg-home):not(.fotografus-client-app)::after {
  position: fixed;
  inset: 0;
  z-index: -1;
  content: "";
  pointer-events: none;
  opacity: 0.018;
  background: url("../img/fotografus/padrao-fotografus.png") center / 1180px auto repeat;
}

body :is(h1, h2, h3, h4, .proof-topbar h1, .dash-hero h1, .dash-metric strong, .admin-access-gate strong) {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.brand,
.gd-brand,
.proof-logo,
.auth-brand,
.footer-logo,
.dynamic-contract-brand {
  overflow: hidden;
  background: #080b12;
}

.brand-logo,
.brand-icon-logo,
.gd-brand img,
.proof-logo > img,
.admin-access-gate img,
.footer-logo,
.dynamic-contract-brand img,
.contract-brand img,
.action-brand img {
  object-fit: cover !important;
  object-position: center !important;
}

.brand-logo,
.gd-brand img,
.proof-logo > img {
  width: 260px !important;
  height: 70px !important;
  max-width: 260px !important;
  max-height: 70px !important;
}

.gd-header .gd-brand,
.site-header .brand {
  width: 260px;
  min-width: 260px;
  height: 70px;
}

.brand-icon-logo,
.admin-access-gate img {
  width: 78px !important;
  height: 78px !important;
  max-width: 78px !important;
  max-height: 78px !important;
}

.site-header,
.gallery-client-topbar,
.client-topbar,
.gd-header {
  border-bottom-color: rgba(151, 172, 198, 0.12) !important;
  background: rgba(5, 9, 16, 0.88) !important;
  backdrop-filter: blur(20px);
}

.main-nav a::after,
.gd-nav a::after {
  background: linear-gradient(90deg, #2fa8ff, #8f3dff, #26c9b5) !important;
  box-shadow: 0 0 14px rgba(80, 93, 255, 0.46);
}

.btn-gold,
.proof-btn-gold,
.dash-action.primary,
.gd-button--primary,
.gd-plan-button,
.gd-cta__button,
.gd-subscribe-button,
button[data-submit],
.album-primary-button {
  border-color: transparent !important;
  color: #fff !important;
  background: linear-gradient(100deg, #2fa8ff, #4e75ff 48%, #8f3dff) !important;
  box-shadow: 0 16px 42px rgba(78, 81, 255, 0.24) !important;
}

.btn-gold:hover,
.proof-btn-gold:hover,
.gd-plan-button:hover,
.gd-button--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 19px 52px rgba(78, 81, 255, 0.34) !important;
}

.btn-outline,
.proof-btn-ghost,
.gd-button--ghost {
  border-color: rgba(151, 172, 198, 0.24) !important;
  background: rgba(9, 16, 26, 0.58) !important;
}

input,
select,
textarea,
.sw-auth-card input,
.proof-search input {
  border-color: rgba(151, 172, 198, 0.18) !important;
  color: #f7f8fb !important;
  background: rgba(7, 13, 22, 0.76) !important;
}

input:focus,
select:focus,
textarea:focus,
.sw-auth-card input:focus,
.proof-search input:focus {
  border-color: #2fa8ff !important;
  box-shadow: 0 0 0 4px rgba(47, 168, 255, 0.11) !important;
}

.eyebrow,
.proof-kicker,
.gd-eyebrow,
.sw-project-card-content span,
.sw-project-card-content a {
  color: #26c9b5 !important;
}

/* Acesso */
.sw-auth-body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 36% 50%, rgba(143, 61, 255, 0.18), transparent 28rem),
    radial-gradient(circle at 14% 72%, rgba(47, 168, 255, 0.13), transparent 25rem),
    #080b12 !important;
}

.sw-auth-body .auth-page {
  position: relative;
  display: grid;
  grid-template-columns: minmax(440px, 1.05fr) minmax(480px, 0.95fr);
  min-height: 100vh;
  place-items: stretch;
  gap: clamp(32px, 6vw, 100px);
  padding: 64px clamp(38px, 5vw, 88px);
  isolation: isolate;
}

.sw-auth-body .auth-page::before {
  grid-column: 1;
  grid-row: 1;
  min-height: calc(100vh - 128px);
  border-radius: 28px;
  content: "";
  background:
    linear-gradient(180deg, rgba(5, 9, 16, 0.08), rgba(5, 9, 16, 0.64)),
    url("../img/portfolio/casamentos.webp") center / cover no-repeat;
  box-shadow: inset 0 0 90px rgba(5, 9, 16, 0.72), 0 30px 80px rgba(0, 0, 0, 0.36);
}

.sw-auth-body .auth-page::after {
  position: absolute;
  z-index: 0;
  top: 48%;
  left: 8%;
  width: 48%;
  height: 20%;
  border: 3px solid transparent;
  border-top-color: #8f3dff;
  border-right-color: #2fa8ff;
  border-bottom-color: #26c9b5;
  border-left-color: #d6a36f;
  border-radius: 50%;
  content: "";
  pointer-events: none;
  filter: drop-shadow(0 0 18px rgba(94, 84, 255, 0.55));
  transform: rotate(-7deg);
}

.sw-auth-body .auth-brand {
  position: absolute;
  z-index: 3;
  top: 62px;
  left: clamp(52px, 6vw, 108px);
  width: 280px;
  height: 78px;
}

.sw-auth-body .auth-brand .brand-icon-logo {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}

.sw-auth-body .sw-auth-card {
  position: relative;
  z-index: 2;
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  width: min(100%, 650px);
  max-height: calc(100vh - 100px);
  overflow-y: auto;
  padding: clamp(34px, 4vw, 58px);
  border: 1px solid rgba(151, 172, 198, 0.22);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(14, 23, 36, 0.97), rgba(7, 13, 22, 0.94));
  box-shadow: 0 34px 90px rgba(0, 0, 0, 0.46);
}

.sw-auth-body .sw-auth-card::after {
  right: -140px;
  bottom: -170px;
  border-color: rgba(143, 61, 255, 0.2);
}

.sw-auth-body:not(.sw-register-body) .sw-auth-card { overflow: hidden; }

.sw-auth-body .sw-auth-card h1 {
  margin-bottom: 8px;
  color: #f7f8fb;
  font-size: clamp(38px, 4.5vw, 62px);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1.05;
}

.sw-auth-body .sw-auth-card h1::after { color: #8f3dff; content: "."; }
.sw-auth-body .sw-auth-intro { color: #aeb9c8; font-size: 17px; }
.sw-auth-body .login-form { gap: 16px; margin-top: 30px; }
.sw-auth-body .login-form label > span { color: #c4ccd7; }
.sw-auth-body .sw-social-auth-button { border-color: rgba(151, 172, 198, 0.24); color: #f7f8fb; background: rgba(8, 15, 25, 0.82); }
.sw-auth-body .sw-social-auth-mark { color: #2fa8ff; border-color: rgba(47, 168, 255, 0.34); }
.sw-auth-body .sw-auth-support a { color: #26c9b5; }

.sw-register-body .auth-page { grid-template-columns: minmax(480px, 0.94fr) minmax(440px, 1.06fr); }
.sw-register-body .auth-page { padding-block: 36px; }
.sw-register-body .auth-page::before { grid-column: 2; min-height: calc(100vh - 72px); background-image: linear-gradient(180deg, rgba(5, 9, 16, 0.08), rgba(5, 9, 16, 0.56)), url("../img/portfolio/ensaios.webp"); }
.sw-register-body .auth-page::after { right: 7%; left: auto; }
.sw-register-body .auth-brand { right: clamp(52px, 6vw, 108px); left: auto; }
.sw-register-body .sw-auth-card { grid-column: 1; max-height: calc(100vh - 72px); padding: 40px 48px; }
.sw-register-body .sw-auth-card h1 { font-size: clamp(38px, 4.2vw, 56px); }
.sw-register-body .login-form { gap: 12px; margin-top: 20px; }
.sw-register-body .sw-social-auth { gap: 10px; margin-top: 12px; }
.sw-register-body .sw-auth-support { margin-top: 14px; }

@media (min-width: 1041px) and (min-height: 840px) {
  .sw-register-body .sw-auth-card { overflow: hidden; }
}

/* Planos */
body:has(.gd-pricing) {
  background:
    radial-gradient(circle at 50% 18%, rgba(143, 61, 255, 0.12), transparent 33rem),
    radial-gradient(circle at 18% 62%, rgba(47, 168, 255, 0.08), transparent 30rem),
    #080b12;
}

body:has(.gd-pricing) .gd-hero { padding-block: 92px 48px; }
body:has(.gd-pricing) .gd-hero h1 {
  font-family: Inter, system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.045em;
}
body:has(.gd-pricing) .gd-hero h1 em { color: #f7f8fb; font-family: inherit; font-style: normal; }
body:has(.gd-pricing) .gd-plan-card {
  overflow: hidden;
  border-color: rgba(151, 172, 198, 0.18);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(16, 26, 40, 0.94), rgba(7, 13, 22, 0.92));
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.32);
}
body:has(.gd-pricing) .gd-plan-card:hover,
body:has(.gd-pricing) .gd-plan-card--featured {
  border-color: #26c9b5;
  box-shadow: 0 0 0 1px rgba(38, 201, 181, 0.35), 0 20px 60px rgba(47, 168, 255, 0.16);
}
body:has(.gd-pricing) .gd-plan-card__heading img { filter: hue-rotate(150deg) saturate(1.5); }
body:has(.gd-pricing) .gd-price strong { color: #f7f8fb; font-family: Inter, system-ui, sans-serif; }
body:has(.gd-pricing) .gd-popular-badge { color: #26c9b5; border-color: rgba(38, 201, 181, 0.42); background: rgba(38, 201, 181, 0.08); }

/* Painel do fotógrafo e ADM */
.proof-admin-body,
.secure-admin-body {
  background:
    radial-gradient(circle at 75% 9%, rgba(143, 61, 255, 0.09), transparent 27rem),
    linear-gradient(145deg, #050810, #0a0f18 58%, #080b12) !important;
}

.admin-access-gate {
  background: radial-gradient(circle at 50% 40%, rgba(47, 168, 255, 0.16), transparent 24rem), #080b12 !important;
}

.proof-admin { grid-template-columns: 290px minmax(0, 1fr); }
.proof-sidebar {
  gap: 20px;
  padding: 20px 18px;
  border-right-color: rgba(151, 172, 198, 0.13);
  background: linear-gradient(180deg, rgba(5, 10, 18, 0.97), rgba(8, 15, 25, 0.94));
}
.proof-logo { width: 250px; height: 72px; }
.proof-menu { gap: 5px; }
.proof-menu button,
.proof-logout {
  min-height: 46px;
  border-radius: 10px;
  color: #aeb8c8;
  font-weight: 500;
}
.proof-menu button::before { width: 9px; height: 9px; border-color: rgba(47, 168, 255, 0.42); background: rgba(47, 168, 255, 0.08); }
.proof-menu button:hover,
.proof-menu button.active,
.proof-menu button.is-active,
.proof-logout:hover {
  color: #f7f8fb;
  border-color: rgba(47, 168, 255, 0.42);
  background: linear-gradient(90deg, rgba(47, 168, 255, 0.12), rgba(143, 61, 255, 0.08));
  box-shadow: inset 3px 0 #2fa8ff;
}
.proof-menu button.active::before,
.proof-menu button.is-active::before { border-color: transparent; background: linear-gradient(#2fa8ff, #8f3dff); box-shadow: 0 0 12px rgba(94, 84, 255, 0.6); }
.proof-sidebar-bottom { gap: 10px; }
.proof-sidebar-brand strong { color: #d6a36f !important; }
.proof-sidebar-brand span { color: #7f8b9b !important; }
.proof-main { padding: 22px clamp(18px, 2.8vw, 42px) 48px; }
.proof-topbar { min-height: 76px; margin-bottom: 22px; padding-bottom: 15px; border-bottom: 1px solid rgba(151, 172, 198, 0.11); }
.proof-topbar h1,
.dash-hero h1 { color: #f7f8fb; font-weight: 600; letter-spacing: -0.04em; }
.proof-search input { min-height: 46px; border-radius: 12px; }
.proof-avatar { border-color: rgba(143, 61, 255, 0.34); color: #f7f8fb; background: rgba(143, 61, 255, 0.1); }

.dash-metric,
.dash-panel,
.dash-footer,
.proof-card,
.admin-card,
.admin-stat-card,
.foto15-surface-card {
  border-color: rgba(151, 172, 198, 0.16) !important;
  border-radius: 16px !important;
  background:
    radial-gradient(circle at 85% 0%, rgba(47, 168, 255, 0.08), transparent 42%),
    linear-gradient(145deg, rgba(15, 25, 39, 0.94), rgba(7, 13, 22, 0.9)) !important;
  box-shadow: 0 22px 64px rgba(0, 0, 0, 0.28) !important;
}
.dash-metric { border-top-color: rgba(47, 168, 255, 0.42) !important; }
.dash-metric:nth-child(2) { border-top-color: rgba(143, 61, 255, 0.5) !important; }
.dash-metric:nth-child(3) { border-top-color: rgba(38, 201, 181, 0.48) !important; }
.dash-metric:nth-child(4) { border-top-color: rgba(214, 163, 111, 0.48) !important; }
.dash-metric:nth-child(5) { border-top-color: rgba(47, 168, 255, 0.48) !important; }
.dash-metric > span { border-color: rgba(47, 168, 255, 0.34); color: #2fa8ff; background: rgba(47, 168, 255, 0.09); }
.dash-metric strong { color: #f7f8fb; }
.dash-action { border-color: rgba(151, 172, 198, 0.2); border-radius: 13px; background: rgba(12, 21, 34, 0.72); }
.dash-action span { color: #26c9b5; border-color: rgba(38, 201, 181, 0.3); }
.partner-storage-card b,
.partner-storage-track span { background: linear-gradient(90deg, #2fa8ff, #8f3dff, #26c9b5); }

/* Cliente e galerias */
.client-body:not(.fotografus-client-app),
.gallery-client-body:not(.fotografus-client-app) {
  background:
    radial-gradient(circle at 82% 14%, rgba(143, 61, 255, 0.1), transparent 28rem),
    radial-gradient(circle at 12% 72%, rgba(47, 168, 255, 0.09), transparent 26rem),
    #080b12 !important;
}
.client-topbar,
.gallery-client-topbar { min-height: 88px; padding-block: 9px; }
.client-main,
.gallery-client-main { position: relative; }
.client-hero,
.gallery-client-hero {
  border-color: rgba(151, 172, 198, 0.16) !important;
  background:
    radial-gradient(circle at 80% 10%, rgba(143, 61, 255, 0.12), transparent 20rem),
    linear-gradient(145deg, rgba(15, 25, 39, 0.94), rgba(7, 13, 22, 0.9)) !important;
}
.client-hero h1,
.gallery-client-hero h1 { font-weight: 600; letter-spacing: -0.04em; }
.client-summary article,
.client-gallery-card,
.gallery-instructions,
.gallery-filters,
.sw-gallery-tools,
.selection-summary-bar,
.sw-client-contracts article {
  border-color: rgba(151, 172, 198, 0.16) !important;
  border-radius: 16px !important;
  background: linear-gradient(145deg, rgba(15, 25, 39, 0.94), rgba(7, 13, 22, 0.9)) !important;
}
.gallery-filters button.active { color: #fff; border-color: transparent; background: linear-gradient(100deg, #2fa8ff, #8f3dff); }
.photo-action.selected,
.photo-action.favorite { color: #fff; border-color: transparent; background: linear-gradient(100deg, #2fa8ff, #8f3dff); }

/* Páginas públicas e contratos */
.gd-public {
  --gold: #2fa8ff;
  --gold-2: #8f3dff;
  --text: #f7f8fb;
  --line: rgba(47, 168, 255, 0.26);
  background:
    radial-gradient(circle at 78% 8%, rgba(143, 61, 255, 0.1), transparent 30rem),
    linear-gradient(180deg, #080b12, #0a0f18 58%, #080b12) !important;
}
.gd-public main::before { background-image: url("../img/fotografus/simbolo-fotografus.png") !important; opacity: 0.025; }
.gd-public :is(.timeline-card, .contact-info article, .contact-form, .sw-filter-bar, .sw-project-card) {
  border-color: rgba(151, 172, 198, 0.18) !important;
  background-color: rgba(13, 22, 34, 0.88) !important;
}
.gd-public .timeline-card:hover,
.gd-public .contact-info article:hover { border-color: rgba(47, 168, 255, 0.48) !important; }
.contract-shell,
.contract-card,
.action-card { border-color: rgba(151, 172, 198, 0.16) !important; background: rgba(13, 22, 34, 0.93) !important; }

@media (max-width: 1040px) {
  .sw-auth-body .auth-page,
  .sw-register-body .auth-page { grid-template-columns: 1fr; padding: 110px 24px 42px; }
  .sw-auth-body .auth-page::before,
  .sw-auth-body .auth-page::after { display: none; }
  .sw-auth-body .auth-brand,
  .sw-register-body .auth-brand { top: 24px; right: auto; left: 24px; width: 240px; height: 68px; }
  .sw-auth-body .sw-auth-card,
  .sw-register-body .sw-auth-card { grid-column: 1; grid-row: 1; justify-self: center; max-height: none; }
}

@media (max-width: 820px) {
  .brand-logo,
  .gd-brand img { width: 220px !important; height: 62px !important; }
  .gd-header .gd-brand,
  .site-header .brand { width: 220px; min-width: 220px; height: 62px; }
  .proof-admin { grid-template-columns: 1fr; }
  .proof-sidebar { position: relative; height: auto; }
  .proof-logo { width: 230px; height: 64px; }
}

@media (max-width: 560px) {
  .sw-auth-body .auth-page,
  .sw-register-body .auth-page { padding: 100px 14px 24px; }
  .sw-auth-body .auth-brand,
  .sw-register-body .auth-brand { left: 14px; width: 210px; height: 60px; }
  .sw-auth-body .sw-auth-card { padding: 26px 20px; border-radius: 18px; }
  .sw-auth-body .sw-auth-card h1 { font-size: 38px; }
}
