/* Portal Blessed · Visual v3
   Capa final de legibilidad, color e iconografía.
   Solo presentación: no modifica flujos, datos ni permisos. */

:root{
  --v3-bg:#f4f7f5;
  --v3-surface:#ffffff;
  --v3-surface-soft:#f9fbfa;
  --v3-text:#1d2923;
  --v3-text-soft:#5b6b62;
  --v3-text-faint:#77857d;
  --v3-line:#dfe7e2;
  --v3-line-strong:#ccd9d2;
  --v3-primary:#2f7862;
  --v3-primary-deep:#245d4d;
  --v3-primary-soft:#eaf4f0;
  --v3-shadow:0 1px 2px rgba(27,48,38,.025),0 12px 34px rgba(27,48,38,.045);
  --v3-shadow-hover:0 3px 7px rgba(27,48,38,.04),0 18px 42px rgba(27,48,38,.09);
}

html{font-size:16px}
html,body{background:var(--v3-bg)!important}
body{
  color:var(--v3-text)!important;
  font-size:15px!important;
  line-height:1.58!important;
  letter-spacing:-.004em!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
main{max-width:1360px!important;padding:36px 28px 78px!important}
p,.muted{color:var(--v3-text-soft)!important}
small{color:var(--v3-text-faint)}
a{color:var(--v3-primary-deep)}
.eyebrow{
  color:var(--v3-primary)!important;
  font-size:11px!important;
  font-weight:780!important;
  letter-spacing:.075em!important;
  line-height:1.35!important;
}
h1,h2,h3,strong{color:var(--v3-text)}
.hero h1,.page-head h1,.panel h1,.product-head h1,.label-master-head-v107 h1{
  color:var(--v3-text)!important;
  font-weight:730!important;
}

/* Barra superior más clara */
.topbar{
  height:68px!important;
  border-bottom:1px solid rgba(36,93,77,.1)!important;
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.8),0 5px 22px rgba(27,48,38,.025)!important;
}
.brand strong{font-size:17px!important;color:#173d32!important}
.brand span{font-size:10px!important;color:#708078!important}
.userbox{gap:8px!important}
.userbox .user-name{font-size:13px!important;color:#34483e!important}
.userbox .role{font-size:11px!important;background:var(--v3-primary-soft)!important;color:var(--v3-primary-deep)!important}
.userbox a{font-size:12px!important;color:#53665c!important}

/* Portada */
.portal-welcome{padding:30px 0 38px!important}
.portal-welcome h1{
  max-width:800px!important;
  color:#17251e!important;
  font-size:clamp(40px,4.5vw,58px)!important;
  font-weight:735!important;
  line-height:1.04!important;
  letter-spacing:-.043em!important;
}
.portal-welcome p{margin-top:16px!important;font-size:16px!important;line-height:1.62!important;color:#5f7067!important}
.welcome-badge{
  padding:16px 19px!important;
  border-color:#dfe8e3!important;
  background:#fff!important;
  box-shadow:var(--v3-shadow)!important;
}
.welcome-badge>span{background:var(--v3-primary-soft)!important;color:var(--v3-primary)!important}
.welcome-badge strong{font-size:13px!important}
.welcome-badge small{font-size:11px!important;color:#75837b!important}
.category-heading h2{font-size:24px!important;font-weight:720!important;color:#213029!important}
.category-heading p{font-size:14px!important;line-height:1.55!important;color:#64746b!important}
.category-grid{gap:16px!important;margin-top:22px!important}
.category-card{
  min-height:318px!important;
  padding:25px 21px 19px!important;
  border-color:#dfe7e2!important;
  border-radius:22px!important;
  box-shadow:var(--v3-shadow)!important;
}
.category-card:hover{border-color:#c8d6cf!important;box-shadow:var(--v3-shadow-hover)!important}
.category-card .category-icon{width:70px!important;height:70px!important}
.category-icon svg{width:31px!important;height:31px!important;stroke-width:1.8!important}
.category-card>strong{font-size:18px!important;line-height:1.25!important;font-weight:720!important}
.category-card>small{
  margin:14px auto 23px!important;
  color:#617068!important;
  font-size:13px!important;
  line-height:1.58!important;
}
.category-action{padding:12px 14px!important;font-size:13px!important;border-radius:12px!important}
.role-note{border-color:#dfe7e2!important;background:#fff!important;color:#42544a!important}
.role-note strong{font-size:13px!important}.role-note p{font-size:12px!important}
.category-back{font-size:13px!important;color:#5b6c62!important;margin-bottom:24px!important}
.category-detail-head h2{font-size:36px!important;font-weight:730!important;color:#1d2b24!important}
.category-detail-head p{font-size:15px!important;line-height:1.58!important;color:#607067!important;max-width:780px!important}

/* Módulos: lectura, jerarquía e iconografía real */
.module-grid-v2{gap:16px!important}
.module-grid-v2 .module-card{
  min-height:210px!important;
  padding:22px!important;
  border:1px solid var(--v3-line)!important;
  border-radius:18px!important;
  background:var(--v3-surface)!important;
  box-shadow:var(--v3-shadow)!important;
}
.module-grid-v2 .module-card:hover{
  border-color:var(--v3-line-strong)!important;
  box-shadow:var(--v3-shadow-hover)!important;
}
.module-grid-v2 .module-card.restricted{background:#f8faf9!important;box-shadow:none!important}
.module-grid-v2 .module-icon{
  width:46px!important;
  height:46px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:14px!important;
  background:var(--v3-primary-soft)!important;
  color:var(--v3-primary)!important;
}
.module-grid-v2 .module-icon svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.module-grid-v2 .module-card h3{
  margin:18px 0 7px!important;
  color:var(--v3-text)!important;
  font-size:17px!important;
  font-weight:720!important;
  line-height:1.3!important;
}
.module-grid-v2 .module-card p{
  color:#5d6c64!important;
  font-size:13px!important;
  line-height:1.58!important;
  -webkit-line-clamp:3!important;
}
.module-grid-v2 .module-footer{
  padding-top:17px!important;
  color:var(--v3-primary-deep)!important;
  font-size:12px!important;
  font-weight:730!important;
}
.module-grid-v2 .access-tag{
  background:#eef2f0!important;
  color:#65746c!important;
  font-size:9px!important;
  letter-spacing:.035em!important;
  padding:6px 8px!important;
}
.module-card.restricted .module-icon{filter:saturate(.45);opacity:.76}

/* Paleta suave por función */
.module-card--products .module-icon{background:#fff3d9!important;color:#a96f00!important}
.module-card--web_orders .module-icon{background:#f1eafd!important;color:#7250ad!important}
.module-card--my_blessed .module-icon{background:#fff0e9!important;color:#c86432!important}
.module-card--knowledge .module-icon{background:#edf6e8!important;color:#3e7f29!important}
.module-card--help .module-icon{background:#edf6e8!important;color:#3e7f29!important}
.module-card--documents .module-icon{background:#eef3f8!important;color:#4c6f8e!important}
.module-card--training .module-icon{background:#eaf2fb!important;color:#2f70ac!important}
.module-card--procedures .module-icon{background:#e8f5f3!important;color:#28796f!important}
.module-card--replenishment .module-icon{background:#eaf2fb!important;color:#2d73b5!important}
.module-card--labels .module-icon{background:#fff1e4!important;color:#c56b25!important}
.module-card--leadership .module-icon{background:#edeafd!important;color:#6252b3!important}
.module-card--operations .module-icon{background:#f1eafd!important;color:#7752ae!important}
.module-card--administration .module-icon{background:#e8f4ee!important;color:#28745c!important}
.module-card--infrastructure .module-icon{background:#edf1f4!important;color:#506678!important}
.module-card--admin .module-icon{background:#edf0ee!important;color:#45554c!important}

/* Pantallas internas */
.page-head,.panel-head,.product-head{gap:18px!important}
.page-head h1,.product-head h1{font-size:clamp(30px,3vw,38px)!important;line-height:1.12!important}
.page-head p,.product-head p{font-size:14px!important;line-height:1.6!important}
.panel,.product-shell,.count-card,.stats>div,.product-row,.user-row,.label-card,
.label-catalog-v107,.label-print-panel-v107,.label-presentation-card-v1011{
  border-color:var(--v3-line)!important;
  background:var(--v3-surface)!important;
  box-shadow:var(--v3-shadow)!important;
}
.panel,.product-shell{padding:27px!important;border-radius:19px!important}
.panel h2{font-size:23px!important;line-height:1.25!important}
.panel h3{font-size:17px!important;line-height:1.35!important}
.panel>p,.panel .muted{font-size:13.5px!important;line-height:1.62!important}
label{color:#36483f;font-size:13px!important;font-weight:650}
input,textarea,select{
  min-height:46px!important;
  border-color:#d8e2dc!important;
  color:#26362e!important;
  font-size:14px!important;
  line-height:1.45!important;
}
input::placeholder,textarea::placeholder{color:#89958f!important}
input:focus,textarea:focus,select:focus{
  border-color:#78a999!important;
  box-shadow:0 0 0 4px rgba(47,120,98,.1)!important;
}
button,.button{font-size:13px!important;min-height:42px}
button:not(.secondary-btn),.button:not(.secondary),.small-btn{
  background:var(--v3-primary)!important;
}
button:not(.secondary-btn):hover,.button:not(.secondary):hover,.small-btn:hover{
  background:var(--v3-primary-deep)!important;
}
.button.secondary,.small-link,.secondary-btn{
  background:#fff!important;
  color:#42554b!important;
  border-color:var(--v3-line-strong)!important;
}
table{font-size:14px}
th{color:#52655b;font-size:12px!important;letter-spacing:.025em}
td{color:#34463d}
.product-row,.user-row{padding:17px 19px!important}
.product-row strong,.user-row strong{font-size:14px!important}
.product-row small,.user-row small{font-size:12px!important;color:#718078!important}
.status,.integration,.admin-status{font-size:11px!important}
.flash{font-size:13px!important}

/* Accesibilidad */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(47,120,98,.28)!important;
  outline-offset:2px!important;
}
::selection{background:#cfe7de;color:#18352c}

@media(max-width:1050px){
  .category-card{min-height:280px!important}
}
@media(max-width:700px){
  body{font-size:14px!important}
  main{padding:22px 14px 58px!important}
  .portal-welcome h1{font-size:36px!important}
  .portal-welcome p{font-size:14px!important}
  .category-heading h2{font-size:21px!important}
  .category-heading p{font-size:13px!important}
  .category-card{min-height:245px!important;padding:19px 14px 14px!important}
  .category-card>strong{font-size:16px!important}
  .category-card>small{font-size:11.5px!important}
  .category-action{font-size:11px!important}
  .category-detail-head h2{font-size:29px!important}
  .category-detail-head p{font-size:13px!important}
  .module-grid-v2 .module-card{min-height:178px!important;padding:17px!important}
  .module-grid-v2 .module-icon{width:40px!important;height:40px!important;border-radius:12px!important}
  .module-grid-v2 .module-icon svg{width:21px;height:21px}
  .module-grid-v2 .module-card h3{font-size:15px!important;margin-top:15px!important}
  .module-grid-v2 .module-card p{font-size:11.5px!important}
  .module-grid-v2 .module-footer{font-size:10.5px!important}
  .panel,.product-shell{padding:19px!important}
  .page-head h1,.product-head h1{font-size:29px!important}
  input,textarea,select{font-size:16px!important}
}
@media(max-width:420px){
  .category-card{min-height:205px!important}
  .module-grid-v2 .module-card{min-height:160px!important}
}
@media(prefers-contrast:more){
  :root{--v3-text:#101813;--v3-text-soft:#3f4e46;--v3-line:#b9c9c0}
}
