/* Apariencia de las capturas indicadas por el cliente · Ing. Víctor Marín · 08/10/2026. */
#portalView{--portal-gold:#ffb300;--portal-border:rgba(255,179,0,.22)}
#portalView .topbar{min-height:74px;padding:12px clamp(24px,4vw,72px);gap:20px;background:rgba(2,22,45,.82);border-bottom:1px solid rgba(255,255,255,.15);backdrop-filter:blur(18px)}
#portalView .topbar-left{gap:clamp(18px,3vw,55px);flex-wrap:nowrap}
#portalView .portal-home-link{width:110px;min-height:44px}
#portalView .portal-home-link img{display:block;width:100%;height:45px;object-fit:contain;object-position:left center}
#portalView .desktop-top-nav{gap:clamp(13px,1.6vw,29px)}
#portalView .desktop-top-nav a{position:relative;padding:0;min-height:44px;border-radius:0;background:transparent;color:rgba(255,255,255,.75);font-size:12px;font-weight:650;white-space:nowrap}
#portalView .desktop-top-nav a.active,#portalView .desktop-top-nav a:hover{background:transparent;color:#fff}
#portalView .desktop-top-nav a.active:after{content:'';display:block;position:absolute;left:0;right:0;bottom:5px;height:2px;background:#ffb300}
#portalView .topbar-right{gap:18px}
#portalView #adminLink{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-size:14px;white-space:nowrap}
#portalView .secure-label{display:inline-flex;color:rgba(255,255,255,.7);font-size:10px;white-space:nowrap}
#portalView .top-avatar{width:36px;height:36px;font-size:11px;background:rgba(255,179,0,.12);border-color:rgba(255,179,0,.5);color:#ffdb76}
#portalView .portal-options summary{width:36px;min-height:36px;padding:0;border-radius:50%;border-color:rgba(255,255,255,.22)}
#portalView .portal-options summary>span{display:none}
#portalView .portal-options summary svg{width:17px;height:17px;stroke:rgba(255,255,255,.75)}
#portalView .topbar-right>.top-logout{display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;cursor:pointer}
#portalView .topbar-right>.top-logout span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#portalView .topbar-right>.top-logout svg{width:18px;height:18px}
#portalView .topbar-right>.top-logout:hover{background:rgba(255,255,255,.16)}
#portalView .project-banner{min-height:max(650px,calc(100svh - 74px));padding:160px clamp(28px,6vw,105px) 112px;border-bottom:1px solid #ae7a13}
#portalView .hero-shade{background:linear-gradient(90deg,rgba(3,19,39,.88),rgba(5,24,45,.57) 44%,rgba(2,14,30,.09)),linear-gradient(0deg,rgba(2,18,36,.73),transparent 39%,rgba(2,18,36,.26))}
#portalView .hero-content{max-width:min(870px,83vw)}
#portalView .hero-overline{margin-bottom:25px;font-size:11px;letter-spacing:.22em;color:#f6cb64}
#portalView .hero-greeting{margin-bottom:12px;font-size:14px;color:rgba(255,255,255,.75);letter-spacing:.02em}
#portalView .project-code{padding:8px 13px;border-color:rgba(255,255,255,.26);background:rgba(255,255,255,.1);font-size:10px;letter-spacing:.1em}
#portalView .project-banner h1{max-width:720px;margin:18px 0 19px;font:400 clamp(56px,7vw,118px)/.96 Georgia,'Times New Roman',serif;letter-spacing:-.055em;text-wrap:balance;text-shadow:0 12px 35px rgba(0,0,0,.18)}
#portalView .hero-lead{max-width:650px;margin:0 0 22px;color:rgba(255,255,255,.8);font-size:clamp(15px,1.35vw,19px);line-height:1.65}
#portalView .hero-meta{gap:18px;margin:0 0 30px}
#portalView .project-location,#portalView .hero-status{font-size:12px}
#portalView .hero-action{min-height:48px;padding:0 22px;border-radius:3px;font-size:12px;gap:20px}
#portalView .hero-action.primary{background:#ffb300;border-color:#ffb300}
#portalView .hero-action.primary:hover{background:#ffd062}
#portalView .hero-bottom{bottom:26px;padding-top:0;border-top:0;gap:22px}
#portalView .hero-counter{font-size:19px}
#portalView .hero-counter small{font-size:11px}
#portalView .hero-progress{width:min(290px,30vw);max-width:290px;gap:5px}
#portalView .hero-progress button:before{height:2px;border-radius:0}
#portalView .hero-controls button{width:42px;height:42px;background:rgba(8,23,42,.22);color:#fff;border-color:rgba(255,255,255,.5);font-size:22px}
#portalView .hero-bottom .updated-label{margin-left:10px;color:rgba(255,255,255,.72);font-size:10px}
#portalView .demo-badge{position:fixed;right:18px;bottom:16px;z-index:50;display:block;width:auto;max-width:calc(100vw - 36px);padding:9px 15px;border:1px solid rgba(255,255,255,.17);border-radius:30px;background:#8c5d00;color:#fff;box-shadow:0 8px 28px rgba(0,0,0,.19);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
#portalView .project-keys{background:#f6f4ef;gap:0;padding-top:35px;padding-bottom:35px}
#portalView .project-keys a{min-height:130px;border:0;border-right:1px solid #ddd9d1;border-radius:0;background:transparent;box-shadow:none;padding:16px 28px}
#portalView .project-keys a:last-child{border-right:0}
#portalView .project-keys a:hover{background:rgba(255,255,255,.6);box-shadow:none}
#portalView .project-key-icon{display:none}
#portalView .project-keys small{padding-right:0;color:#697585;font-size:11px;min-height:0}
#portalView .project-keys strong{font-size:clamp(25px,2.3vw,34px)}
#portalView .gallery-section{padding:65px clamp(28px,6vw,105px) 80px;background:#fff}
#portalView .gallery-inner{max-width:1320px}
#portalView .gallery-heading h2{font-size:clamp(37px,4.5vw,66px);letter-spacing:-.045em}
#portalView .gallery-heading p{font-size:14px;color:#718092}
#portalView .gallery-count{font-size:12px;color:#8993a0}
#portalView .floor-nav{justify-content:flex-start;gap:10px;margin:34px 0 45px}
#portalView .floor-tab{flex:0 1 220px;min-height:110px;padding:17px 20px;border-radius:3px;background:#f7f6f3;box-shadow:none}
#portalView .floor-tab.active{background:#092b50}
#portalView .floor-tab .floor-number{display:block;margin-bottom:7px;color:#a87e2d;font:400 14px/1.2 Georgia,serif}
#portalView .floor-tab.active .floor-number{color:#ffce77}
#portalView .floor-tab strong{font:400 27px/1.15 Georgia,serif}
#portalView .floor-tab small{font-size:11px;margin-top:8px}
#portalView .floor-story{display:flex;margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid #e5e7e9}
#portalView .floor-story h3{font-size:clamp(29px,3vw,42px)}
#portalView .floor-story>span{font-size:12px;color:#8993a0}
#portalView .gallery-filters button{border-radius:99px;font-size:12px;min-height:42px;padding:10px 18px}
#portalView .room-viewer{border:1px solid #e0e5e9;border-radius:3px;box-shadow:none}
#portalView .room-view-stage{height:clamp(440px,66svh,720px);background:#0b233b}
#portalView .room-view-copy{background:#fff;color:#092b4e;border-top:1px solid #e0e5e9}
#portalView .room-view-copy small{color:#a47b33;font-size:10px;font-weight:750}
#portalView .room-view-copy h3{font-size:clamp(29px,3vw,42px)}
#portalView .room-view-copy p{color:#667789;font-size:14px}
#portalView .room-view-copy>span{color:#a47b33}
#portalView .room-view-select{padding-top:4px;background:#fff;color:#667789}
#portalView .room-view-select select{border-color:#d7dfe7;border-radius:4px;background:#f7f8fa;color:#143855}
#portalView .room-view-image>span{border-radius:3px}
#portalView .portal-page:is(#modelo,#costos,#pagos),#portalView :is(.ifc-engine,.payment-summary article,.payment-card){border-radius:4px;box-shadow:none}
#portalView .topbar:has(.project-select:not([hidden])) .desktop-top-nav{display:none}
#portalView:has(.project-select:not([hidden])) .mobile-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:10px 24px;background:#fff;border-bottom:1px solid #e2e6e9}
#portalView:has(.project-select:not([hidden])) .mobile-tabs a{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 5px;border-radius:0;color:#67788a;font-size:12px}
#portalView:has(.project-select:not([hidden])) .mobile-tabs a.active{background:transparent;color:#092b50;font-weight:750}
#portalView:has(.project-select:not([hidden])) .mobile-tabs a.active:after{content:'';position:absolute;bottom:3px;left:10px;right:10px;height:2px;background:#ffb300}
@media(max-width:1300px){
 #portalView .desktop-top-nav{display:none}
 #portalView .topbar-left{gap:16px}
 #portalView .secure-label{display:none}
 #portalView .mobile-tabs{background:#fff;border-bottom:1px solid #e2e6e9}
 #portalView .mobile-tabs a{position:relative;border-radius:0;background:transparent;color:#67788a}
 #portalView .mobile-tabs a.active{background:transparent;color:#092b50;font-weight:750}
 #portalView .mobile-tabs a.active:after{content:'';position:absolute;bottom:3px;left:10px;right:10px;height:2px;background:#ffb300}
}
@media(max-width:800px){
 #portalView .topbar{min-height:68px;padding:10px 22px}
 #portalView .topbar-right{gap:11px}
 #portalView .project-banner{min-height:max(700px,calc(100svh - 68px));padding:125px 30px 130px}
 #portalView .project-banner h1{max-width:580px;font-size:clamp(50px,9vw,76px);line-height:1}
 #portalView .hero-shade{background:linear-gradient(0deg,rgba(2,18,36,.93),rgba(2,18,36,.56) 52%,rgba(2,18,36,.15))}
 #portalView .gallery-section{padding:42px 24px 50px}
 #portalView .floor-nav{margin:28px 0 35px}
 #portalView .floor-tab{flex:1 1 180px;min-height:100px}
 #portalView .floor-story{gap:15px;align-items:end}
 #portalView .project-keys{grid-template-columns:1fr;padding:18px 24px}
 #portalView .project-keys a{padding:22px 0;border-right:0;border-bottom:1px solid #ddd9d1}
 #portalView .project-keys a:last-child{border-bottom:0}
}
@media(max-width:560px){
 #portalView .topbar{padding:9px 16px}
 #portalView .portal-home-link{width:73px}
 #portalView .topbar-right{gap:8px}
 #portalView #adminLink{font-size:11px;max-width:115px;white-space:normal;line-height:1.3}
 #portalView .project-select{max-width:125px;min-width:0;font-size:11px}
 #portalView .topbar-left:has(.project-select:not([hidden])){flex-wrap:wrap;gap:3px}
 #portalView .project-select:not([hidden]){flex-basis:100%;width:100%;max-width:125px}
 #portalView:has(.project-select:not([hidden])) .mobile-tabs{grid-template-columns:repeat(4,minmax(0,1fr));padding:9px 14px;gap:5px}
 #portalView .top-avatar{display:none}
 #portalView .project-banner{min-height:720px;padding:110px 22px 130px}
 #portalView .project-banner h1{font-size:clamp(47px,12vw,64px);max-width:440px;line-height:1.02}
 #portalView .hero-lead{font-size:15px;line-height:1.65}
 #portalView .hero-actions{gap:8px}
 #portalView .hero-action{padding:0 12px;gap:8px;min-height:48px}
 #portalView .hero-bottom{gap:13px}
 #portalView .hero-progress{max-width:100px}
 #portalView .hero-bottom .updated-label{width:100%;margin:0;font-size:10px}
 #portalView .demo-badge{position:static;width:100%;max-width:none;border:0;border-radius:0;padding:8px 16px;background:#fff1d2;color:#755319;font-size:9px;box-shadow:none}
 #portalView .gallery-section{padding:35px 20px 42px}
 #portalView .gallery-heading h2{font-size:40px}
 #portalView .floor-tab{flex:1 1 calc(50% - 10px);min-width:0;padding:16px 13px}
 #portalView .floor-tab strong{font-size:24px}
 #portalView .floor-story{align-items:start;flex-direction:column;gap:10px}
 #portalView .floor-story h3{font-size:29px}
 #portalView .room-view-stage{height:390px;min-height:0}
 #portalView .room-view-copy{padding:22px 20px;gap:15px}
 #portalView .room-view-copy h3{font-size:30px}
}
@media(max-width:360px){#portalView #adminLink{max-width:88px;font-size:10px}#portalView .topbar-right{gap:6px}#portalView .topbar-left{gap:8px}#portalView .project-select{max-width:100px}#portalView .project-banner h1{font-size:44px}}

/* Un solo recorrido: todas las secciones permanecen visibles. */
#portalView.portal-is-continuous .portal-page{animation:none}
#portalView.portal-is-continuous .portal-document-hub .document-section + .document-section{margin-top:48px;padding-top:40px;border-top:1px solid #e1e3e7}
#portalView.portal-is-continuous .portal-document-tabs button.active{border-color:#ba8e38;background:#fff7e3;color:#775618}
#portalView.portal-is-continuous .portal-document-tabs button:hover{border-color:#ba8e38}
#portalView.portal-is-continuous .portal-document-tabs button:focus-visible{outline:2px solid #ba8e38;outline-offset:3px}
@media(max-width:560px){#portalView.portal-is-continuous .portal-document-hub .document-section + .document-section{margin-top:32px;padding-top:28px}}

/* Encabezado de cristal y resumen del proyecto · 08/10/2026. */
#portalView .topbar{background:rgba(255,255,255,.78);border-bottom-color:rgba(30,57,80,.1);backdrop-filter:blur(18px) saturate(125%);transition:background .25s,border-color .25s}
#portalView.over-facade .topbar{background:rgba(5,25,46,.2);border-bottom-color:rgba(255,255,255,.13)}
#portalView .topbar .portal-home-link img{filter:brightness(0) saturate(100%) invert(13%) sepia(24%) saturate(1770%) hue-rotate(173deg)}
#portalView.over-facade .topbar .portal-home-link img{filter:brightness(0) invert(1)}
#portalView .topbar .desktop-top-nav a{color:#52677a}
#portalView .topbar .desktop-top-nav a:is(.active,:hover){color:#092b4e}
#portalView.over-facade .topbar .desktop-top-nav a{color:rgba(255,255,255,.83)}
#portalView.over-facade .topbar .desktop-top-nav a:is(.active,:hover){color:#fff}
#portalView .topbar #adminLink{color:#294863;font-size:12px}
#portalView.over-facade .topbar #adminLink{color:#fff}
#portalView .topbar .secure-label{display:none}
#portalView .topbar-right{gap:12px}
#portalView .portal-client-identity{display:grid;gap:4px;min-width:0;max-width:180px;text-align:right}
#portalView .portal-client-identity small{font-size:10px;color:#697d8e}
#portalView .portal-client-identity strong{color:#0c304f;font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#portalView.over-facade .portal-client-identity small{color:rgba(255,255,255,.65)}
#portalView.over-facade .portal-client-identity strong{color:#fff}
#portalView .top-avatar{color:#8c6316;background:rgba(232,178,55,.1);border-color:rgba(160,118,28,.32)}
#portalView.over-facade .top-avatar{color:#ffdb76;border-color:rgba(255,179,0,.5)}
#portalView .topbar-right>.top-logout,#portalView .portal-options summary{color:#173c5b;border-color:rgba(20,57,86,.2);background:transparent}
#portalView .portal-options summary svg{stroke:currentColor}
#portalView.over-facade .topbar-right>.top-logout,#portalView.over-facade .portal-options summary{color:#fff;border-color:rgba(255,255,255,.3)}
#portalView .project-keys{gap:18px;padding:35px clamp(22px,4vw,60px) 42px;background:linear-gradient(180deg,#f6f4ef,#fff)}
#portalView .project-keys a{min-width:0;min-height:185px;padding:27px 25px;border:1px solid #e4dfd3;border-radius:8px;background:#fff;box-shadow:0 8px 24px rgba(18,47,70,.035);transition:transform .2s,border-color .2s,box-shadow .2s}
#portalView .project-keys a:last-child{border-right:1px solid #e4dfd3}
#portalView .project-keys a:before{content:'';position:absolute;top:0;left:25px;width:42px;height:3px;background:#e5b446}
#portalView .project-keys a:hover{transform:translateY(-3px);border-color:#cfac60;background:#fff;box-shadow:0 12px 32px rgba(18,47,70,.08)}
#portalView .project-keys .project-key-icon{display:grid;position:absolute;top:22px;right:20px;width:36px;height:36px;border-radius:50%;color:#a27317;background:#fff9e9;border-color:#eee0bb}
#portalView .project-keys small{padding-right:44px;color:#8f6e2b;letter-spacing:.12em;font-size:10px;font-weight:750}
#portalView .project-keys strong{margin:24px 0 14px;font-size:clamp(25px,2vw,34px);line-height:1.15;text-wrap:balance;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#portalView .project-keys span{font-size:13px;line-height:1.5;color:#526b81}
#portalView #ifcFullscreen{display:none}
#portalView #ifcExpandView{margin-left:auto;border-color:#cbb275;color:#735515;background:#fff9e9;min-height:44px;padding:10px 16px;white-space:normal}
#portalView .ifc-engine:is(:fullscreen,.ifc-expanded){display:flex;flex-direction:column;width:100%;height:100dvh;max-height:none;border:0;border-radius:0;background:#071f38;overflow:auto}
#portalView .ifc-engine.ifc-expanded{position:fixed;inset:0;z-index:1000}
#portalView .ifc-engine:is(:fullscreen,.ifc-expanded) .ifc-workspace{flex:1;min-height:0}
#portalView .ifc-engine:is(:fullscreen,.ifc-expanded) .ifc-canvas{height:100%;min-height:320px;max-height:none}
#portalView .ifc-engine:is(:fullscreen,.ifc-expanded) .ifc-inspector{overflow:auto}
#portalView .ifc-engine:is(:fullscreen,.ifc-expanded) .ifc-upload{flex-shrink:0;background:#fff}
#portalView .ifc-engine:is(:fullscreen,.ifc-expanded) .ifc-status{flex-shrink:0}
@media(min-width:1301px){#portalView:not(:has(.project-select:not([hidden]))) .page-content{margin-top:-74px}}
@media(max-width:1500px){#portalView .topbar-left{gap:24px}#portalView .desktop-top-nav{gap:15px}#portalView .portal-client-identity{max-width:145px}}
@media(max-width:800px){#portalView .project-keys{grid-template-columns:1fr;gap:12px;padding:24px}#portalView .project-keys a{min-height:155px;padding:24px}#portalView .project-keys strong{margin:18px 0 10px}#portalView .ifc-engine:is(:fullscreen,.ifc-expanded) .ifc-workspace{display:flex;flex-direction:column;flex:none}#portalView .ifc-engine:is(:fullscreen,.ifc-expanded) .ifc-canvas{height:65dvh;min-height:300px}#portalView .ifc-engine:is(:fullscreen,.ifc-expanded) .ifc-inspector{max-height:260px}}
@media(max-width:560px){#portalView .portal-client-identity{max-width:120px}#portalView .portal-client-identity small{font-size:9px}#portalView .portal-client-identity strong{font-size:12px}#portalView .topbar-right{gap:8px}#portalView .topbar #adminLink{display:none}#portalView .portal-options #adminLink:not([hidden]){display:flex}#portalView #ifcExpandView{margin-left:0}#portalView .project-keys{padding:22px 20px}#portalView .project-keys a:hover{transform:none}}
@media(prefers-reduced-motion:reduce){#portalView .topbar,#portalView .project-keys a{transition:none}#portalView .project-keys a:hover{transform:none}}
