/* Lectura y navegación del portal · Ing. Víctor Marín · 08/10/2026 */
#portalView .main-view{background:#f8f7f4;color:#153a56}
#portalView .topbar{background:rgba(255,255,255,.94);border-bottom-color:rgba(21,57,83,.15);box-shadow:0 4px 18px rgba(5,31,53,.045);backdrop-filter:blur(20px) saturate(115%)}
#portalView.over-facade .topbar{background:rgba(5,25,46,.78);border-bottom-color:rgba(255,255,255,.2);box-shadow:0 6px 22px rgba(0,14,32,.16)}
#portalView .topbar .desktop-top-nav a{color:#3f596e;font-size:12.5px}
#portalView.over-facade .topbar .desktop-top-nav a{color:#e2ebf3}
#portalView .portal-client-identity small{color:#526d81;font-size:11px}
#portalView .portal-client-identity strong{font-size:13px}
#portalView.over-facade .portal-client-identity small{color:#d2e0ec}
#portalView .portal-options summary{min-width:42px;min-height:42px}
#portalView :is(.desktop-top-nav a,.mobile-tabs a,.project-keys a,.document-item,.document-open,.portal-document-tabs button,.floor-tab,.gallery-filters button,.model-mode-tabs button,.work-filters button,.hero-action,.hero-controls button,.portal-options summary):focus-visible{outline:3px solid #c58b22;outline-offset:3px}

/* Encabezados y textos secundarios con una escala más legible. */
#portalView :is(.gallery-heading p,.portal-hub-heading p,.portal-document-hub .document-heading p,.panel-heading p,.investment-note,.payment-note,.portal-advisor p){color:#425d73;font-size:15px;line-height:1.65}
#portalView :is(.document-heading-count,.gallery-count,.floor-story>span){color:#5a7286;font-size:12px}
#portalView .project-keys{gap:14px;padding-top:28px;padding-bottom:31px}
#portalView .project-keys a{min-height:160px;padding:24px 25px}
#portalView .project-keys strong{margin:21px 0 11px;font-size:clamp(24px,2vw,32px)}
#portalView .project-keys span{color:#435f76;font-size:14px;line-height:1.45}
#portalView .gallery-section{padding-top:48px}
#portalView .floor-nav{margin:25px 0 31px}
#portalView .floor-tab{min-height:92px}
#portalView .floor-tab small{color:#536c80;font-size:12px}
#portalView .floor-tab.active small{color:#dbe8f1}
#portalView .gallery-filters button{min-height:44px;font-size:13px}
#portalView .room-view-copy p{color:#425d73;font-size:15px;line-height:1.65}

/* Documento y portada se leen dentro de un solo marco. */
#portalView .portal-document-hub{margin-top:44px}
#portalView .portal-document-tabs button{min-height:52px;color:#254863;font-size:13px}
#portalView .portal-document-hub .document-heading{margin-bottom:17px}
#portalView .document-workspace{border-color:#d9d9d2;box-shadow:0 14px 36px rgba(5,35,64,.055)}
#portalView .document-index{max-height:min(78svh,920px);padding:16px;background:#f8f7f3;scrollbar-color:#c2b495 #f1efe9;scrollbar-width:thin}
#portalView .document-index .document-item{min-height:100px;padding:12px 13px;border-color:#ddded9;line-height:1.45;transition:border-color .18s,background .18s,box-shadow .18s}
#portalView .document-index .document-item:hover{border-color:#bb9b59;background:#fffaf0}
#portalView .document-index .document-item.active{border-color:#ab8439;background:#fff7e4;box-shadow:inset 4px 0 #b88830}
#portalView .document-item-copy strong{color:#113c5c;font-size:14px;line-height:1.35}
#portalView .document-item-copy small{color:#536b80;font-size:12px;line-height:1.45}
#portalView .document-preview-top{padding:17px 26px;background:#fcfbf8}
#portalView .document-preview-top span:first-child{color:#775719;font-size:11px;letter-spacing:.12em}
#portalView .document-preview-top span:last-child{font-size:11px}
#portalView .document-preview-content{padding:25px clamp(22px,3vw,40px)}
#portalView .document-preview-content h3{font-size:clamp(28px,2.5vw,38px);line-height:1.17}
#portalView .document-preview-content>p{color:#4a647a;font-size:14px;line-height:1.65}
#portalView .document-meta{gap:12px 26px}
#portalView .document-meta dt{color:#6a7b8b;font-size:11px}
#portalView .document-meta dd{color:#183d5a;font-size:13px}
#portalView .document-open{min-height:45px;font-size:13px;line-height:1.35}
#portalView .document-cover-visual{background:#faf7ef}
#portalView .document-cover-visual figcaption{color:#76591f;font-size:11px}
#portalView .drive-access-note{color:#536e83;font-size:13px;line-height:1.6}
#portalView .document-frame{background:#e8edf0}

