*{margin:0;padding:0;box-sizing:border-box}
body{min-height:100vh;background:#f7f6f3;font-family:'Segoe UI',system-ui,sans-serif;color:#353132;-webkit-tap-highlight-color:rgba(45,97,114,.15)}
/* iOS Safari hace auto-zoom si un input enfocado tiene font-size < 16px y rompe el layout.
   Forzamos 16px solo en mobile; en desktop se conservan los tamaños inline del diseño. */
@media (max-width:640px){
  input,select,textarea{font-size:16px !important}
}
/* Los serif de estilo garalde traen figuras OLD-STYLE de fábrica: el "1" se lee como I romana y
   0/8 caen bajo la línea base — en cifras de dinero se ve desalineado y confunde.
   Esta regla fuerza numerales LINING + TABULARES en todo el documento de la propuesta,
   como red de seguridad además del estilo inline. Tabular = todos los dígitos con el
   mismo ancho, así las columnas de la tabla bancaria quedan alineadas. */
#propDoc, #propDoc * {
  font-variant-numeric: lining-nums tabular-nums;
  -moz-font-feature-settings: "lnum"=1, "tnum"=1;
}
/* Login */
.login-wrap{display:flex;align-items:center;justify-content:center;min-height:90vh}
.login-box{background:#fff;border-radius:14px;padding:40px 32px;width:min(380px,90vw);box-shadow:0 4px 24px rgba(0,0,0,.1);text-align:center}
.login-box img{height:200px;margin-bottom:16px;border:none;outline:none;image-rendering:auto}
.login-box h2{color:#2D6172;font-size:1.1rem;margin-bottom:4px}
.login-box p{color:#6B6869;font-size:.78rem;margin-bottom:20px}
.lin{width:100%;padding:10px 14px;border:1.5px solid #E0DED6;border-radius:8px;font-size:.85rem;outline:none;margin-bottom:10px;box-sizing:border-box}
.lin:focus{border-color:#2D6172}
.login-err{color:#C62828;font-size:.78rem;margin-bottom:8px;min-height:18px}
.btn-lg{width:100%;background:#2D6172;color:#fff;border:none;padding:11px;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;margin-top:4px}
.btn-lg:hover{background:#1E4A57}
.btn-lg:disabled{opacity:.5}
/* Print */
@media print{.no-print{display:none!important}.print-only{display:block!important}}
.print-only{display:none}
@media(max-width:640px){.login-box{padding:28px 20px}}

/* Print styles for letter PDF */
body.printing .no-print,
body.printing #loginScreen{display:none!important}
@page{size:letter;margin:0.25in 0.35in}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}
@media print{
  body{background:#fff!important}
  .no-print,#loginScreen{display:none!important}
  [style*="max-width:1100"]{max-width:100%!important;padding:0!important}
  [style*="border-radius:12px"]{border-radius:0!important;box-shadow:none!important;border:none!important}
  [style*="padding:16px 24px"],[style*="padding:12px 24px"],[style*="padding:10px 24px"],[style*="padding:8px 24px"]{padding:6px 16px!important}
  img[alt="YALGUO"][style*="height:88"],img[alt="YALGUO"][style*="height:56"]{height:44px!important}
  [style*="font-size:32px"]{font-size:22px!important}
  [style*="font-size:26px"],[style*="font-size:24px"]{font-size:18px!important}
  img[alt="Planta"]{max-width:200px!important;max-height:160px!important;mix-blend-mode:multiply!important;background:#fff!important}
  [style*="flex-direction"]{flex-direction:row!important}
  [style*="flex-shrink:0"]{flex-shrink:1!important}
  [style*="width:350px"],[style*="width:250px"]{width:180px!important}
  [style*="border-bottom"]{border-bottom:none!important}
  [style*="border:1px"]{border:none!important}
  [style*="box-shadow"]{box-shadow:none!important}
  img[style*="object-fit:cover"]{height:130px!important}
  [style*="line-height:1.7"]{line-height:1.3!important;font-size:8px!important}
}
