/* IDENTIDAD NIBRA. Ajusta colores y tipografía aquí; index.php actualiza su versión automáticamente. */
@font-face {
  font-family: 'Manrope';
  src: url('fonts/manrope-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --brand-primary: #006fe8;
  --brand-hover: #0057bd;
  --brand-navy: #082c65;
  --brand-hero: #082f40;
  --brand-hero-light: #154b5d;
  --brand-cyan: #04b9e8;
  --brand-highlight: #319fff;
  --brand-background: #f5f9fd;
  --brand-text: #10253e;
  --brand-muted: #62748a;
  --brand-border: #dfe8f2;
  --brand-soft: #eaf4ff;
  --brand-font: 'Manrope', 'Segoe UI', Arial, sans-serif;
  --ink: var(--brand-text);
  --muted: var(--brand-muted);
  --green: var(--brand-primary);
  --lime: var(--brand-cyan);
  --bg: var(--brand-background);
  --line: var(--brand-border);
}
body, .public-page { font-family: var(--brand-font); }
input, select, textarea, button, .button { font-family: inherit; }
body, .public-mode, .public-page { background: var(--brand-background); color: var(--brand-text); }
.public-page { --public-accent: var(--brand-primary); --public-bg: var(--brand-background); --public-text: var(--brand-text); --public-muted: var(--brand-muted); --public-line: var(--brand-border); }
.nibra-logo { display: block; width: 224px; max-width: 100%; height: auto; flex-shrink: 0; }
.public-page .nibra-logo { width: 224px; height: auto; }
.nibra-logo > svg:first-child { width: 60px; height: 54px; }
.nibra-logo > svg:last-child { width: 161px; height: 44px; }
.nibra-logo-original { display: block; width: 100%; height: auto; object-fit: contain; }
.nibra-logo-original.nibra-logo { max-height: 74px; }
.public-header-inner { min-height: 90px; padding: 14px 36px; }
.public-brand { max-width: 240px; }
.public-brand > .nibra-logo { animation: nibra-salto-suave 6s ease-in-out infinite; }
@keyframes nibra-salto-suave {
  0%, 20%, 80%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@media (prefers-reduced-motion: reduce) {
  .public-brand > .nibra-logo { animation: none; transform: none; }
}
.public-navigation { font-size: 14px; font-weight: 650; color: var(--brand-text); }
.public-navigation > a:hover, .public-navigation .public-nav-home { color: var(--brand-primary); border-bottom-color: var(--brand-primary); }
.public-register { padding: 12px 20px !important; border-radius: 10px !important; color: #fff !important; background: var(--brand-primary) !important; font-weight: 750 !important; }
.public-register:hover { background: var(--brand-hover) !important; }
.public-login { color: var(--brand-navy) !important; background: #fff !important; border: 1px solid #b9cadb !important; box-shadow: none; }
.public-login:hover { background: var(--brand-soft) !important; }
.public-hero, .public-auth-copy { background: linear-gradient(120deg, var(--brand-hero), var(--brand-hero-light)); }
.public-hero { border-radius: 25px; }
.public-hero::before { width: auto; height: auto; inset: 0; border: 0; border-radius: 0; box-shadow: none; background: linear-gradient(130deg, transparent 35%, #ffffff04 35%, #ffffff04 62%, transparent 62%); }
.public-hero::after { background: linear-gradient(132deg, transparent 55%, #001c2d20 55%); }
.public-page h1 { font-weight: 800; letter-spacing: -1.7px; }
.public-page h2, .public-steps h3, .public-international-card h3 { font-weight: 800; }
.public-hero em, .public-auth-copy em { color: var(--brand-highlight); }
.public-hero-description { font-size: 17px; line-height: 1.8; color: #d6e6ef; }
.public-eyebrow, .public-auth-copy .public-kicker { color: #beddeb; }
.public-eyebrow > span { background: var(--brand-cyan); }
.public-hero-register { color: #fff !important; background: var(--brand-primary) !important; font-weight: 750 !important; }
.public-hero-register:hover { background: var(--brand-hover) !important; }
.public-hero-note, .public-hero-trust { color: #c6dfeb; }
.public-hero-note > svg { color: #8fd4ff; }
.public-calculator { border-radius: 22px; border-color: var(--brand-border); color: var(--brand-text); }
.calculator-caption { color: var(--brand-navy); }
.public-rate-tabs, .public-auth-tabs, .segmented { background: #f0f5fa; }
.public-rate-tabs button span { font-size: 12px; font-weight: 700; letter-spacing: .5px; }
.public-rate-tabs strong { font-weight: 800; }
.public-rate-tabs button.selected, .public-start, .public-swap, .public-contact-button { color: #fff !important; background: var(--brand-primary) !important; }
.public-rate-tabs button.selected:hover, .public-start:hover, .public-contact-button:hover { background: var(--brand-hover) !important; }
.public-money-box { background: #fff; border-color: var(--brand-border); }
.public-money-box.result { background: #f4f9fe; border-color: #d7e8fa; }
.public-money-box:focus-within { border-color: var(--brand-primary); box-shadow: 0 0 0 3px #006fe815; }
.public-money-box input, .public-money-box.result input { color: var(--brand-text); font-weight: 800; font-variant-numeric: tabular-nums; }
.public-currency, .public-pair-label select { color: var(--brand-navy); font-weight: 750; }
.public-money-label, .public-edit-hint, .public-calculator-message, .public-calculator-footnote { color: var(--brand-muted); }
.public-kicker, .public-advisor, .public-international-card button, .public-section-title em { color: var(--brand-primary) !important; }
.public-auth-copy .public-kicker { color: #beddeb !important; }
.public-rate-update, .public-step-top > svg, .public-about-list svg, .public-international-card button { color: var(--brand-primary); background: var(--brand-soft); }
.public-section-title { text-align: center; }
.public-steps article, .public-international-card { border-color: var(--brand-border); border-radius: 16px; box-shadow: 0 6px 24px #082c6505; }
.public-step-number { color: var(--brand-primary); font-weight: 800; }
.public-about { background: #eff6fc; border-color: var(--brand-border); }
.public-about h2, .public-steps h3, .public-international-card h3 { color: var(--brand-text); }
.public-contact { background: linear-gradient(120deg, var(--brand-hero), var(--brand-hero-light)); border-color: transparent; }
.public-contact h2 { color: #fff; }
.public-contact .public-kicker { color: #9fdbff !important; }
.public-contact p { color: #c8dfeb; }
.public-footer { color: var(--brand-muted); border-top-color: var(--brand-border); }
.nibra-auth-logo { width: 185px; padding: 7px; margin-bottom: 28px; border-radius: 12px; background: #fff; }
.public-auth-card { border-color: var(--brand-border); }
.public-auth-tabs button.selected { color: var(--brand-primary); font-weight: 800; }
.public-auth-card button[type=submit] { background: var(--brand-primary); }
.public-auth-card button[type=submit]:hover { background: var(--brand-hover); }
.public-auth-card input:focus { border-color: var(--brand-primary); box-shadow: 0 0 0 3px #006fe815; }
.sidebar { background: linear-gradient(160deg, var(--brand-hero), var(--brand-navy)); }
.sidebar .brand { background: #fff; padding: 9px 12px; border-radius: 13px; }
.sidebar .nibra-logo { width: 205px; }
.nav-button.active { background: var(--brand-primary); }
.workspace-label { color: #c3dceb; }
.topbar { border-bottom-color: var(--brand-border); }
.avatar, .coin { background: var(--brand-soft); color: var(--brand-primary); }
.eyebrow { color: var(--brand-primary); }
.card { border-color: var(--brand-border); }
.stat.featured { background: linear-gradient(135deg, var(--brand-primary), #2995fa); border-color: var(--brand-primary); }
.segmented button.selected { color: var(--brand-primary); }
.quote-result { background: var(--brand-soft); border-color: #cddff4; }
.quote-result .total { color: var(--brand-navy); }
.subtle { background: #eef5fc; }
button:hover, .button:hover { background: var(--brand-hover); }
button.secondary:hover, .button.secondary:hover, button.ghost:hover { background: var(--brand-soft); }
button.danger:hover { background: #9e3535; }
.loading-screen .nibra-logo { width: 224px; margin: auto; }
.loading-screen > img { width: 160px; height: auto; }
.install-card > .brand { display: block; }
.install-card > .brand > small { display: block; margin-top: 14px; color: var(--brand-muted); }
.install-card .nibra-logo-original { width: 215px; }
@media (max-width: 900px) {
  .public-header-inner { padding: 13px 24px; }
  .public-page .nibra-logo { width: 196px; }
  .public-navigation { gap: 18px; }
}
@media (max-width: 760px) {
  .public-header-inner { min-height: 78px; padding: 14px 20px; }
  .public-page .nibra-logo { width: 180px; }
  .public-navigation { align-items: stretch; }
  .public-register, .public-login { width: 100%; justify-content: center; }
  .public-hero-description { font-size: 15px; }
  .nibra-auth-logo { margin-inline: auto; }
}