/* Cifras y barras con etiquetas fáciles de comparar. */
#portalView .investment-insight{background:#fff;border-color:#dadfdf}
#portalView .investment-total>span,#portalView .investment-bar small{color:#536b7f;font-size:12px;line-height:1.5}
#portalView .investment-bar>div:first-child,#portalView .investment-bar strong{color:#1d435f;font-size:14px}
#portalView .investment-track{height:9px;background:#e5e9eb}
#portalView .cost-table th{color:#455d72;font-size:12px}
#portalView .cost-table td{line-height:1.5}
#portalView .cost-materials,#portalView .investment-materials{color:#526c80;font-size:12px;line-height:1.5}
#portalView .demo-estimate-basis p{color:#425e74;font-size:13px}
#portalView .payment-card small,#portalView .payment-summary small{color:#526c80;font-size:13px;line-height:1.5}
#portalView .work-stats small,#portalView .schedule-dashboard :is(small,span){color:#536d80;font-size:13px}
#portalView .ifc-upload>span,#portalView .ifc-help,#portalView .ifc-inspector p{color:#4d687e;font-size:13px;line-height:1.6}

/* El lector ampliado mantiene las miniaturas claras. */
.pdf-reader-head p{color:#d6e3ec;font-size:12px;line-height:1.5}
.pdf-reader-sidebar p{color:#4e687e;font-size:12px}
.pdf-reader-item strong{font-size:13px}
.pdf-reader-item small{color:#536f84;font-size:11px}
.pdf-reader-foot{color:#4e677c;font-size:12px}

@media(max-width:900px){
 #portalView .document-index{max-height:none;scroll-snap-type:x proximity}
 #portalView .document-index .document-item{scroll-snap-align:start}
 #portalView .document-preview.has-cover .document-preview-content{grid-template-columns:minmax(0,1fr) 140px}
 #portalView .project-keys a{min-height:0}
}
@media(max-width:700px){
 #portalView .topbar{min-height:66px;padding:9px 16px}
 #portalView .portal-client-identity small{display:none}
 #portalView .portal-client-identity strong{font-size:12px}
 #portalView .portal-options summary{min-width:44px;min-height:44px}
 #portalView .mobile-tabs,#portalView:has(.project-select:not([hidden])) .mobile-tabs{display:flex;flex-wrap:nowrap;gap:3px;padding:6px 14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-color:#d1b16c transparent;scrollbar-width:thin;white-space:nowrap;background:rgba(255,255,255,.97)}
 #portalView .mobile-tabs a,#portalView:has(.project-select:not([hidden])) .mobile-tabs a{flex:0 0 auto;min-width:76px;min-height:46px;padding:11px 10px;scroll-snap-align:start;color:#38536b;font-size:12px}
 #portalView .mobile-tabs a.active,#portalView:has(.project-select:not([hidden])) .mobile-tabs a.active{color:#082b4d}
 #portalView .project-banner h1{font-size:clamp(44px,10vw,67px)}
 #portalView .hero-lead{font-size:16px;line-height:1.6}
 #portalView .project-keys{padding:18px 16px}
 #portalView .project-keys a{padding:20px}
 #portalView .project-keys strong{font-size:27px}
 #portalView .gallery-section{padding:36px 18px 44px}
 #portalView .floor-nav{gap:8px;margin:21px 0 25px}
 #portalView .floor-tab{min-height:78px}
 #portalView .room-view-stage{height:clamp(320px,54svh,520px)}
 #portalView .room-view-copy{padding:19px 20px}
 #portalView .room-view-copy p{font-size:14px}
 #portalView .portal-document-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 #portalView .portal-document-tabs button{min-height:50px}
 #portalView .document-index{padding:12px}
 #portalView .document-index .document-item{width:min(225px,76vw);min-height:98px}
 #portalView .document-preview-content,#portalView .document-preview.has-cover .document-preview-content{grid-template-columns:1fr;padding:19px}
 #portalView .document-cover-visual{grid-column:1;grid-row:1;justify-self:start;width:124px}
 #portalView .document-cover-visual img{max-height:160px}
 #portalView .document-preview.has-cover .document-preview-actions{grid-column:1;grid-row:auto}
 #portalView .document-preview-content h3{font-size:29px}
 #portalView .document-frame,#portalView #planFrame{height:60svh;min-height:330px;margin:0 8px 8px}
 #portalView .investment-dashboard{gap:16px}
 #portalView .investment-visual{min-height:310px}
 #portalView .investment-insight{padding:20px}
 #portalView .payment-summary article,#portalView .payment-card{padding:18px}
 .pdf-reader-head{gap:12px}
 .pdf-reader-head button{min-height:44px;font-size:12px}
 .pdf-reader-stage{padding:5px}
}
@media(prefers-reduced-motion:reduce){
 #portalView .document-index .document-item{transition:none}
}
