/* GeraBoi App UI v3.4 — global mobile-first compatibility layer */
:root{
 --gb-app-bg:#f3f1ee;--gb-app-surface:#fff;--gb-app-ink:#143236;--gb-app-muted:#6f7b79;
 --gb-app-accent:#bd6942;--gb-app-border:#dde2df;--gb-app-radius:18px;--gb-app-radius-sm:12px;
 --gb-app-shadow:0 8px 28px rgba(20,50,54,.07);--gb-app-touch:48px;
}
body.gb-app-ui{background:var(--gb-app-bg);color:var(--gb-app-ink);-webkit-tap-highlight-color:transparent}
body.gb-app-ui main{min-width:0}
body.gb-app-ui .dashboard-content,
body.gb-app-ui .container-fluid,
body.gb-app-ui .container{min-width:0}
body.gb-app-ui .card:not(.gb-no-app-card){border:1px solid var(--gb-app-border);border-radius:var(--gb-app-radius);box-shadow:var(--gb-app-shadow);background:var(--gb-app-surface)}
body.gb-app-ui .card-header{background:transparent;border-bottom:1px solid #edf0ee}
body.gb-app-ui .btn{min-height:44px;border-radius:12px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}
body.gb-app-ui .btn-sm{min-height:38px}
body.gb-app-ui .form-control,
body.gb-app-ui .form-select{min-height:46px;border-radius:12px;border-color:#d7ddda;background-color:#fff}
body.gb-app-ui textarea.form-control{min-height:100px}
body.gb-app-ui .form-control:focus,
body.gb-app-ui .form-select:focus{border-color:#537277;box-shadow:0 0 0 3px rgba(20,50,54,.10)}
body.gb-app-ui label,.gb-app-ui .form-label{font-weight:650;color:#465755}
body.gb-app-ui .nav-tabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:.35rem;border-bottom:0}
body.gb-app-ui .nav-tabs::-webkit-scrollbar{display:none}
body.gb-app-ui .nav-tabs .nav-link{white-space:nowrap;border:0;border-radius:999px;background:#e9ece9;color:#50605e;min-height:42px;padding:.65rem 1rem}
body.gb-app-ui .nav-tabs .nav-link.active{background:var(--gb-app-ink);color:#fff}
body.gb-app-ui .table-responsive{border-radius:14px;-webkit-overflow-scrolling:touch}
body.gb-app-ui table{vertical-align:middle}
body.gb-app-ui .modal-content{border:0;border-radius:22px;box-shadow:0 24px 70px rgba(20,50,54,.20)}
body.gb-app-ui .modal-header,.gb-app-ui .modal-footer{border-color:#edf0ee}
body.gb-app-ui .dropdown-menu{border:1px solid var(--gb-app-border);border-radius:14px;box-shadow:var(--gb-app-shadow);padding:.45rem}
body.gb-app-ui .dropdown-item{border-radius:9px;min-height:42px;display:flex;align-items:center}
body.gb-app-ui .breadcrumb{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
body.gb-app-ui .breadcrumb::-webkit-scrollbar{display:none}
body.gb-app-ui .pagination{gap:.25rem;flex-wrap:wrap}
body.gb-app-ui .page-link{border-radius:10px!important;min-width:40px;min-height:40px;display:grid;place-items:center}
body.gb-app-ui .alert{border-radius:14px}
body.gb-app-ui .badge{border-radius:999px;padding:.42em .7em}
body.gb-app-ui .dataTables_wrapper,
body.gb-app-ui .dt-container{max-width:100%;min-width:0}
body.gb-app-ui .dt-search input,
body.gb-app-ui .dataTables_filter input{min-height:44px;border-radius:12px!important}
body.gb-app-ui .dt-length select{min-height:40px;border-radius:10px}
body.gb-app-ui .gb-app-empty{text-align:center;padding:2.5rem 1rem;color:var(--gb-app-muted)}
body.gb-app-ui.gb-page-form form:not(.gb-compact-form) .row{row-gap:.25rem}
body.gb-app-ui.gb-page-detail .card-body{min-width:0}
@media(max-width:991.98px){
 body.gb-app-ui{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
 body.gb-app-ui main{padding-bottom:1rem}
 body.gb-app-ui .dashboard-content{padding-left:14px!important;padding-right:14px!important}
 body.gb-app-ui .modal-dialog{margin:.75rem}
 body.gb-app-ui .modal-dialog.modal-dialog-centered{min-height:calc(100% - 1.5rem)}
 body.gb-app-ui .offcanvas{max-width:min(90vw,390px)}
}
@media(max-width:767.98px){
 body.gb-app-ui .dashboard-content{padding-left:12px!important;padding-right:12px!important}
 body.gb-app-ui h1{font-size:clamp(1.65rem,7vw,2rem);line-height:1.08}
 body.gb-app-ui h2{font-size:1.35rem}
 body.gb-app-ui .card:not(.gb-no-app-card){border-radius:16px}
 body.gb-app-ui .card-body{padding:1rem}
 body.gb-app-ui .row{--bs-gutter-x:.8rem}
 body.gb-app-ui input:not([type=checkbox]):not([type=radio]),
 body.gb-app-ui select,body.gb-app-ui textarea{font-size:16px!important}
 body.gb-app-ui .form-check{min-height:44px;display:flex;align-items:center;gap:.6rem}
 body.gb-app-ui .form-check-input{width:1.25rem;height:1.25rem;margin-top:0;flex:0 0 auto}
 body.gb-app-ui .btn:not(.btn-sm){min-height:48px}
 body.gb-app-ui .modal-dialog{margin:0;align-items:flex-end;min-height:100dvh}
 body.gb-app-ui .modal-content{border-radius:24px 24px 0 0;max-height:88dvh}
 body.gb-app-ui .modal-body{overflow:auto;-webkit-overflow-scrolling:touch}
 body.gb-app-ui .modal-footer{padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}
 body.gb-app-ui .dt-layout-row,
 body.gb-app-ui .dataTables_wrapper .row{gap:.65rem}
 body.gb-app-ui .dt-search,
 body.gb-app-ui .dataTables_filter{width:100%;margin:0!important}
 body.gb-app-ui .dt-search input,
 body.gb-app-ui .dataTables_filter input{width:100%!important;margin:.35rem 0 0!important}
 body.gb-app-ui .dt-info{font-size:.86rem;color:var(--gb-app-muted)}
 body.gb-app-ui .table{font-size:.9rem}
 body.gb-app-ui .gb-mobile-stack{display:grid!important;grid-template-columns:1fr!important}
 body.gb-app-ui .gb-mobile-full{width:100%!important}
 body.gb-app-ui .gb-page-actions{display:grid;grid-template-columns:1fr;gap:.6rem}
}
@media(min-width:768px) and (max-width:1199.98px){
 body.gb-app-ui .dashboard-content{padding-left:20px!important;padding-right:20px!important}
}
@media(prefers-reduced-motion:reduce){
 body.gb-app-ui *,body.gb-app-ui *::before,body.gb-app-ui *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}


/* ==========================================================
   GeraBoi App UI v3.5 — stable mobile floating action system
   ========================================================== */
:root{
  --gb-bottom-nav-size:66px;
  --gb-safe-bottom:env(safe-area-inset-bottom, 0px);
  --gb-floating-edge:16px;
  --gb-floating-gap:12px;
  --gb-fab-size:56px;
  --gb-scrolltop-size:44px;
  --gb-floating-base:calc(var(--gb-bottom-nav-size) + var(--gb-safe-bottom) + var(--gb-floating-edge));
}

/* Global utility action: secondary to contextual actions. */
body.gb-app-ui #scrollTopBtn{
  width:var(--gb-scrolltop-size)!important;
  height:var(--gb-scrolltop-size)!important;
  right:var(--gb-floating-edge)!important;
  bottom:var(--gb-floating-base)!important;
  z-index:1040!important;
  background:rgba(20,50,54,.94)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 7px 20px rgba(20,50,54,.18)!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(8px) scale(.96);
}
body.gb-app-ui.gb-scroll-ready #scrollTopBtn.show{
  opacity:.92!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:none;
}
/* When a page has a business FAB, utility action occupies the second slot. */
body.gb-app-ui.gb-has-context-fab #scrollTopBtn{
  bottom:calc(var(--gb-floating-base) + var(--gb-fab-size) + var(--gb-floating-gap))!important;
}

/* Contextual FAB slot — modules may style color/icon, not geometry. */
body.gb-app-ui .gb-animais-fab,
body.gb-app-ui .gb-context-fab,
body.gb-app-ui [data-gb-fab]{
  width:var(--gb-fab-size)!important;
  height:var(--gb-fab-size)!important;
  right:var(--gb-floating-edge)!important;
  bottom:var(--gb-floating-base)!important;
  z-index:1045!important;
  margin:0!important;
}

/* Fixed feedback must never hide primary mobile actions. */
body.gb-app-ui .toast-container.position-fixed,
body.gb-app-ui .gb-toast-stack{
  bottom:calc(var(--gb-floating-base) + var(--gb-fab-size) + 64px)!important;
}

@media(max-width:767.98px){
  /* Compact context remains visible before sticky tools. */
  body.gb-app-ui .gb-animais-appbar{margin-bottom:10px!important;padding-top:2px}
  body.gb-app-ui .gb-animais-appbar h1{font-size:1.45rem!important}
  body.gb-app-ui .gb-animais-appbar p{font-size:.82rem!important;line-height:1.35}
  body.gb-app-ui .gb-animais-tools{top:60px}
}
@media(min-width:768px){
  body.gb-app-ui #scrollTopBtn{bottom:20px!important;right:20px!important}
  body.gb-app-ui.gb-has-context-fab #scrollTopBtn{bottom:20px!important}
}

/* v3.6 form-page integration */
.gb-app-ui.gb-page-form .dashboard-content,
.gb-app-ui.gb-page-form .container-fluid > .card,
.gb-app-ui.gb-page-form main > .container,
.gb-app-ui.gb-page-form main > .container-fluid {
  min-width: 0;
}
@media (max-width: 767.98px) {
  .gb-app-ui.gb-page-form .page-header,
  .gb-app-ui.gb-page-form .dashboard-header {
    margin-bottom: 14px;
  }
  .gb-app-ui.gb-page-form h1 { font-size: clamp(1.45rem,7vw,1.9rem); line-height:1.12; }
}
\n\n/* v3.7 — operational app surface */\n@media(max-width:767.98px){\n body.gb-app-ui.gb-page-form main{padding-bottom:0}\n body.gb-app-ui.gb-page-form .dashboard-content{box-shadow:0 4px 18px rgba(20,50,54,.055)!important}\n}\n
/* GeraBoi Action Feedback v3.10 */
.gb-is-submitting{cursor:progress}.gb-submit-processing{position:relative;display:inline-flex!important;align-items:center;justify-content:center;gap:.625rem;min-width:8.5rem;cursor:progress!important;user-select:none}.gb-submit-spinner{width:1rem;height:1rem;flex:0 0 1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:gb-submit-spin .7s linear infinite}@keyframes gb-submit-spin{to{transform:rotate(360deg)}}
@media(max-width:991.98px){.toast-container,.gb-toast-container,[data-gb-toast-container]{position:fixed!important;left:12px!important;right:12px!important;bottom:calc(var(--gb-bottom-nav-height,72px) + env(safe-area-inset-bottom,0px) + var(--gb-form-action-height,0px) + 16px)!important;z-index:1090!important;max-width:none!important;pointer-events:none}.toast-container>*,.gb-toast-container>*,[data-gb-toast-container]>*{pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.gb-submit-spinner{animation-duration:1.4s}}
