:root{
  --gm-dark:#343b3f;
  --gm-dark-2:#2b3135;
  --gm-lime:#dae49b;
  --gm-lime-hover:#ccd77f;
  --gm-text:#2f3539;
  --gm-soft:#f5f6f2;
}
body{color:var(--gm-text);background:#f7f8f6;}
.navbar.bg-primary{background:var(--gm-dark)!important;box-shadow:0 2px 10px rgba(0,0,0,.16);}
.navbar-brand{display:flex;align-items:center;gap:.75rem;}
.gm-nav-logo{height:48px;width:auto;max-width:245px;object-fit:contain;}
.navbar .btn-light{background:transparent;border-color:transparent;color:#fff;}
.navbar .btn-light:hover,.navbar .btn-light:focus{background:rgba(218,228,155,.13);border-color:var(--gm-lime);color:var(--gm-lime);}
.navbar .btn-danger{background:transparent;border-color:rgba(255,255,255,.38);color:#fff;}
.navbar .btn-danger:hover{background:#fff;color:var(--gm-dark);border-color:#fff;}
.btn-primary{--bs-btn-bg:var(--gm-lime);--bs-btn-border-color:var(--gm-lime);--bs-btn-color:#252b2f;--bs-btn-hover-bg:var(--gm-lime-hover);--bs-btn-hover-border-color:var(--gm-lime-hover);--bs-btn-hover-color:#202529;--bs-btn-active-bg:var(--gm-lime-hover);--bs-btn-active-border-color:var(--gm-lime-hover);--bs-btn-active-color:#202529;}
.bg-primary{background-color:var(--gm-dark)!important;}
.text-primary{color:var(--gm-dark)!important;}
.border-primary{border-color:var(--gm-lime)!important;}
.form-control:focus,.form-select:focus{border-color:#c4cf78;box-shadow:0 0 0 .25rem rgba(218,228,155,.34);}
.form-check-input:checked{background-color:var(--gm-dark);border-color:var(--gm-dark);}
.card{border-color:#e7e9e2;border-radius:14px;}
.card.shadow,.shadow{box-shadow:0 .35rem 1rem rgba(43,49,53,.10)!important;}
.table thead th{background:#eef0ea;color:#343b3f;border-bottom-color:#dfe4d0;}
.pagination .page-link{color:var(--gm-dark);}
.pagination .page-item.active .page-link{background:var(--gm-dark);border-color:var(--gm-dark);}
.progress-bar{background-color:var(--gm-lime);color:#252b2f;font-weight:600;}
.badge.bg-primary{background:var(--gm-dark)!important;}
a{color:#59621f;}
a:hover{color:#363d12;}
.gm-login-page{background:linear-gradient(135deg,#f7f8f4 0%,#eef1e7 100%);}
.gm-login-card{border-top:5px solid var(--gm-lime);max-width:390px;width:100%;}
.gm-login-logo{display:block;width:min(270px,90%);height:auto;margin:0 auto 1rem;}
.gm-page-title{font-weight:700;color:var(--gm-dark);}
@media (max-width:991.98px){.navbar .container{align-items:flex-start}.navbar-brand{margin-bottom:.65rem}.gm-nav-logo{height:42px}.navbar .btn{margin-bottom:.35rem}}


/* ===== Menú responsive Gastromedical ===== */
.gm-navbar{min-height:76px;padding:.55rem 0;position:relative;z-index:1040;}
.gm-nav-container{display:flex;align-items:center!important;justify-content:space-between;position:relative;}
.gm-brand{margin:0!important;padding:0;display:flex;align-items:center;}
.gm-nav-logo{height:54px;width:auto;max-width:250px;object-fit:contain;}
.gm-nav-links{display:flex;align-items:center;gap:.2rem;margin-left:auto;}
.gm-nav-item{display:flex;align-items:center;gap:.38rem;padding:.55rem .72rem;border-radius:8px;color:#fff!important;text-decoration:none!important;font-size:.92rem;font-weight:500;line-height:1.2;transition:background .18s ease,color .18s ease;}
.gm-nav-item:hover,.gm-nav-item:focus{background:rgba(218,228,155,.14);color:var(--gm-lime)!important;}
.gm-nav-logout{margin-left:.35rem;border:1px solid rgba(255,255,255,.38);}
.gm-mobile-only{display:none;}
.gm-menu-toggle{display:none;background:transparent;border:1px solid rgba(218,228,155,.55);border-radius:9px;width:48px;height:44px;padding:9px 10px;align-items:center;justify-content:center;flex-direction:column;gap:5px;}
.gm-menu-toggle span{display:block;width:25px;height:3px;border-radius:3px;background:var(--gm-lime);transition:transform .2s ease,opacity .2s ease;}
.gm-menu-backdrop{display:none;}

@media (max-width:991.98px){
  .gm-navbar{min-height:72px;padding:.55rem 0;}
  .gm-nav-container{align-items:center!important;}
  .gm-nav-logo{height:48px;max-width:210px;}
  .gm-menu-toggle{display:flex;position:relative;z-index:1062;}
  .gm-menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg);}
  .gm-menu-toggle.active span:nth-child(2){opacity:0;}
  .gm-menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
  .gm-nav-links{position:fixed;top:0;right:-86vw;width:min(82vw,340px);height:100dvh;z-index:1061;background:linear-gradient(180deg,var(--gm-dark),var(--gm-dark-2));display:flex;flex-direction:column;align-items:stretch;gap:0;padding:92px 18px 24px;box-shadow:-12px 0 30px rgba(0,0,0,.28);transition:right .24s ease;overflow-y:auto;}
  .gm-nav-links.show{right:0;}
  .gm-nav-item{min-height:58px;width:100%;padding:.85rem 1rem;border-radius:8px;border-bottom:1px solid rgba(255,255,255,.10);font-size:1.08rem;font-weight:500;}
  .gm-nav-item:first-child{color:var(--gm-lime)!important;background:rgba(218,228,155,.08);}
  .gm-nav-logout{margin:10px 0 0;border:1px solid rgba(255,255,255,.22);}
  .gm-mobile-only{display:flex;}
  .gm-menu-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:1060;opacity:0;visibility:hidden;display:block;transition:opacity .2s ease,visibility .2s ease;}
  body.gm-menu-open{overflow:hidden;}
  body.gm-menu-open .gm-menu-backdrop{opacity:1;visibility:visible;}
}
@media (max-width:420px){
  .gm-nav-logo{height:43px;max-width:185px;}
  .gm-menu-toggle{width:46px;height:42px;}
}


/* ===== Responsive general para páginas internas ===== */
@media (max-width: 767.98px) {
  body { overflow-x: hidden; }

  .container {
    width: 100%;
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }

  .container.mt-4 {
    margin-top: 1.25rem !important;
  }

  h1, h2 {
    font-size: 1.65rem;
    line-height: 1.2;
    margin-bottom: 1rem;
  }

  .btn {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .form-control,
  .form-select {
    min-height: 44px;
    font-size: 16px; /* evita zoom automático en iPhone/Android */
  }

  form.row.g-2 > [class*="col-"],
  form.row.g-2 > .col-auto {
    width: 100%;
    flex: 0 0 100%;
  }

  form.row.g-2 .col-auto > .btn,
  form.row.g-2 .col-auto > a.btn {
    margin-top: 4px;
    margin-right: 4px;
    margin-bottom: 4px;
  }

  .alert {
    font-size: .95rem;
    padding: .8rem 1rem;
  }

  .gm-table-scroll {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 8px;
  }

  .gm-table-scroll table {
    min-width: 760px;
    margin-bottom: .35rem;
    font-size: .9rem;
  }

  .gm-table-scroll th,
  .gm-table-scroll td {
    white-space: nowrap;
    vertical-align: middle;
  }

  .gm-table-scroll .btn {
    min-height: 36px;
  }

  /* Doctores: buscador y selector cómodos en teléfono */
  #buscarDoctor {
    width: 100%;
  }

  select[name="mostrar"] {
    width: 100% !important;
    max-width: 180px;
  }
}

/* En pantallas muy pequeñas, menú/logo más equilibrados */
@media (max-width: 420px) {
  .gm-navbar {
    min-height: 68px;
  }
  .gm-nav-logo {
    height: 42px;
    max-width: 190px;
  }
}
