/* ==========================================================================
   Gestiones — Tema visual moderno (se superpone a AdminLTE)
   Sidebar réplica del ERP AUTOCAM · paleta navy + azul + teal · Inter.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  --g-bg:#f4f7fb; --g-panel:#fff; --g-ink:#07132d; --g-muted:#63718a;
  --g-line:#dce6f3; --g-blue:#1267ff; --g-blue2:#0c55d8; --g-teal:#13b59e;
  --g-nav:#0b1426; --g-nav2:#101d34; --g-gold:#f5b429;
  --g-shadow:0 18px 45px rgba(22,39,76,.10); --g-radius:20px;
}

/* ---------- Base ---------- */
body, .wrapper{ font-family:'Inter',-apple-system,Segoe UI,Roboto,Arial,sans-serif !important; color:var(--g-ink); }
.content-wrapper, body.hold-transition{ background:var(--g-bg) !important; }
a{ color:var(--g-blue); }

/* ==========================================================================
   SIDEBAR (réplica AUTOCAM, clases gest-* para no chocar con AdminLTE)
   ========================================================================== */
.main-sidebar.gest-aside{
  background:linear-gradient(180deg,var(--g-nav),var(--g-nav2)) !important;
  display:flex; flex-direction:column; padding:0 !important;
  box-shadow:6px 0 30px rgba(7,19,45,.12);
}
/* Sin subrayado en ningún link del menú */
.gest-aside a, .gest-aside a:hover, .gest-aside summary{ text-decoration:none !important; }
.gest-scroll{
  flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden;
  padding:14px 10px 8px; scrollbar-width:thin; scrollbar-color:#33435c transparent;
}
.gest-scroll::-webkit-scrollbar{ width:6px; }
.gest-scroll::-webkit-scrollbar-track{ background:transparent; }
.gest-scroll::-webkit-scrollbar-thumb{ background:#33435c; border-radius:20px; }

/* Logo */
.gest-logo-link{ display:flex; align-items:center; justify-content:center; min-height:56px; margin:2px 2px 14px; }
.gest-logo-img{ max-height:44px; max-width:196px; object-fit:contain; display:block; }
.gest-logo-fallback{ align-items:center; gap:10px; }
.gest-logo-badge{ width:40px; height:40px; border-radius:14px; display:grid; place-items:center;
  background:linear-gradient(135deg,#1380ff,#16b59d); color:#fff; font-weight:900; }
.gest-logo-text{ font-weight:900; font-size:21px; color:#fff; letter-spacing:.02em; }

/* Tarjeta de usuario */
.gest-usercard{ display:flex; align-items:center; gap:10px; margin-bottom:12px;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:10px; }
.gest-avatar{ width:40px; height:40px; border-radius:13px; flex:0 0 auto; display:grid; place-items:center;
  background:linear-gradient(135deg,#31425f,#1f2c45); color:#fff; font-weight:900; font-size:14px; }
.gest-uc-label{ color:#8aa0c6; font-size:11px; font-weight:600; }
.gest-uc-name{ color:#fff; font-weight:800; font-size:13px; line-height:1.15;
  max-width:145px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Títulos de sección */
.gest-nav-title{ font-size:10px; letter-spacing:.16em; color:#8795ad; text-transform:uppercase;
  font-weight:800; margin:14px 10px 6px; }

/* Ítem "Inicio" destacado */
.gest-nav-dash{ display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:12px;
  color:#dfe9f8 !important; font-weight:700; font-size:13.5px; margin:3px 2px 6px; transition:.15s; }
.gest-nav-dash i{ width:20px; text-align:center; font-size:.95rem; }
.gest-nav-dash:hover{ background:rgba(255,255,255,.08); color:#fff !important; }
.gest-nav-dash.active{ color:#fff !important; background:linear-gradient(135deg,#2764ee,#1b7cff);
  box-shadow:0 8px 18px rgba(27,124,255,.38); }

/* Ítems del menú */
.gest-nav-item{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:11px;
  color:#dfe9f8 !important; font-weight:600; font-size:13.5px; margin:1px 2px; transition:.15s; }
.gest-nav-item i{ width:18px; text-align:center; color:#8ea6cf; font-size:.88rem; flex:0 0 auto; }
.gest-nav-item span{ line-height:1.2; }
.gest-nav-item:hover{ background:rgba(255,255,255,.07); color:#fff !important; }
.gest-nav-item:hover i{ color:#cfe0ff; }
.gest-nav-item.active{ background:linear-gradient(135deg,#2764ee,#1b7cff); color:#fff !important;
  box-shadow:0 8px 18px rgba(27,124,255,.33); }
.gest-nav-item.active i{ color:#fff; }

/* Grupos colapsables */
.gest-nav-group{ margin:4px 0; }
.gest-nav-group summary{ list-style:none; display:flex; align-items:center; justify-content:space-between;
  gap:10px; cursor:pointer; color:#ebf3ff; padding:9px 11px; border-radius:11px; font-weight:700; font-size:13.5px; }
.gest-nav-group summary::-webkit-details-marker{ display:none; }
.gest-nav-group summary span{ display:flex; align-items:center; gap:10px; }
.gest-nav-group summary span i:first-child{ width:20px; text-align:center; color:#8ea6cf; font-size:.9rem; }
.gest-nav-group[open] summary{ background:rgba(255,255,255,.08); }
.gest-chev{ font-size:.7rem; color:#8795ad; transition:transform .2s; }
.gest-nav-group[open] .gest-chev{ transform:rotate(180deg); }
.gest-nav-sub{ padding:2px 0 4px 8px; margin-left:19px; border-left:1px solid rgba(255,255,255,.13); }
.gest-nav-sub .gest-nav-item{ padding:7px 9px; font-size:13px; }

/* Pie con botón Salir */
.gest-side-footer{ padding:12px 14px; border-top:1px solid rgba(255,255,255,.10); background:rgba(0,0,0,.18); }
.gest-version{ text-align:center; color:#6f7f9e; font-size:11px; font-weight:700; margin-bottom:8px; }
.btn-salir{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
  background:#132039; color:#fff !important; border:1px solid #33435c; border-radius:13px;
  padding:11px; font-weight:800; transition:.15s; }
.btn-salir:hover{ background:#1b2c4a; transform:translateY(-1px); }

/* Sidebar y topbar fijos + ancho más compacto (estilo AUTOCAM) */
@media (min-width:992px){
  .main-sidebar{ position:fixed !important; top:0; left:0; bottom:0;
    width:236px !important; height:100vh !important; z-index:1038; }
  .content-wrapper, .main-header, .main-footer{ margin-left:236px; }
  .main-header{ position:sticky; top:0; z-index:1037; }
}

/* ---------- Topbar ---------- */
.main-header.navbar{
  background:rgba(255,255,255,.94) !important; backdrop-filter:blur(12px);
  border-bottom:1px solid var(--g-line) !important; box-shadow:none !important;
  padding:.5rem 1.1rem !important; min-height:64px;
}
.main-header .navbar-nav > .nav-item > .nav-link{
  color:var(--g-ink) !important; font-weight:600; border-radius:12px;
  padding:.5rem .75rem; transition:.15s;
}
.main-header .navbar-nav > .nav-item > .nav-link:hover{ background:#eef3fb; }
.navbar-badge{ border-radius:999px; font-weight:800; }

/* Píldora de usuario en la topbar */
.gest-user-pill{ display:flex !important; align-items:center; gap:9px;
  background:transparent; border:0 !important; border-radius:12px;
  padding:5px 10px !important; transition:background .15s; }
.gest-user-pill:hover{ background:#eef2f7; }
.gest-user-pill .u-av{ width:38px; height:38px; border-radius:11px; flex:0 0 auto;
  background:linear-gradient(135deg,#1e3a8a,#2563eb); color:#fff; display:grid;
  place-items:center; font-weight:800; font-size:13px; }
.gest-user-pill .u-name{ font-weight:700; font-size:13px; line-height:1.15; color:var(--g-ink); }
.gest-user-pill .u-role{ font-size:11px; color:var(--g-muted); }

/* Dropdowns */
.dropdown-menu{ border:1px solid var(--g-line) !important; border-radius:16px !important;
  box-shadow:0 24px 60px rgba(7,19,45,.16) !important; padding:8px !important; }
.dropdown-item{ border-radius:10px; font-weight:600; padding:.55rem .7rem; }
.dropdown-item:hover{ background:#f3f7fc; }
.dropdown-divider{ margin:.35rem .2rem; border-color:var(--g-line); }

/* ---------- Encabezado de página ---------- */
.content-header h1, .content-header .h1{ font-weight:900 !important; letter-spacing:-.03em; color:var(--g-ink); }
.content-header small, .content-header .text-muted{ color:var(--g-muted) !important; }

/* ---------- Tarjetas ---------- */
.card{ border:1px solid rgba(212,224,241,.75) !important; border-radius:var(--g-radius) !important;
  box-shadow:var(--g-shadow) !important; overflow:hidden; }
.card-header{ background:#fff !important; border-bottom:1px solid var(--g-line) !important; font-weight:800; }
.card-primary.card-outline{ border-top:3px solid var(--g-blue) !important; }
.card-success.card-outline{ border-top:3px solid #16a34a !important; }
.card-warning.card-outline{ border-top:3px solid var(--g-gold) !important; }
.card-title{ font-weight:800; }

/* ---------- KPIs ---------- */
.small-box{ border-radius:var(--g-radius) !important; box-shadow:var(--g-shadow) !important; overflow:hidden; }
.small-box > .inner h3{ font-weight:900; }
.small-box.bg-info, .small-box.bg-primary{ background:linear-gradient(135deg,#2267ef,#13b59e) !important; }
.small-box.bg-success{ background:linear-gradient(135deg,#16a34a,#0d9488) !important; }
.small-box.bg-warning{ background:linear-gradient(135deg,#f59e0b,#f5b429) !important; color:#fff !important; }
.small-box.bg-danger{ background:linear-gradient(135deg,#ef4444,#b91c1c) !important; }
.small-box .icon{ opacity:.28; }
.info-box{ border-radius:var(--g-radius) !important; box-shadow:var(--g-shadow) !important; }
.info-box .info-box-icon{ border-radius:16px; }

/* ---------- Botones ---------- */
.btn{ border-radius:13px !important; font-weight:700; transition:.15s; }
.btn:hover{ transform:translateY(-1px); }
.btn-primary{ background:var(--g-blue) !important; border-color:var(--g-blue) !important; }
.btn-primary:hover{ background:var(--g-blue2) !important; border-color:var(--g-blue2) !important; }
.btn-success{ background:#16a34a !important; border-color:#16a34a !important; }
.btn-outline-primary{ color:var(--g-blue) !important; border-color:var(--g-blue) !important; }
.btn-outline-primary:hover{ background:var(--g-blue) !important; color:#fff !important; }
.btn-sm{ border-radius:11px !important; }

/* ---------- Tablas ---------- */
.table thead th, .table th{ color:#66758e; font-size:12px; text-transform:uppercase; letter-spacing:.06em;
  border-bottom:1px solid var(--g-line) !important; font-weight:800; }
.table td, .table th{ border-color:#e9eff8 !important; vertical-align:middle; }
.table-hover tbody tr:hover, .table tr:hover td{ background:#f6fafe !important; }

/* ---------- Badges pill ---------- */
.badge{ border-radius:999px !important; padding:.4em .8em; font-weight:800; }
.badge-success{ background:#e8f8ef !important; color:#04783f !important; }
.badge-warning{ background:#fff7dc !important; color:#8a5b00 !important; }
.badge-danger{ background:#fee2e2 !important; color:#991b1b !important; }
.badge-primary{ background:#dbeafe !important; color:#1d4ed8 !important; }
.badge-info{ background:#dcf5f0 !important; color:#0b6e5f !important; }
.badge-secondary{ background:#eef2f8 !important; color:#5b6b88 !important; }
.badge-light{ background:#f1f5f9 !important; color:#64748b !important; }

/* ---------- Formularios ---------- */
.form-control, .custom-select, .form-control-file, select, textarea{
  border-radius:13px !important; border:1px solid #cfdbeb !important; color:var(--g-ink); }
.form-control:focus, select:focus, textarea:focus{
  border-color:#87b3ff !important; box-shadow:0 0 0 4px rgba(18,103,255,.12) !important; }
label{ font-weight:700; }

/* ---------- Alertas ---------- */
.alert{ border:0; border-radius:16px; font-weight:600; }
.alert-warning{ background:#fff7dc; color:#7a5300; }
.alert-danger{ background:#fee2e2; color:#991b1b; }
.alert-success{ background:#e8f8ef; color:#04783f; }
.alert-info{ background:#e6f3ff; color:#0b4a86; }

/* ---------- Componentes varios ---------- */
.modal-content{ border:0 !important; border-radius:22px !important; box-shadow:0 35px 90px rgba(7,19,45,.35); overflow:hidden; }
.modal-header{ border-bottom:1px solid var(--g-line); }
.modal-footer{ border-top:1px solid var(--g-line); }
.pagination .page-link{ border:1px solid var(--g-line); color:var(--g-ink); border-radius:10px !important; margin:0 3px; font-weight:700; }
.pagination .page-item.active .page-link{ background:var(--g-blue); border-color:var(--g-blue); }
.nav-tabs{ border-bottom:1px solid var(--g-line); }
.nav-tabs .nav-link{ border:0 !important; border-radius:10px; font-weight:700; color:var(--g-muted); }
.nav-tabs .nav-link.active{ background:#eef3fb; color:var(--g-blue) !important; }
.list-group-item{ border-color:var(--g-line); }
.custom-file-label{ border-radius:13px !important; border:1px solid #cfdbeb !important; }
.custom-file-label::after{ content:"Examinar" !important; border-radius:0 13px 13px 0 !important; background:#eef3fb !important;
  color:var(--g-ink) !important; font-weight:700; border-left:1px solid #cfdbeb; }
.progress{ border-radius:999px; height:12px; background:#eef3fb; }
.progress-bar{ background:linear-gradient(135deg,#2267ef,#13b59e); }
.swal2-popup{ border-radius:22px !important; }
.swal2-styled.swal2-confirm{ border-radius:13px !important; background:var(--g-blue) !important; }
hr{ border-color:var(--g-line); }

/* ---------- Login (split-screen estilo AUTOCAM) ---------- */
body.gest-login{ margin:0; font-family:'Inter',-apple-system,Segoe UI,Arial,sans-serif; background:#0b1426; }
body.gest-login, body.gest-login *{ box-sizing:border-box; }
.gest-login-wrap{ display:flex; min-height:100vh; }

/* Panel izquierdo (marca) */
.gest-login-left{ position:relative; flex:1 1 46%; overflow:hidden; color:#fff; padding:44px 48px;
  display:flex; flex-direction:column; background:linear-gradient(160deg,#0b1426 0%,#122a4a 55%,#125f6f 130%); }
.gest-login-logo{ height:96px; max-width:360px; object-fit:contain; object-position:left center; position:relative; z-index:2; margin-bottom:6px; }
.gest-login-logo-txt{ font-size:30px; font-weight:900; letter-spacing:.04em; position:relative; z-index:2; }
.gest-login-hero{ margin-top:auto; position:relative; z-index:2; max-width:520px; }
.gest-login-hero h1{ font-size:50px; line-height:1.04; font-weight:900; letter-spacing:-.035em; margin:0 0 16px;
  background:linear-gradient(90deg,#fff, #a9e6da); -webkit-background-clip:text; background-clip:text; color:transparent; }
.gest-login-hero p{ font-size:16px; color:#c6d4ea; line-height:1.5; margin:0; max-width:440px; }
.gest-login-circle{ position:absolute; right:-140px; bottom:-160px; width:420px; height:420px; border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(19,181,158,.55), rgba(19,181,158,0) 70%); z-index:1; }

/* Panel derecho (formulario) */
.gest-login-right{ flex:1 1 54%; background:#f4f7fb; display:flex; align-items:center; justify-content:center; padding:30px; }
.gest-login-card{ width:100%; max-width:440px; background:#fff; border-radius:28px; position:relative; overflow:hidden;
  box-shadow:0 30px 80px rgba(7,19,45,.16); padding:42px 38px; border-top:4px solid var(--g-blue); }
.gest-login-card h2{ font-size:32px; font-weight:900; color:var(--g-ink); margin:0 0 4px; letter-spacing:-.02em; }
.gest-login-sub{ color:var(--g-muted); margin:0 0 22px; font-size:14.5px; }
.gest-login-label{ display:block; font-weight:800; font-size:13px; color:var(--g-ink); margin:14px 0 7px; }
.gest-login-field{ position:relative; }
.gest-login-field i{ position:absolute; left:15px; top:50%; transform:translateY(-50%); color:#94a3bd; font-size:.95rem; }
.gest-login-field input{ width:100%; border:1px solid #cfdbeb; border-radius:14px; padding:13px 15px 13px 42px;
  font-size:15px; color:var(--g-ink); outline:0; background:#fff; }
.gest-login-field input:focus{ border-color:#87b3ff; box-shadow:0 0 0 4px rgba(18,103,255,.12); }
.gest-login-btn{ width:100%; margin-top:24px; border:0; border-radius:14px; padding:14px; font-weight:800;
  font-size:15.5px; color:#fff; background:var(--g-blue); cursor:pointer; transition:.15s; }
.gest-login-btn:hover{ background:var(--g-blue2); transform:translateY(-1px); box-shadow:0 12px 26px rgba(18,103,255,.32); }
.gest-login-brand{ text-align:center; margin-top:22px; font-size:12px; font-weight:800; letter-spacing:.14em; color:#9aa8c2; }
.gest-login-error{ background:#fee2e2; color:#991b1b; border-radius:12px; padding:11px 14px; font-weight:600; font-size:14px; margin-bottom:6px; }
.gest-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

@media (max-width:900px){
  .gest-login-left{ display:none; }
  .gest-login-right{ flex:1 1 100%; }
}
