/* =============================================================
   GT2025 — Design Tokens
   Importar após Bootstrap. Não editar hardcoded hex nas telas:
   usar sempre var(--primary-color) e os tokens abaixo.
   ============================================================= */

/* ---- Perfil padrão: Contratante ---- */
:root {
  /* Cor primária (muda por perfil) */
  --primary-color:        #0E5554;
  --primary-color-rgb:    14, 85, 84;

  /* Gradientes */
  --gradient-sidebar:     linear-gradient(233.6deg, #1A7A79 -10.19%, #0E5554 76.92%);
  --gradient-orange:      linear-gradient(90deg, #E07022 0%, #E59221 100%);
  --gradient-warm:        linear-gradient(346.15deg, #55A4E6 0%, #E07022 0.35%, #E59221 99.47%);

  /* Status / Feedback */
  --color-success:        #3CB57B;
  --color-warning:        #FC9620;
  --color-danger:         #FF244B;
  --color-danger-soft:    #CD6D6D;
  --color-info:           #38A4F8;
  --color-purple:         #9747FF;

  /* Superfície / Neutros */
  --color-white:          #FFFFFF;
  --color-bg-page:        #F5F5F5;
  --color-bg-light:       #EEEEEE;
  --color-border:         #DDDDDD;
  --color-border-light:   #C4C4C4;
  --color-text-muted:     #777777;
  --color-text-dark:      #000000;

  /* Sombras */
  --shadow-card:          0px 0px 13px rgba(0, 0, 0, 0.13);
  --shadow-circle:        0 4px 10px rgba(0, 0, 0, 0.125);
  --shadow-btn:           0 6px 15px rgba(0, 0, 0, 0.15);
  --shadow-avatar:        0 4px 12px rgba(0, 0, 0, 0.2);

  /* Raios */
  --radius-card:          10px;
  --radius-input:         6px;
  --radius-btn:           4px;
  --radius-badge:         4px;
  --radius-login-card:    15px;

  /* Sidebar */
  --sidebar-width:        88px;
  --sidebar-width-expand: 220px;
  --topbar-height:        60px;

  /* Tipografia */
  --font-title:           'Montserrat', sans-serif;
  --font-body:            'Montserrat', sans-serif;
  --font-ui:              'Montserrat', sans-serif;
}

/* ---- Perfil: Contratante ---- */
body.perfil-contratante {
  --primary-color:        #3D78AE;
  --primary-color-rgb:    61, 120, 174;
  --gradient-sidebar:     linear-gradient(233.6deg, #5592C8 -10.19%, #3D78AE 76.92%);
}

/* ---- Perfil: Fornecedor ---- */
body.perfil-fornecedor {
  --primary-color:        #0E5554;
  --primary-color-rgb:    14, 85, 84;
  --gradient-sidebar:     linear-gradient(233.6deg, #1A7A79 -10.19%, #0E5554 76.92%);
}

/* ---- Perfil: Gestor ---- */
body.perfil-gestor {
  --primary-color:        #0E5554;
  --primary-color-rgb:    14, 85, 84;
  --gradient-sidebar:     linear-gradient(233.6deg, #1A7A79 -10.19%, #0E5554 76.92%);
}

/* =============================================================
   Overrides base — aplicados globalmente
   ============================================================= */

body {
  font-family:    var(--font-body);
  background:     var(--color-bg-page);
  color:          var(--color-text-dark);
}

h1, h2, h3, h4, h5, h6,
.page-title {
  font-family: var(--font-title);
}

label,
.nav-link,
.sidebar-label,
.badge,
small,
caption {
  font-family: var(--font-ui);
}

/* ---- Cards ---- */
.card,
.gt-card {
  background:    var(--color-white);
  box-shadow:    var(--shadow-card);
  border-radius: var(--radius-card);
  overflow:      hidden;
}

/* Borda esquerda colorida — identidade dos cards de lista */
.gt-card-list {
  position:      relative;
  padding-left:  20px;
}
.gt-card-list::before {
  content:       '';
  position:      absolute;
  left:          0;
  top:           0;
  bottom:        0;
  width:         8px;
  background:    var(--primary-color);
  border-radius: var(--radius-card) 0 0 var(--radius-card);
}

/* ---- Botões ---- */
.btn-primary,
.btn-gt-primary {
  background-color: var(--primary-color);
  border-color:     var(--primary-color);
  color:            var(--color-white);
  border-radius:    var(--radius-btn);
  font-family:      var(--font-title);
  font-weight:      500;
}
.btn-primary:hover,
.btn-gt-primary:hover {
  background-color: rgba(var(--primary-color-rgb), 0.85);
  border-color:     rgba(var(--primary-color-rgb), 0.85);
}

.btn-gt-outline {
  background:    transparent;
  border:        1px solid var(--primary-color);
  color:         var(--primary-color);
  border-radius: var(--radius-btn);
  font-family:   var(--font-title);
  font-weight:   500;
}

/* ---- Inputs ---- */
.form-control,
.gt-input {
  border:        1px solid var(--color-border);
  border-radius: var(--radius-input);
  font-size:     14px;
  background:    var(--color-white);
  font-family:   var(--font-body);
}
.form-control:focus,
.gt-input:focus {
  border-color: var(--primary-color);
  box-shadow:   0 0 0 2px rgba(var(--primary-color-rgb), 0.15);
  outline:      none;
}

/* ---- Badges de status ---- */
.badge-vigente,
.badge-gestao-iniciada {
  background: var(--color-success);
  color:      var(--color-white);
  border-radius: var(--radius-badge);
  padding:    2px 8px;
  font-family: var(--font-ui);
  font-size:  12px;
}
.badge-em-analise,
.badge-aguardando,
.badge-criando {
  background: var(--color-warning);
  color:      var(--color-white);
  border-radius: var(--radius-badge);
  padding:    2px 8px;
  font-family: var(--font-ui);
  font-size:  12px;
}
.badge-danger {
  background: var(--color-danger);
  color:      var(--color-white);
  border-radius: var(--radius-badge);
  padding:    2px 8px;
  font-family: var(--font-ui);
  font-size:  12px;
}

/* ---- Tabs (underline) ---- */
.gt-tabs .nav-link {
  color:       #7a7a7a;
  font-weight: 500;
  padding:     16px 28px;
  border:      none;
  font-family: var(--font-ui);
}
.gt-tabs .nav-link.active {
  color:           var(--primary-color);
  border-bottom:   2px solid var(--primary-color);
  background:      transparent;
}

/* Tabs com background preenchido */
.gt-tabs-filled .nav-link.active {
  background-color: var(--primary-color);
  color:            var(--color-white);
  border-bottom:    none;
}

/* ---- Topbar ---- */
.topbar,
.top_nav {
  height:     var(--topbar-height);
  background: var(--color-white);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}

/* ---- Estado vazio ---- */
.gt-empty-state {
  background:    rgba(61, 120, 174, 0.08);
  border-radius: var(--radius-card);
  text-align:    center;
  color:         var(--primary-color);
  padding:       32px;
}

/* ---- Utilitários ---- */
.bg-success-light  { background: rgba(60, 181, 123, 0.13); }
.bg-danger-light   { background: rgba(205, 109, 109, 0.13); }
.bg-info-light     { background: rgba(56, 164, 248, 0.13); }
.bg-warning-light  { background: #feead2; }
.bg-super-light,
.bg-light-2        { background: #F5F5F5; }
.text-muted        { color: var(--color-text-muted) !important; }
.text-warning-custom { color: #fc9620; }
.text-alternative  { color: #b2d1ee; }
.shadow-circle     { box-shadow: var(--shadow-circle); }
.rounded-10px      { border-radius: 10px; }