:root{
  --font-display: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-serif: 'Lora', Georgia, serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --brand-solid: #B7143D;
  --brand-solid-hover: #931032;
  --brand: #B7143D;
  --brand-ink-on: #ffffff;

  --logo-grau1: #777777;
  --logo-grau2: #8F8F8F;
  --logo-grau3: #B9B9B9;
  --logo-grau4: #DEDEDE;

  --ink: #151b28;
  --ink-soft: #4b5567;
  --muted: #8993a6;
  --surface: #ffffff;
  --surface-2: #f3f6fb;
  --border-soft: #e2e7f0;
  --bg-top: #f8fafd;
  --bg-bottom: #e7eefb;
  --shadow-card: 0 1px 2px rgba(21,27,40,.04), 0 8px 24px -12px rgba(21,27,40,.10);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --brand: #ff6b8a;
    --ink: #eef1f7;
    --ink-soft: #b7c0d1;
    --muted: #7c8698;
    --surface: #171c28;
    --surface-2: #1e2534;
    --border-soft: #2a3142;
    --bg-top: #0c0f16;
    --bg-bottom: #131a2b;
    --shadow-card: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  --brand: #ff6b8a;
  --ink: #eef1f7;
  --ink-soft: #b7c0d1;
  --muted: #7c8698;
  --surface: #171c28;
  --surface-2: #1e2534;
  --border-soft: #2a3142;
  --bg-top: #0c0f16;
  --bg-bottom: #131a2b;
  --shadow-card: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
}

html{ font-size: 15px; }
body{
  font-family: var(--font-body);
  color: var(--ink);
  background: linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 480px, var(--bg-bottom) 100%);
  min-height: 100vh;
}
h1,h2,h3,h4,h5, .card-title, .page-title{
  font-family: var(--font-display);
  color: var(--ink);
  text-wrap: balance;
}
a{ color: var(--brand); }
a:hover{ color: var(--brand-solid-hover); }
.text-mono, .mono{ font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

.shell{ max-width: 1240px; margin-inline: auto; padding-inline: 16px; }
.app-nav{ background: var(--surface); border-bottom: 1px solid var(--border-soft); }
.brand-mark{ width: 30px; height: 30px; flex: none; }
.brand-word{
  font-family: var(--font-serif); font-weight: 600; font-style: italic;
  font-size: 1.15rem; color: var(--ink); letter-spacing: .2px;
}

.card{ background: var(--surface); border-color: var(--border-soft); box-shadow: var(--shadow-card); }
.card-header, .card-footer{ border-color: var(--border-soft); }
.card-title{ font-weight: 600; }
.text-muted-soft{ color: var(--ink-soft) !important; }

.auth-shell{
  min-height: 100vh; display:flex; align-items:center; justify-content:center; padding: 24px;
}
.auth-card{ width: 100%; max-width: 380px; }
