
/* =========================================================
   GeraBoi Semantic Theme v3.13
   Mobile-first semantic color system
   ========================================================= */
:root {
  /* Brand */
  --gb-brand-950:#0d292c;
  --gb-brand-900:#143236;
  --gb-brand-800:#1c3d41;
  --gb-brand-700:#264a50;
  --gb-brand-600:#365e63;
  --gb-brand-100:#e8f0ef;
  --gb-brand-50:#f3f7f6;

  /* Rural accent / terracotta */
  --gb-accent-700:#9e4d2c;
  --gb-accent-600:#b75a32;
  --gb-accent-500:#c66a43;
  --gb-accent-100:#f7e9e1;
  --gb-accent-50:#fcf5f1;

  /* Warm neutrals */
  --gb-sand-100:#f5f1e8;
  --gb-sand-50:#faf8f4;
  --gb-surface:#ffffff;
  --gb-canvas:#f4f3ef;
  --gb-border:#dde2de;
  --gb-border-strong:#cbd3ce;
  --gb-text:#183438;
  --gb-text-muted:#687675;
  --gb-disabled-bg:#f0f2ef;
  --gb-disabled-text:#87918e;

  /* Semantic */
  --gb-success:#2f6f4e;
  --gb-success-bg:#eaf4ee;
  --gb-warning:#9a6a18;
  --gb-warning-bg:#fbf3df;
  --gb-danger:#a54238;
  --gb-danger-bg:#fae9e7;
  --gb-info:#356b78;
  --gb-info-bg:#e9f2f4;

  /* Compatibility with existing project tokens */
  --cor-esmeralda-escuro:var(--gb-brand-900);
  --cor-esmeralda-claro:var(--gb-brand-700);
  --cor-terracota:var(--gb-accent-500);
  --cor-areia:var(--gb-sand-100);

  --bs-primary:var(--gb-brand-900);
  --bs-primary-rgb:20,50,54;
  --bs-success:var(--gb-success);
  --bs-danger:var(--gb-danger);
  --bs-warning:var(--gb-warning);
  --bs-info:var(--gb-info);
}

body.gb-ui-v2,
html.gb-ui-v2 body {
  background:var(--gb-canvas);
  color:var(--gb-text);
}

/* Primary actions: confidence/action = emerald */
.gb-ui-v2 .btn-primary,
.gb-ui-v2 button.btn-primary,
.gb-ui-v2 input.btn-primary,
.gb-ui-v2 .gb-form-actionbar .btn:not(.btn-outline-secondary):not(.btn-secondary):not(.btn-danger),
.gb-ui-v2 .gb-form-action-bar .btn:not(.btn-outline-secondary):not(.btn-secondary):not(.btn-danger),
.gb-ui-v2 [data-gb-form-actionbar] .btn:not(.btn-outline-secondary):not(.btn-secondary):not(.btn-danger) {
  background:var(--gb-brand-900) !important;
  border-color:var(--gb-brand-900) !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(20,50,54,.16);
}
.gb-ui-v2 .btn-primary:hover,
.gb-ui-v2 .btn-primary:focus {
  background:var(--gb-brand-800) !important;
  border-color:var(--gb-brand-800) !important;
}

/* Secondary / outline */
.gb-ui-v2 .btn-outline-primary {
  color:var(--gb-brand-900);
  border-color:var(--gb-brand-700);
  background:#fff;
}
.gb-ui-v2 .btn-outline-primary:hover {
  color:#fff;
  background:var(--gb-brand-900);
}

/* Terracotta is accent, not default submit */
.gb-ui-v2 .text-terracota,
.gb-ui-v2 .gb-accent,
.gb-ui-v2 .text-accent { color:var(--gb-accent-600) !important; }
.gb-ui-v2 .bg-terracota,
.gb-ui-v2 .gb-accent-bg { background:var(--gb-accent-100) !important; }

/* Fields */
.gb-ui-v2 .form-control,
.gb-ui-v2 .form-select,
.gb-ui-v2 .select2-container--default .select2-selection--single,
.gb-ui-v2 .select2-container--default .select2-selection--multiple {
  color:var(--gb-text);
  background-color:var(--gb-surface);
  border-color:var(--gb-border);
}
.gb-ui-v2 .form-control:focus,
.gb-ui-v2 .form-select:focus,
.gb-ui-v2 .select2-container--focus .select2-selection {
  border-color:var(--gb-brand-600) !important;
  box-shadow:0 0 0 .2rem rgba(38,74,80,.10) !important;
}
.gb-ui-v2 .form-control:disabled,
.gb-ui-v2 .form-select:disabled {
  background:var(--gb-disabled-bg);
  color:var(--gb-disabled-text);
  opacity:1;
}
.gb-ui-v2 .form-label,
.gb-ui-v2 label { color:var(--gb-text); }
.gb-ui-v2 .form-text,
.gb-ui-v2 .text-muted { color:var(--gb-text-muted) !important; }

/* Cards / surfaces */
.gb-ui-v2 .card,
.gb-ui-v2 .gb-form-section,
.gb-ui-v2 .dashboard-box {
  border-color:var(--gb-border);
  background:var(--gb-surface);
}
.gb-ui-v2 hr { border-color:var(--gb-border); opacity:1; }

/* Semantic feedback */
.gb-ui-v2 .alert-success { color:var(--gb-success); background:var(--gb-success-bg); border-color:rgba(47,111,78,.18); }
.gb-ui-v2 .alert-danger  { color:var(--gb-danger); background:var(--gb-danger-bg); border-color:rgba(165,66,56,.18); }
.gb-ui-v2 .alert-warning { color:var(--gb-warning); background:var(--gb-warning-bg); border-color:rgba(154,106,24,.18); }
.gb-ui-v2 .alert-info    { color:var(--gb-info); background:var(--gb-info-bg); border-color:rgba(53,107,120,.18); }

/* Required indicator: visible but not alarm-like */
.gb-ui-v2 .gb-required-indicator,
.gb-ui-v2 .required,
.gb-ui-v2 [aria-required="true"] + .gb-required-indicator {
  color:var(--gb-accent-600);
}

/* Bottom nav */
@media (max-width:991.98px) {
  .gb-bottom-nav,
  .mobile-bottom-nav {
    background:var(--gb-brand-900) !important;
    border-top-color:rgba(255,255,255,.08) !important;
  }
  .gb-bottom-nav .active,
  .mobile-bottom-nav .active {
    background:rgba(245,241,232,.14) !important;
    color:#fff !important;
  }

  /* Utility scroll-to-top never competes with a full-page form action bar. */
  body.gb-has-form-actionbar .scroll-to-top,
  body.gb-has-form-actionbar #scrollToTop,
  body.gb-has-form-actionbar .back-to-top,
  body.gb-has-form-actionbar [data-scroll-top],
  body.gb-has-form-actionbar [data-gb-scroll-top],
  body.gb-form-page .scroll-to-top,
  body.gb-form-page #scrollToTop,
  body.gb-form-page .back-to-top,
  body.gb-form-page [data-scroll-top],
  body.gb-form-page [data-gb-scroll-top] {
    display:none !important;
  }
}

/* Keep danger visually distinct and never use brand accent as error. */
.gb-ui-v2 .btn-danger {
  background:var(--gb-danger);
  border-color:var(--gb-danger);
}
