/* ===== base ===== */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{color:#222;font-family:"Segoe UI",system-ui,-apple-system,Arial,sans-serif;background:#f1f3f5;padding-top:128px;
    -webkit-tap-highlight-color:transparent}
.contenedor{max-width:1200px;margin:0 auto;padding:16px}
a{color:#1c4a31}
button,.btn,.btn-peq,.btn-acc{touch-action:manipulation;font-family:inherit}

/* ===== header ===== */
.top-shell{max-width:1200px;margin:12px auto 0;padding:0 16px}
.app-header{background:#123524;color:#fff;border:1px solid #0f2f20;border-radius:10px;padding:12px 14px;margin-bottom:8px}
.header-wrap{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.header-left .l1{font-size:clamp(22px,5vw,32px);font-weight:800;line-height:1.15}
.header-left .l2{font-size:12px;color:#b7dfc3;margin-top:4px}
.header-right{display:flex;gap:8px;align-items:center}
.header-right .btn{min-width:150px}

/* ===== nav fija ===== */
#navFija{position:fixed;top:0;left:0;right:0;z-index:999;background:transparent;padding:8px 0}
#navFija .nav-inner{position:relative;width:min(1200px,calc(100% - 32px));margin:0 auto;background:#1c4a31;border:1px solid #123524;border-radius:10px;padding:8px;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.nav-top{display:none}
.menu-btn{display:none}
.nav-main,.nav-sub{display:flex;gap:6px;flex-wrap:wrap}
.nav-sub{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.15)}
.nav-sub.oculto{display:none}
#navFija a{background:#2e7d4f;color:#fff;text-decoration:none;font-size:13px;font-weight:600;padding:7px 12px;border-radius:15px;white-space:nowrap}
#navFija a:hover{background:#3b9c63}
#navFija a.is-toggle{background:#245f3d}
#navFija a.nav-sel{background:#f39c12;color:#123524}

/* ===== botones ===== */
.btn{background:#2e7d4f;color:#fff;border:none;padding:9px 14px;border-radius:18px;font-size:14px;font-weight:700;text-decoration:none;cursor:pointer;text-align:center;display:inline-block}
.btn:hover{background:#3b9c63}
.btn-acc{background:#2e7d4f;color:#fff;border:none;padding:10px 16px;border-radius:18px;font-size:14px;font-weight:700;cursor:pointer;text-align:center}
.btn-acc:hover{background:#3b9c63}
.btn-peq{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:#2471a3;color:#fff;padding:6px 10px;border-radius:14px;text-decoration:none;font-size:12px;font-weight:700;border:none;cursor:pointer;min-height:34px}
.btn-peq:hover{background:#2980b9}
.btn-rojo{background:#c0392b}.btn-rojo:hover{background:#a93226}
.btn-agregar{background:#2e7d4f;color:#fff;border:none;padding:8px 16px;border-radius:16px;font-size:14px;font-weight:700;cursor:pointer}
.btn-agregar:hover{background:#3b9c63}
.form-inline{display:inline-block}

/* ===== cajas / tarjetas ===== */
.caja{background:#fff;border-radius:10px;padding:16px;margin-bottom:14px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.caja h3{color:#1c4a31;border-bottom:2px solid #2e7d4f;padding-bottom:6px;margin-bottom:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.caja p{line-height:1.5}

/* ===== tablas ===== */
.tabla-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:8px;border-bottom:1px solid #eee;vertical-align:top}
th{background:#e8f1ec;color:#123524;text-align:left}
.r{text-align:right}
.pos{color:#1e8449;font-weight:700}
.neg{color:#c0392b;font-weight:700}
.subtotal-row td{background:#f8fbf9;font-weight:700}
.total-row td{background:#eaf2f8;font-weight:800;border-top:2px solid #d0dbe5}
.cote-ok{color:#1e8449;font-weight:800;font-size:16px}
.tabla-filas table{min-width:560px}
.tabla-movs table{min-width:940px}
.tabla-rep table{min-width:900px}

/* ===== filtros / formularios ===== */
.filtros,.form-compacto{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.campo{display:flex;flex-direction:column;gap:3px;min-width:120px}
.campo label{font-size:11px;font-weight:700;color:#1c4a31}
.campo-ancho{flex:2;min-width:260px}
input,select,textarea{width:100%;padding:8px;border:1px solid #ccc;border-radius:6px;font-size:14px;background:#fff}
input[type=checkbox]{width:auto;transform:scale(1.3);cursor:pointer;margin:6px}

/* ===== mensajes / KPIs ===== */
.msg{padding:10px;border-radius:6px;margin-bottom:10px}
.ok{background:#d4efdf;color:#1e8449}
.err{background:#fadbd8;color:#c0392b}
.info{background:#eaf2f8;color:#2471a3}
.grid-resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kpi{padding:12px;border-radius:10px;color:#fff;text-align:center}
.kpi .t{font-size:12px}
.kpi .n{font-size:clamp(18px,5.2vw,22px);font-weight:800;word-break:break-word}
.k-verde{background:#2e7d4f}.k-rojo{background:#c0392b}.k-azul{background:#2471a3}.k-naranja{background:#b9770e}

/* ===== barras de navegación de módulo ===== */
.pre-nav-bar,.report-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#123524;border:1px solid #24563f;border-radius:10px;padding:8px 12px;margin:0 auto 14px;max-width:1200px}
.pre-nav-bar a,.report-bar a{display:inline-block;color:#fff;text-decoration:none;font-weight:700;font-size:13px;padding:8px 16px;border-radius:20px;background:#2e7d4f;border:1px solid #24563f;white-space:nowrap}
.pre-nav-bar a:hover,.report-bar a:hover{background:#3b9c63}
.pre-nav-bar a.activo,.report-bar a.activo{background:#f39c12;color:#123524}
.acc-hijos{list-style:none;padding-left:14px;font-size:12px;color:#666}

.pie{text-align:center;color:#777;font-size:12px;padding:18px}

/* ===== tablet (≤900px): menú hamburguesa en overlay ===== */
@media(max-width:900px){
  body{padding-top:62px}
  .contenedor{padding:10px}
  .caja{padding:12px}
  #navFija{padding:6px 0}
  #navFija .nav-inner{width:calc(100% - 16px);padding:6px 8px}
  .nav-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .nav-brand{color:#fff;font-weight:800;font-size:16px}
  .menu-btn{display:inline-flex;align-items:center;gap:6px;background:#2e7d4f;color:#fff;border:0;border-radius:8px;padding:10px 14px;font-size:15px;font-weight:700;min-height:44px}
  .menu-btn:hover{background:#3b9c63}
  .nav-menu{display:none}
  #navFija.abierto .nav-menu{display:block;position:absolute;left:0;right:0;top:calc(100% - 2px);background:#1c4a31;border:1px solid #123524;border-radius:0 0 10px 10px;padding:8px;max-height:70dvh;overflow:auto;-webkit-overflow-scrolling:touch;box-shadow:0 12px 26px rgba(0,0,0,.4)}
  #navFija .nav-main,#navFija .nav-sub{display:flex;flex-direction:column;gap:4px}
  #navFija .nav-sub{border-top:1px solid rgba(255,255,255,.15);margin-top:6px;padding-top:6px}
  #navFija .nav-sub.oculto{display:flex}
  #navFija a{display:block;text-align:left;border-radius:8px;font-size:15px;padding:12px 12px}
  #btnAjustes{display:none}
}

/* ===== móvil (≤700px) ===== */
@media(max-width:700px){
  .top-shell{padding:0 10px;margin-top:8px}
  .header-wrap{flex-direction:column;align-items:stretch}
  .header-right .btn{min-width:0;flex:1}
  /* grid 2 columnas: aprovecha el ancho, evita 8 líneas de filtro */
  .filtros,.form-compacto{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end}
  .filtros .campo,.form-compacto .campo{min-width:0}
  .filtros .campo:nth-last-child(-n+2),.form-compacto .campo:last-child,.campo-ancho{grid-column:span 2}
  /* 16px = el umbral a partir del cual iOS NO hace auto-zoom al enfocar */
  input,select,textarea{font-size:16px;padding:11px}
  textarea{min-height:90px}
  .btn,.btn-acc,.btn-agregar{min-height:46px;font-size:15px;width:auto}
  .filtros .btn,.filtros .btn-acc,.form-compacto .btn-acc{width:100%}
  .btn-peq{min-height:40px;padding:8px 11px;font-size:14px}
  table{font-size:13px}
  th,td{padding:6px 7px}
  /* barras de módulo con scroll horizontal (en vez de 5 filas de pills) */
  .pre-nav-bar,.report-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:8px}
  .pre-nav-bar a,.report-bar a{padding:10px 14px;flex:0 0 auto}
}
@media(max-width:560px){
  .grid-resumen{grid-template-columns:1fr 1fr}
  .header-left .l2{font-size:11px}
}

/* ===== impresión ===== */
@media print{
  #navFija,.nav-menu,.pie,.no-print,.btn,.btn-peq,.btn-acc,.btn-agregar,.menu-btn,.msg,.pre-nav-bar,.report-bar,.filtros,.form-compacto{display:none!important}
  body{padding-top:0;background:#fff}
  .contenedor{max-width:none;padding:0}
  .caja{box-shadow:none;border:1px solid #ddd;break-inside:avoid;margin-bottom:8px}
  .tabla-wrap{overflow:visible}
  table{font-size:12px}
  th,td{padding:2px 5px}
  @page{margin:12mm}
}
