:root{--upfim-primary:#006341;--upfim-secondary:#00865a;--upfim-dark:#10231d;--upfim-muted:#5a6863;--upfim-border:#dfe7e3;--upfim-gold:#c49a2c;--upfim-card:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8faf8;color:var(--upfim-dark);font-family:Montserrat,system-ui,sans-serif;font-size:17px;line-height:1.65}a{color:var(--upfim-primary);text-underline-offset:4px}a:hover{color:#8f1f2d}:focus-visible{outline:3px solid var(--upfim-gold);outline-offset:5px}.container{max-width:1180px}.skip-link{position:absolute;top:-100px;left:20px;z-index:2000;padding:12px;background:#fff}.skip-link:focus{top:12px}.institution-bar{background:var(--upfim-primary);color:#fff;font-size:14px;padding:9px 0}.institution-bar a{color:#fff;text-decoration:none}.navbar{background:#fff;border-bottom:1px solid var(--upfim-border);padding:18px 0}.brand{display:flex;align-items:center;gap:22px;color:var(--upfim-dark);margin:0}.brand img{width:78px;height:auto;object-fit:contain}.brand>span{border-left:1px solid var(--upfim-border);padding-left:22px}.brand strong{display:block;font-size:22px;letter-spacing:-.5px}.brand small{display:block;font-size:14px;font-weight:500;color:var(--upfim-muted);margin-top:2px}.nav-link{font-size:16px;font-weight:600;color:var(--upfim-dark)}.hero{background:#f0f5f1;border-bottom:1px solid var(--upfim-border);padding:58px 0 50px}.hero-heading{display:flex;justify-content:space-between;align-items:center;gap:35px}.eyebrow{font-size:14px;font-weight:800;letter-spacing:1.7px;color:var(--upfim-primary);margin:0 0 16px}.hero h1{font-size:clamp(36px,4.5vw,60px);font-weight:800;line-height:1.08;letter-spacing:-2.8px;margin-bottom:20px}.hero h1 span{color:var(--upfim-gold)}.hero-description{max-width:660px;color:var(--upfim-muted);font-size:18px;margin:0;line-height:1.8}.hero-seal{width:186px;height:186px;flex-shrink:0;border:1px solid #c8d8ce;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--upfim-primary);outline:1px solid #d9e4dc;outline-offset:12px;margin-right:28px}.hero-seal i{font-size:45px;line-height:1.3}.hero-seal span{text-align:center;font-size:24px;font-weight:800;letter-spacing:3px}.hero-seal small{font-size:11px;letter-spacing:2px;display:block;margin-top:5px}.section{padding:42px 0}.section-title{font-size:30px;font-weight:800;letter-spacing:-1px;margin-bottom:10px}.section-subtitle,.small-muted{color:var(--upfim-muted)}.section-subtitle{max-width:780px;margin-bottom:0}.small-muted{font-size:14px;line-height:1.7}.form-select{border-color:var(--upfim-border);font-size:16px;padding:12px 40px 12px 14px;border-radius:6px;max-width:100%}.btn{font-size:16px;font-weight:700;border-radius:6px;padding:12px 17px}.btn-upfim{background:var(--upfim-primary);color:#fff;border:1px solid var(--upfim-primary)}.btn-upfim:hover{background:#004d32;color:#fff}.btn-upfim i{margin-right:6px}.alert{font-size:14px;line-height:1.7;border-radius:6px;padding:12px 16px}.alert-success{background:#eff5f1;border:1px solid #d8e6dc;color:#315f47}.kpi-card,.chart-card,.info-card,.method-card{background:#fff;border:1px solid var(--upfim-border);border-radius:10px;height:100%}.kpi-card{padding:24px;position:relative;border-top:3px solid var(--upfim-primary)}.kpi-label{font-size:14px;font-weight:600;color:var(--upfim-muted);margin-bottom:15px}.kpi-value{font-size:42px;font-weight:800;letter-spacing:-1px;color:var(--upfim-primary);line-height:1.2;margin-bottom:10px}.kpi-note{font-size:14px;color:var(--upfim-muted);line-height:1.65}.chart-card{padding:26px}.chart-title{font-size:20px;font-weight:700}.chart-subtitle{font-size:14px;color:var(--upfim-muted);margin:4px 0 24px}.chart-wrap{position:relative;height:340px}.portal-links{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:24px}.portal-links a{position:relative;background:#fff;border:1px solid var(--upfim-border);border-radius:9px;padding:22px 18px;text-decoration:none;transition:transform .15s,border-color .15s}.portal-links a:hover{transform:translateY(-3px);border-color:var(--upfim-primary)}.portal-links i{display:block;font-size:26px;margin-bottom:15px}.portal-links strong{display:block;font-size:16px;color:var(--upfim-dark);margin-bottom:6px}.portal-links span{display:block;font-size:14px;color:var(--upfim-muted)}.portal-links b{position:absolute;right:18px;top:20px;font-weight:500;color:#688473}.institution-section{background:#edf3ee;border-top:1px solid var(--upfim-border);border-bottom:1px solid var(--upfim-border)}.identity-card{height:100%;padding:32px;background:var(--upfim-primary);border-radius:10px;color:#fff}.identity-card img{max-width:100%;height:auto;background:#fff;border-radius:4px;padding:12px;margin-bottom:28px}.identity-card h3{font-size:28px;font-weight:700;line-height:1.35;letter-spacing:-.7px}.identity-card p{font-size:16px;color:#e1eee6;margin:18px 0}.identity-card a{color:#fff;font-size:14px}.info-card,.method-card{padding:26px}.institution-number{font-size:42px;font-weight:800;letter-spacing:-1px;color:var(--upfim-primary)}.info-card h3{font-size:16px;font-weight:700;margin:12px 0}.info-card p,.method-card p,.method-card li{font-size:16px;color:var(--upfim-muted)}.info-card a{font-size:14px}.institution-resources{display:flex;flex-wrap:wrap;gap:20px;font-size:14px;font-weight:700;padding-top:12px}.executive-card{display:flex;align-items:center;gap:30px;border-left:4px solid var(--upfim-gold);padding:30px;background:#fff;border-radius:8px}.executive-card>div{flex:1}.executive-card .btn{flex-shrink:0}.executive-card p{font-size:16px}.dataset-table{font-size:16px}.dataset-table th{background:#f0f5f1;color:var(--upfim-primary);padding:15px 12px}.dataset-table td{padding:17px 12px}.badge-soft{display:inline-block;background:#edf4ef;color:var(--upfim-primary);padding:5px 8px;border-radius:4px;font-size:14px}.method-card h5{font-size:17px;font-weight:700;margin-bottom:16px}.footer{background:#102d22;color:#d6e4dc;padding:32px 0;font-size:16px}.footer .small{font-size:14px}.anchor-offset{scroll-margin-top:110px}.chart-message{padding:50px 12px}.section .row{--bs-gutter-y:20px;--bs-gutter-x:20px}
@media(min-width:992px){#graficas .col-lg-6:first-child{width:100%}#graficas .col-lg-6:first-child .chart-wrap{height:360px}}
@media(max-width:991px){.hero-seal{width:140px;height:140px}.brand{gap:14px}.brand>span{padding-left:14px}.navbar-collapse{padding-top:20px}.portal-links{grid-template-columns:repeat(2,1fr)}.executive-card{align-items:flex-start;flex-direction:column}}
@media(max-width:575px){.container{padding-left:20px;padding-right:20px}.institution-bar{font-size:12px}.institution-bar span{max-width:200px}.institution-bar a{white-space:nowrap}.brand img{width:54px}.brand strong{font-size:18px}.brand small{font-size:12px;max-width:152px;white-space:normal}.navbar{padding:13px 0}.hero{padding:36px 0}.hero-seal{display:none}.hero h1{letter-spacing:-1.5px;font-size:44px}.hero-description{font-size:16px}.eyebrow{font-size:12px;letter-spacing:1px}.section{padding:32px 0}.section-title{font-size:26px}.kpi-card{padding:20px}.kpi-value{font-size:36px}.portal-links{gap:12px}.portal-links a{padding:18px 14px}.portal-links strong{font-size:14px}.portal-links b{right:12px}.chart-card{padding:18px}.chart-wrap{height:310px}.executive-card{padding:22px}.section-subtitle{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portal-links a{transition:none}}
@media print{body{background:#fff;font-size:11pt}.institution-bar,.navbar,.hero,#graficas,#institucion,#datasets,#metodologia,.portal-links,.footer,#dashboard .mb-4.d-flex,#refreshData,.skip-link{display:none!important}.section{padding:15px 0}.chart-wrap{height:220px}.executive-card{padding:12px;border:1px solid #ccc}.executive-card button{display:none}.kpi-card,.chart-card{break-inside:avoid;box-shadow:none}.col-xl-3{width:25%}#ficha{break-inside:avoid}#dashboard .eyebrow{display:none}}

#inicio{scroll-margin-top:120px}

/* Espacio adicional para textos de lectura y controles ampliados. */
.kpi-card{min-height:200px}.portal-links a{padding-right:28px}.chart-wrap{height:380px}
@media(max-width:575px){.brand{gap:10px}.brand>span{padding-left:10px}.brand strong{font-size:18px}.kpi-card{min-height:0}.chart-wrap{height:340px}}
