:root{--clr-brand: #C0392B;--clr-brand-dark: #922B21;--clr-brand-light: #fadbd8;--clr-brand-xlight:#fff5f5;--clr-bg: #F0F2F5;--clr-surface: #FFFFFF;--clr-surface-2: #F7F8FA;--clr-surface-3: #EEF0F3;--clr-border: #E2E5EA;--clr-border-soft: #ECEEF2;--clr-text: #1A1D23;--clr-text-2: #4A5060;--clr-text-3: #8892A0;--clr-success: #16A34A;--clr-warning: #D97706;--clr-info: #2563EB;--ff-body: "Inter", sans-serif;--ff-heading: "Merriweather", serif;--ff-mono: "JetBrains Mono", monospace;--sh-xs: 0 1px 2px rgba(0,0,0,.05);--sh-sm: 0 2px 6px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--sh-md: 0 4px 16px rgba(0,0,0,.09), 0 2px 4px rgba(0,0,0,.04);--sh-lg: 0 12px 32px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 18px;--r-pill: 999px;--sidebar-w: 320px;--topbar-h: 56px;--tr-fast: .12s ease;--tr-base: .2s ease;--tr-slow: .35s cubic-bezier(.4,0,.2,1);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}button{font-family:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}input{font-family:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}html,body{height:100%;font-family:var(--ff-body);font-size:14px;line-height:1.5;color:var(--clr-text);background:var(--clr-bg);overflow:hidden;-webkit-font-smoothing:antialiased}#app{display:flex;width:100vw;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--clr-surface);border-right:1px solid var(--clr-border);display:flex;flex-direction:column;z-index:20;box-shadow:var(--sh-md);transition:width var(--tr-slow),min-width var(--tr-slow),transform var(--tr-slow);overflow:hidden}.sidebar.collapsed{width:0;min-width:0;border-right:none}.sidebar-header{padding:0 1rem;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--clr-border-soft);flex-shrink:0;background:var(--clr-surface)}.logo{display:flex;align-items:center;gap:.75rem;overflow:hidden}.logo-icon{width:34px;height:34px;flex-shrink:0;border-radius:8px}.logo-text{overflow:hidden}.logo-title{display:block;font-family:var(--ff-heading);font-size:.9rem;font-weight:700;color:var(--clr-brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo-sub{display:block;font-size:.68rem;color:var(--clr-text-3);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.icon-btn{background:none;border:none;color:var(--clr-text-3);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);transition:background var(--tr-fast),color var(--tr-fast);flex-shrink:0}.icon-btn:hover{background:var(--clr-surface-3);color:var(--clr-text)}.icon-btn svg{width:16px;height:16px;stroke-width:2.5}.tabs{display:flex;border-bottom:1px solid var(--clr-border-soft);flex-shrink:0;background:var(--clr-surface);padding:0 .25rem;gap:.125rem}.tab{flex:1;padding:.65rem .25rem .55rem;background:none;border:none;border-bottom:2px solid transparent;display:flex;flex-direction:column;align-items:center;gap:.3rem;font-size:.7rem;font-weight:500;color:var(--clr-text-3);transition:color var(--tr-base),border-color var(--tr-base);white-space:nowrap;letter-spacing:.02em}.tab svg{width:17px;height:17px;stroke-width:1.8;flex-shrink:0}.tab:hover{color:var(--clr-text-2)}.tab.active{color:var(--clr-brand);border-bottom-color:var(--clr-brand);font-weight:600}.tab-content{display:none;flex:1;overflow-y:auto;padding:1.25rem 1rem;scroll-behavior:smooth;overscroll-behavior:contain}.tab-content.active{display:block}.tab-content::-webkit-scrollbar{width:4px}.tab-content::-webkit-scrollbar-track{background:transparent}.tab-content::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:var(--r-pill)}.tab-content::-webkit-scrollbar-thumb:hover{background:var(--clr-text-3)}.section-block{margin-bottom:1.5rem}.section-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--clr-text-3);margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.hint-text{font-size:.78rem;color:var(--clr-text-3);margin-bottom:.75rem;line-height:1.5}.upload-zone{border:2px dashed var(--clr-border);border-radius:var(--r-lg);padding:1.5rem 1rem;text-align:center;background:var(--clr-surface-2);transition:border-color var(--tr-base),background var(--tr-base),box-shadow var(--tr-base);cursor:pointer;margin-bottom:1.25rem;position:relative}.upload-zone:hover{border-color:var(--clr-brand);background:var(--clr-brand-xlight);box-shadow:0 0 0 4px #c0392b14}.upload-zone.drag-over{border-color:var(--clr-brand);background:var(--clr-brand-xlight);box-shadow:0 0 0 4px #c0392b1f;transform:scale(1.01)}.upload-icon-wrap{width:48px;height:48px;background:var(--clr-brand-light);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.upload-icon-wrap svg{width:22px;height:22px;color:var(--clr-brand);stroke-width:1.8}.upload-title{font-size:.85rem;font-weight:600;color:var(--clr-text);margin-bottom:.35rem}.upload-hint{font-size:.75rem;color:var(--clr-text-3);margin-bottom:.9rem}.badge-ifc{background:var(--clr-brand);color:#fff;padding:1px 6px;border-radius:var(--r-sm);font-size:.72rem;font-weight:700;letter-spacing:.04em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.6rem .9rem;border-radius:var(--r-md);border:1px solid transparent;font-size:.82rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background var(--tr-base),border-color var(--tr-base),color var(--tr-base),box-shadow var(--tr-base),transform var(--tr-fast);user-select:none}.btn:active{transform:scale(.98)}.btn-primary{background:var(--clr-brand);color:#fff;border-color:var(--clr-brand);box-shadow:0 1px 3px #c0392b40}.btn-primary:hover{background:var(--clr-brand-dark);border-color:var(--clr-brand-dark);box-shadow:0 3px 8px #c0392b59}.btn-outline{background:var(--clr-surface);border-color:var(--clr-border);color:var(--clr-text-2)}.btn-outline:hover{border-color:var(--clr-brand);color:var(--clr-brand);background:var(--clr-brand-xlight)}.btn-sm{padding:.4rem .7rem;font-size:.77rem;border-radius:var(--r-sm)}.btn-pick{border-color:var(--clr-brand);color:var(--clr-brand);background:var(--clr-surface)}.btn-pick:hover{background:var(--clr-brand-xlight)}.btn-pick.active{background:var(--clr-brand);color:#fff}.btn-clear{background:transparent;border:1px dashed #E57373;color:#c62828;padding:.4rem .7rem;border-radius:var(--r-sm);font-size:.75rem;font-weight:600;cursor:pointer;width:100%;margin-top:.5rem;transition:background var(--tr-base),border-color var(--tr-base)}.btn-clear:hover{background:#fff5f5;border-color:#c62828}.btn.demo-featured{border-color:#6d5acd40;background:linear-gradient(135deg,#f8f5ff,#f0f8ff);justify-content:space-between;font-weight:600;color:#4a3fa5}.btn.demo-featured:hover{border-color:#6d5acd8c;background:linear-gradient(135deg,#ede7ff,#e4f2ff)}.demo-georef-tag{background:linear-gradient(90deg,#6d5acd,#2ea8e0);color:#fff;font-size:.65rem;font-weight:700;padding:.12rem .45rem;border-radius:var(--r-pill);letter-spacing:.03em;white-space:nowrap;flex-shrink:0}.form-group{margin-bottom:.85rem}.form-group label{display:block;font-size:.75rem;font-weight:500;color:var(--clr-text-2);margin-bottom:.35rem}.input{width:100%;padding:.45rem .65rem;border:1px solid var(--clr-border);border-radius:var(--r-sm);background:var(--clr-surface);color:var(--clr-text);font-size:.82rem;outline:none;transition:border-color var(--tr-fast),box-shadow var(--tr-fast)}.input:focus{border-color:var(--clr-brand);box-shadow:0 0 0 3px #c0392b1f}.mono{font-family:var(--ff-mono);font-size:.8rem}.label-unit{font-size:.72rem;color:var(--clr-text-3);margin-left:2px}.input-with-slider{display:flex;gap:.75rem;align-items:center}.input-with-slider .input{width:90px;flex-shrink:0}.slider-row{display:flex;align-items:center;gap:.65rem}.slider-row input[type=range]{flex:1}input[type=range]{-webkit-appearance:none;appearance:none;height:4px;border-radius:var(--r-pill);background:var(--clr-border);outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--clr-brand);box-shadow:0 0 0 3px #c0392b33;transition:box-shadow var(--tr-fast),transform var(--tr-fast)}input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 0 0 5px #c0392b40;transform:scale(1.15)}.slider-val{font-family:var(--ff-mono);font-size:.75rem;color:var(--clr-text-3);min-width:36px;text-align:right}.view-controls{margin-bottom:.75rem}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem .5rem;border-radius:var(--r-sm);font-size:.82rem;font-weight:500;color:var(--clr-text-2);cursor:pointer;transition:background var(--tr-fast);margin-bottom:.25rem;user-select:none}.toggle-row:hover{background:var(--clr-surface-3)}.toggle{width:38px;height:22px;background:var(--clr-border);border-radius:var(--r-pill);position:relative;cursor:pointer;transition:background var(--tr-base);flex-shrink:0}.toggle.active{background:var(--clr-brand)}.toggle-knob{width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #0003;transition:transform var(--tr-base)}.toggle.active .toggle-knob{transform:translate(16px)}.model-item{display:flex;align-items:center;gap:.5rem;padding:.55rem .65rem;background:var(--clr-surface-2);border:1px solid var(--clr-border-soft);border-radius:var(--r-md);margin-bottom:.4rem;font-size:.82rem;transition:border-color var(--tr-fast),box-shadow var(--tr-fast)}.model-item:hover{border-color:var(--clr-brand);box-shadow:0 2px 8px #c0392b14}.model-item-icon{width:30px;height:30px;background:var(--clr-brand-light);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.model-item-icon svg{width:14px;height:14px;color:var(--clr-brand);stroke-width:2}.model-item-name{flex:1;font-weight:600;color:var(--clr-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-item-actions{display:flex;gap:.2rem;flex-shrink:0}.model-vis-btn,.model-del-btn{background:none;border:1px solid var(--clr-border);border-radius:var(--r-sm);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--clr-text-3);transition:background var(--tr-fast),border-color var(--tr-fast),color var(--tr-fast)}.model-vis-btn svg,.model-del-btn svg{width:13px;height:13px;stroke-width:2}.model-vis-btn:hover{background:var(--clr-surface-3);color:var(--clr-text);border-color:var(--clr-text-3)}.model-vis-btn.hidden-model{opacity:.4}.model-del-btn{color:var(--clr-brand)}.model-del-btn:hover{background:var(--clr-brand-xlight);border-color:var(--clr-brand)}.empty-hint{text-align:center;color:var(--clr-text-3);font-size:.8rem;padding:2rem 1rem;line-height:1.6}.empty-hint svg{width:36px;height:36px;margin-bottom:.75rem;opacity:.35;stroke-width:1.5}.empty-hint p{max-width:200px;margin:0 auto}.count-badge{background:var(--clr-brand);color:#fff;font-size:.65rem;font-weight:700;padding:1px 7px;border-radius:var(--r-pill);min-width:18px;text-align:center}#map-wrap{flex:1;position:relative;overflow:hidden}#map{width:100%;height:100%;background:#fff}.topbar{position:absolute;top:.75rem;left:.75rem;right:.75rem;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:100;gap:.6rem;flex-wrap:nowrap}.glass-btn{pointer-events:auto;background:#ffffffeb;backdrop-filter:blur(16px) saturate(1.8);-webkit-backdrop-filter:blur(16px) saturate(1.8);border:1px solid rgba(0,0,0,.08);min-width:38px;height:38px;border-radius:var(--r-pill, 999px);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#1d1d1f;box-shadow:0 2px 8px #0000000f;transition:all .2s cubic-bezier(.16,1,.3,1);padding:0 .65rem;font-family:inherit;font-size:.78rem;font-weight:600}.glass-btn:hover{background:#fff;box-shadow:0 4px 14px #0000001a;transform:translateY(-1px);color:#e11d48;border-color:#e11d484d}.glass-btn:active{transform:scale(.96)}.glass-btn svg{width:16px;height:16px;stroke-width:2;flex-shrink:0}.glass-btn .btn-3d-label,#btn-3d-label{font-size:.76rem;font-weight:700;letter-spacing:.02em;color:inherit}.topbar-title{pointer-events:auto;background:#ffffffeb;backdrop-filter:blur(16px) saturate(1.8);-webkit-backdrop-filter:blur(16px) saturate(1.8);border:1px solid rgba(0,0,0,.08);padding:.4rem .95rem;border-radius:var(--r-pill, 999px);display:flex;align-items:center;gap:.5rem;box-shadow:0 2px 8px #0000000f;max-width:fit-content;white-space:nowrap}.topbar-bim{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Inter,sans-serif;font-size:.84rem;font-weight:700;color:#111827;letter-spacing:-.01em}.topbar-dt{font-size:.72rem;color:#6b7280;font-weight:500}.topbar-controls{display:flex;align-items:center;gap:.4rem;pointer-events:auto;flex-shrink:0}@media (max-width: 768px){.topbar{top:.5rem;left:.5rem;right:.5rem;gap:.35rem}.topbar-title{padding:.35rem .7rem}.topbar-dt{display:none}.topbar-bim{font-size:.78rem}}@media (max-width: 480px){.topbar-title{max-width:140px;overflow:hidden;text-overflow:ellipsis}.glass-btn{padding:0 .45rem}#btn-quick-geojson span:not(:first-child){display:none}}.statusbar{position:absolute;bottom:0;left:0;right:0;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--clr-border);padding:.3rem 1rem;font-size:.72rem;color:var(--clr-text-2);display:flex;align-items:center;gap:.75rem;z-index:10}.sb-sep{color:var(--clr-border);font-size:.9em}#sb-coords,#sb-zoom{font-family:var(--ff-mono);color:var(--clr-text-3)}#sb-status{color:var(--clr-success);font-weight:600;margin-left:auto}.map-style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.map-style-card{padding:.5rem .25rem;text-align:center;border:1.5px solid var(--clr-border);border-radius:var(--r-md);cursor:pointer;font-size:.74rem;font-weight:500;background:var(--clr-surface);color:var(--clr-text-2);transition:border-color var(--tr-base),background var(--tr-base),color var(--tr-base),box-shadow var(--tr-fast)}.map-style-card:hover{border-color:var(--clr-brand);color:var(--clr-brand);background:var(--clr-brand-xlight)}.map-style-card.active{border-color:var(--clr-brand);color:var(--clr-brand);font-weight:700;background:var(--clr-brand-xlight);box-shadow:0 0 0 3px #c0392b1f}.loading-overlay{position:absolute;inset:0;background:#f0f2f5bf;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:50;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.loading-overlay.hidden{display:none}.loading-card{background:var(--clr-surface);padding:2rem 2.5rem;border-radius:var(--r-xl);box-shadow:var(--sh-lg);text-align:center;min-width:280px}.loader-ring{width:44px;height:44px;border:3px solid var(--clr-border);border-top-color:var(--clr-brand);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 1.25rem}.loading-msg{color:var(--clr-text-2);font-size:.85rem;font-weight:500;margin-top:.5rem}.progress-track{width:100%;height:4px;background:var(--clr-border);border-radius:var(--r-pill);margin-top:1rem;overflow:hidden}.progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--clr-brand),#E57373);border-radius:var(--r-pill);transition:width .3s ease}.pick-banner{position:absolute;top:4.5rem;left:50%;transform:translate(-50%);background:var(--clr-brand);color:#fff;padding:.6rem 1.25rem;border-radius:var(--r-pill);display:flex;align-items:center;gap:.75rem;box-shadow:var(--sh-md);z-index:10;font-weight:500;font-size:.82rem;white-space:nowrap;animation:slideDown .25s ease}.pick-banner.hidden{display:none}.pick-banner svg{width:15px;height:15px;flex-shrink:0}.pick-banner button{background:#fff3;border:1px solid rgba(255,255,255,.35);color:#fff;padding:.2rem .65rem;border-radius:var(--r-pill);font-size:.75rem;font-weight:600;cursor:pointer;transition:background var(--tr-fast)}.pick-banner button:hover{background:#ffffff59}.props-panel{background:var(--clr-surface-2);border:1px solid var(--clr-border);border-radius:var(--r-lg);overflow:hidden}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000073;z-index:19;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fadeIn .2s ease}.sidebar-overlay.active{display:block}@media (max-width: 1024px){:root{--sidebar-w: 290px}.tab-content{padding:1rem .85rem}}@media (max-width: 768px){:root{--sidebar-w: min(300px, 88vw)}.sidebar{position:fixed;top:0;left:0;height:100%;height:100dvh;width:var(--sidebar-w);min-width:var(--sidebar-w);transform:translate(0);transition:transform var(--tr-slow);box-shadow:var(--sh-lg);z-index:20;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}.sidebar.collapsed{transform:translate(-100%);width:var(--sidebar-w);min-width:var(--sidebar-w)}.topbar{top:calc(.5rem + var(--safe-top));left:.5rem;right:.5rem}.topbar-title{display:none}.glass-btn{width:44px;height:44px;border-radius:var(--r-lg)}.glass-btn svg{width:20px;height:20px}.statusbar{padding:.3rem .75rem;padding-bottom:calc(.3rem + var(--safe-bottom));gap:.4rem;font-size:.68rem}#sb-coords{display:none}.sb-sep:first-of-type{display:none}.btn{min-height:44px;font-size:.84rem}.btn-sm{min-height:36px}.input{min-height:44px;font-size:.9rem;padding:.55rem .75rem}.toggle-row{min-height:44px}.map-style-card{min-height:44px;font-size:.78rem}input[type=range]{height:6px}input[type=range]::-webkit-slider-thumb{width:22px;height:22px}.maplibregl-popup{max-width:min(300px,92vw)!important}.pick-banner{top:calc(4rem + var(--safe-top));left:.5rem;right:.5rem;transform:none;border-radius:var(--r-lg);justify-content:center;white-space:normal;text-align:center}.upload-zone{padding:1rem .75rem}.upload-icon-wrap{width:40px;height:40px}.maplibregl-ctrl-group button{width:44px!important;height:44px!important}.maplibregl-ctrl-top-right{top:calc(3.5rem + var(--safe-top))!important;right:.5rem!important}.tab-content{padding:.85rem .75rem}.section-block{margin-bottom:1.25rem}.model-vis-btn,.model-del-btn{width:36px;height:36px}.model-vis-btn svg,.model-del-btn svg{width:16px;height:16px}}@media (max-width: 480px){:root{--sidebar-w: 92vw}.loading-card{min-width:0;width:calc(100vw - 2.5rem);padding:1.5rem 1.25rem}.prop-key{min-width:64px;font-size:.72rem}.prop-val{font-size:.72rem;max-width:50%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.props-header{padding:.85rem 1rem;border-bottom:1px solid var(--clr-border-soft);background:var(--clr-surface)}.props-type-badge{display:inline-block;background:var(--clr-brand);color:#fff;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:var(--r-sm);margin-bottom:.35rem;letter-spacing:.04em}.props-name{font-weight:700;font-size:.88rem;color:var(--clr-text);margin-bottom:.15rem}.props-guid{font-size:.68rem;color:var(--clr-text-3);font-family:var(--ff-mono)}#props-body{padding:.5rem 0}.prop-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.35rem 1rem;font-size:.78rem;border-bottom:1px solid var(--clr-border-soft);transition:background var(--tr-fast)}.prop-row:last-child{border-bottom:none}.prop-row:hover{background:var(--clr-surface)}.prop-key{color:var(--clr-text-3);font-weight:500;flex-shrink:0;min-width:80px}.prop-val{font-weight:600;color:var(--clr-text);text-align:right;word-break:break-all;max-width:55%}.georef-actions{display:flex;gap:.6rem;margin-bottom:1.25rem}.georef-actions .btn{flex:1}.georef-auto-badge{display:none;align-items:flex-start;gap:.6rem;background:linear-gradient(135deg,#eef4ff,#f0fff4);border:1px solid rgba(109,90,205,.2);border-radius:var(--r-md);padding:.75rem;margin-bottom:1rem;font-size:.78rem;line-height:1.4;animation:fadeInDown .4s ease}.georef-auto-badge.visible{display:flex}.georef-badge-icon{font-size:1.2rem;flex-shrink:0;margin-top:.1rem}.georef-badge-text strong{color:#3d2fa5;font-weight:700;display:block;margin-bottom:.15rem;font-size:.8rem}.georef-badge-text small{color:var(--clr-text-3);font-family:var(--ff-mono);font-size:.7rem}#toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%) translateY(10px);background:var(--clr-text);color:#fff;padding:.55rem 1.25rem;border-radius:var(--r-pill);font-size:.82rem;font-weight:500;z-index:9999;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:var(--sh-md);white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}#toast.success{background:var(--clr-success)}#toast.error{background:var(--clr-brand)}.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.maplibregl-ctrl-group{border-radius:var(--r-md)!important;box-shadow:var(--sh-sm)!important;border:1px solid rgba(255,255,255,.7)!important;overflow:hidden;background:#ffffffeb!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.maplibregl-ctrl-group button{width:38px!important;height:38px!important}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon,.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon,.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{filter:none!important}.maplibregl-ctrl-top-right{top:.75rem!important;right:.75rem!important}@media (max-width: 768px){:root{--sidebar-w: 300px}.sidebar{position:absolute;top:0;left:0;height:100%;transform:translate(0);box-shadow:var(--sh-lg)}.sidebar.collapsed{transform:translate(-100%);width:var(--sidebar-w);min-width:var(--sidebar-w)}.topbar-title{display:none}}.maplibregl-popup{max-width:320px!important;z-index:40}.maplibregl-popup-content{padding:0!important;border-radius:var(--r-lg)!important;background:#fffffff5!important;backdrop-filter:blur(16px) saturate(1.8)!important;-webkit-backdrop-filter:blur(16px) saturate(1.8)!important;box-shadow:var(--sh-lg),0 0 0 1px #0000000f!important;overflow:hidden;border:1px solid rgba(255,255,255,.8)!important}.maplibregl-popup-close-button{width:26px!important;height:26px!important;border-radius:50%!important;background:#00000080!important;color:#fff!important;top:8px!important;right:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:16px!important;line-height:1!important;border:none!important;cursor:pointer!important;z-index:15!important;transition:background var(--tr-fast),transform var(--tr-fast)!important}.maplibregl-popup-close-button:hover{background:#000c!important;transform:scale(1.08)}.maplibregl-popup-tip{border-top-color:#fffffff5!important}.bim-popup-card{display:flex;flex-direction:column;font-family:var(--ff-body)}.bim-popup-media{position:relative;width:100%;height:145px;background:#2a2d34;overflow:hidden}.bim-popup-img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease,opacity .3s ease}.bim-popup-img:hover{transform:scale(1.03)}.bim-popup-badge-overlay{position:absolute;top:8px;left:8px;display:flex;gap:4px;z-index:5}.bim-popup-tag{background:var(--clr-brand);color:#fff;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:var(--r-sm);letter-spacing:.04em;box-shadow:0 1px 4px #0000004d}.bim-popup-status{background:#16a34ae6;backdrop-filter:blur(4px);color:#fff;font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:var(--r-sm);box-shadow:0 1px 4px #0000004d}.bim-popup-gallery-nav{position:absolute;bottom:8px;right:8px;display:flex;gap:4px;z-index:5}.gallery-pill{background:#000000a6;backdrop-filter:blur(4px);color:#ffffffe6;border:1px solid rgba(255,255,255,.2);border-radius:var(--r-pill);font-size:.65rem;font-weight:600;padding:2px 8px;cursor:pointer;transition:all var(--tr-fast)}.gallery-pill:hover,.gallery-pill.active{background:#fff;color:var(--clr-text);border-color:#fff;box-shadow:0 2px 6px #00000040}.bim-popup-body{padding:.75rem .9rem .85rem}.bim-popup-header{margin-bottom:.5rem}.bim-popup-type{display:inline-block;font-size:.68rem;font-weight:700;color:var(--clr-brand);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.bim-popup-title{font-size:.92rem;font-weight:700;color:var(--clr-text);line-height:1.3;margin-bottom:2px}.bim-popup-sub{font-size:.72rem;color:var(--clr-text-3)}.bim-popup-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:.75rem}.bim-popup-chips .chip{background:var(--clr-surface-3);color:var(--clr-text-2);font-size:.68rem;font-weight:600;padding:2px 6px;border-radius:var(--r-sm)}.bim-popup-actions{display:flex;gap:.4rem}.bim-popup-actions .btn{flex:1}.btn-load-all{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-size:.88rem;font-weight:700;background:linear-gradient(135deg,#c0392b,#e74c3c);color:#fff;border:none;border-radius:var(--r-md);box-shadow:0 4px 12px #c0392b4d;transition:all var(--tr-fast);cursor:pointer}.btn-load-all:hover{background:linear-gradient(135deg,#a93226,#c0392b);box-shadow:0 6px 16px #c0392b66;transform:translateY(-1px)}.btn-load-all:active{transform:translateY(0)}.batch-quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin-top:.5rem}.btn-xs{font-size:.72rem;padding:.35rem .4rem;border-radius:var(--r-sm);white-space:nowrap;text-align:center;justify-content:center}.catalog-search-wrap{position:relative;margin-bottom:.5rem}.catalog-search-wrap .search-icon{position:absolute;left:.65rem;top:50%;transform:translateY(-50%);color:var(--clr-text-3);pointer-events:none}.catalog-search-input{width:100%;padding:.45rem 1.8rem .45rem 2rem;font-size:.78rem;border:1px solid var(--clr-border);border-radius:var(--r-md);background:var(--clr-surface-2);color:var(--clr-text);outline:none;transition:border-color var(--tr-fast),background var(--tr-fast)}.catalog-search-input:focus{border-color:var(--clr-brand);background:var(--clr-surface)}.search-clear-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--clr-text-3);font-size:.8rem;padding:2px 4px;cursor:pointer}.search-clear-btn:hover{color:var(--clr-text)}.catalog-filter-pills{display:flex;gap:.25rem;margin-bottom:.5rem;overflow-x:auto;padding-bottom:2px}.catalog-filter-pill{font-size:.7rem;font-weight:600;padding:.2rem .55rem;border-radius:var(--r-pill);border:1px solid var(--clr-border);background:var(--clr-surface-2);color:var(--clr-text-2);cursor:pointer;white-space:nowrap;transition:all var(--tr-fast)}.catalog-filter-pill:hover{background:var(--clr-surface-3);border-color:var(--clr-border-soft)}.catalog-filter-pill.active{background:var(--clr-brand);color:#fff;border-color:var(--clr-brand)}.catalog-cards-container{display:flex;flex-direction:column;gap:.35rem;max-height:270px;overflow-y:auto;padding-right:2px}.catalog-cards-container::-webkit-scrollbar{width:4px}.catalog-cards-container::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:4px}.catalog-card{display:flex;align-items:center;justify-content:space-between;padding:.45rem .6rem;background:var(--clr-surface-2);border:1px solid var(--clr-border-soft);border-radius:var(--r-md);transition:all var(--tr-fast)}.catalog-card:hover{background:var(--clr-surface);border-color:var(--clr-border);box-shadow:var(--sh-xs)}.catalog-card.is-loaded{border-color:#16a34a4d;background:#16a34a0a}.catalog-card-info{display:flex;flex-direction:column;gap:2px;min-width:0}.catalog-card-header{display:flex;align-items:center;gap:.35rem}.catalog-card-name{font-size:.8rem;font-weight:600;color:var(--clr-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-card-badge{font-size:.62rem;font-weight:600;padding:1px 5px;border-radius:4px;text-transform:uppercase}.catalog-card-badge.manzanas{background:#e8f4fd;color:#1e88e5}.catalog-card-badge.zonas{background:#fef3d6;color:#d97706}.catalog-card-badge.modulos{background:#ede9fe;color:#7c3aed}.catalog-card-badge.general,.catalog-card-badge.otros{background:#e6f4ea;color:#137333}.catalog-card-meta{display:flex;align-items:center;gap:.5rem;font-size:.68rem;color:var(--clr-text-3)}.catalog-card-file{font-size:.65rem}.catalog-card-action{flex-shrink:0;margin-left:.4rem}.badge-loaded{display:inline-flex;align-items:center;font-size:.68rem;font-weight:600;color:var(--clr-success);background:#16a34a1f;padding:2px 7px;border-radius:var(--r-pill)}.ficha-modal-overlay{position:fixed;inset:0;background:#0f17208c;backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.ficha-modal{position:relative;width:min(560px,100%);max-height:88vh;overflow-y:auto;background:var(--clr-surface, #fff);border-radius:16px;box-shadow:0 20px 60px #00000059}.ficha-modal-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:none;background:#0000008c;color:#fff;cursor:pointer;z-index:2;font-size:.9rem}.ficha-modal-media{position:relative}.ficha-modal-media .bim-popup-img{width:100%;height:220px;object-fit:cover;display:block}.ficha-modal-body{padding:18px 20px 22px}.ficha-modal-empty{padding:32px 24px;text-align:center;color:var(--clr-text-2)}.ficha-modal-hint{font-size:.8rem;color:var(--clr-text-3);margin-top:10px}.ficha-modal-hint code{background:#0000000f;padding:1px 5px;border-radius:4px}.ficha-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:14px 0 6px}.ficha-grid>div{display:flex;flex-direction:column;gap:2px}.ficha-section-title{margin:18px 0 6px;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--clr-text-3)}.ficha-text{font-size:.92rem;line-height:1.5;color:var(--clr-text);margin:0}.ficha-muted{font-size:.88rem;color:var(--clr-text-3);font-style:italic;margin:0}.ficha-audio{width:100%;margin-top:8px}.ficha-tags{display:flex;flex-wrap:wrap;gap:6px}.ficha-footnote{margin-top:18px;padding-top:10px;border-top:1px solid var(--clr-border, rgba(0,0,0,.08));font-size:.75rem;color:var(--clr-text-3)}.chip-toggle-group{display:flex;flex-wrap:wrap;gap:6px}.chip-toggle{font-size:.72rem;padding:5px 10px;border-radius:var(--r-pill, 999px);border:1px solid var(--clr-border);background:var(--clr-surface);color:var(--clr-text-2);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.chip-toggle.active{background:var(--clr-brand, #C0392B);border-color:var(--clr-brand, #C0392B);color:#fff}.ficha-fotos-list{margin-top:.6rem;display:flex;flex-direction:column;gap:6px}.ficha-foto-item{display:flex;align-items:center;gap:8px}.ficha-foto-name{flex:1;font-size:.72rem;color:var(--clr-text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-sm{width:130px;padding:4px 8px;font-size:.75rem}.session-bar-row{display:flex;align-items:center;justify-content:space-between;font-size:.82rem;color:var(--clr-text-2)}.section-block{position:relative;background:linear-gradient(180deg,#ffffff0b,#ffffff04);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:14px 14px 12px;margin-bottom:14px;box-shadow:0 1px 2px #0000002e}.section-block:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#e74c3c,#C0392B 60%,transparent)}.section-label{letter-spacing:.06em;font-weight:700;font-size:.72rem;text-transform:uppercase;color:var(--clr-text-2, #9aa7b8);margin-bottom:10px}.model-item{transition:background .16s ease,transform .16s ease}.model-item:hover{background:#ffffff0e;transform:translate(2px)}#progress-bar{position:relative;overflow:hidden;transition:width .3s ease}#progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.45) 50%,transparent 80%);animation:bim-shimmer 1.4s infinite}@keyframes bim-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.georef-auto-badge{backdrop-filter:blur(8px);background:linear-gradient(135deg,#27ae6029,#27ae600f)!important;border:1px solid rgba(46,204,113,.35)!important;box-shadow:0 4px 14px #00000038}.bim-popup-card{box-shadow:0 18px 44px #0000006b,0 2px 8px #00000047}.maplibregl-popup-content{padding:0!important;background:transparent!important;box-shadow:none!important}.maplibregl-popup-tip{display:none!important}#north-compass{position:absolute;top:132px;right:10px;width:40px;height:40px;cursor:pointer;z-index:5;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));transition:transform .12s linear}#north-compass:hover{filter:drop-shadow(0 2px 8px rgba(231,76,60,.55))}#north-compass svg{width:100%;height:100%}.maplibregl-ctrl-scale{background:#0f172ab8!important;color:#dbe4ef!important;border-color:#ffffff4d!important;border-radius:4px!important;font-size:11px!important;backdrop-filter:blur(6px)}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:8px}.sidebar::-webkit-scrollbar-thumb:hover{background:#e74c3c8c}.sidebar::-webkit-scrollbar-track{background:transparent}.auth-chip-wrapper{position:relative;display:flex;align-items:center}.auth-chip-btn{display:flex;align-items:center;gap:.45rem;padding:.35rem .85rem;border-radius:var(--r-pill, 999px);border:1px solid rgba(0,0,0,.08);background:#ffffffeb;backdrop-filter:blur(16px) saturate(1.8);-webkit-backdrop-filter:blur(16px) saturate(1.8);color:#1d1d1f;font-size:.78rem;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #0000000f;transition:all .2s cubic-bezier(.16,1,.3,1);height:38px;font-family:inherit}.auth-chip-btn:hover{background:#fff;border-color:#e11d4866;color:#e11d48;box-shadow:0 4px 14px #e11d4826;transform:translateY(-1px)}.auth-chip-btn:active{transform:scale(.96)}.auth-chip-btn svg{width:14px;height:14px}.auth-chip-btn.logged{padding:.25rem .75rem .25rem .3rem;gap:.5rem}.auth-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#e11d48,#be123c);display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:800;color:#fff;letter-spacing:.02em;box-shadow:0 2px 6px #e11d484d}.auth-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:230px;background:#fffffffa;backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8);border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:10px;box-shadow:0 16px 40px -10px #0000002e,0 0 0 1px #0000000a;z-index:1000;animation:apple-pop-in .2s cubic-bezier(.16,1,.3,1)}@keyframes apple-pop-in{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-dd-head{display:flex;gap:.65rem;align-items:center;padding:6px 8px 10px;border-bottom:1px solid rgba(0,0,0,.06);margin-bottom:6px}.auth-dd-name{font-weight:700;font-size:.88rem;color:#1d1d1f}.auth-dd-role{font-size:.7rem;color:#6e6e73}.auth-dd-item{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem .75rem;border:none;background:none;color:#1d1d1f;font-size:.82rem;font-weight:500;border-radius:10px;cursor:pointer;transition:all .15s ease}.auth-dd-item svg{width:15px!important;height:15px!important;min-width:15px!important;max-width:15px!important;flex-shrink:0;stroke:currentColor;stroke-width:2;transition:transform .15s ease}.auth-dd-item:hover{background:#0000000d}.auth-dd-item:hover svg{transform:translate(2px)}.auth-dd-item.danger{color:#e11d48}.auth-dd-item.danger:hover{background:#e11d4814}.login-modal-overlay{position:fixed;inset:0;z-index:10000;background:#0000005c;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;transition:opacity .2s cubic-bezier(.16,1,.3,1)}.login-modal-overlay.open{opacity:1}.login-modal-overlay.hidden{display:none}.login-card{width:min(390px,100%);background:#fffffffa;backdrop-filter:blur(32px) saturate(1.8);-webkit-backdrop-filter:blur(32px) saturate(1.8);border:1px solid rgba(0,0,0,.08);border-radius:26px;padding:28px 26px 22px;position:relative;box-shadow:0 24px 60px -12px #00000038,0 0 0 1px #0000000a,inset 0 1px #fffc;transform:translateY(14px) scale(.96);transition:transform .22s cubic-bezier(.16,1,.3,1);color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,sans-serif}.login-modal-overlay.open .login-card{transform:translateY(0) scale(1)}.login-close{position:absolute;top:14px;right:16px;background:#f5f5f7;border:1px solid rgba(0,0,0,.06);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#6e6e73;font-size:.85rem;cursor:pointer;z-index:2;transition:all .16s ease}.login-close:hover{background:#e5e5ea;color:#1d1d1f}.login-brand{text-align:center;margin-bottom:20px}.login-mark svg{width:48px;height:48px;filter:drop-shadow(0 4px 14px rgba(225,29,72,.28))}.login-brand h2{margin:.6rem 0 .2rem;font-size:1.25rem;font-weight:700;color:#111827;letter-spacing:-.02em}.login-brand p{margin:0;font-size:.78rem;color:#6b7280}.login-field-group{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.login-field{position:relative;display:block}.login-field-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#86868b;display:flex;pointer-events:none}.login-field-icon svg{width:16px;height:16px}.login-field input{width:100%;padding:.75rem 1rem .75rem 2.6rem;background:#f5f5f7;border:1px solid #e5e5ea;border-radius:13px;color:#1d1d1f;font-size:.92rem;outline:none;transition:all .18s ease;font-family:inherit}.login-field input:focus{background:#fff;border-color:#0071e3;box-shadow:0 0 0 3.5px #0071e329}.login-eye{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:.9rem;opacity:.6;transition:opacity .15s}.login-eye:hover{opacity:1}.login-error{background:#fee2e2;border:1px solid #fca5a5;color:#b91c1c;font-size:.78rem;font-weight:500;padding:.6rem .8rem;border-radius:10px;margin-bottom:12px}.login-error.shake{animation:auth-shake .34s ease}@keyframes auth-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.login-submit{position:relative;width:100%;padding:.78rem;border:none;border-radius:14px;background:linear-gradient(135deg,#e11d48,#be123c);color:#fff;font-weight:700;font-size:.94rem;letter-spacing:-.01em;cursor:pointer;box-shadow:0 6px 18px #e11d4847;transition:all .18s cubic-bezier(.16,1,.3,1)}.login-submit:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 8px 24px #e11d4859}.login-submit:active:not(:disabled){transform:scale(.98)}.login-submit.loading span{visibility:hidden}.login-submit.loading:after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.login-foot{margin:14px 0 0;text-align:center;font-size:.72rem;color:#86868b;line-height:1.4}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{display:none}#north-compass{top:68px!important;right:12px!important;width:38px;height:38px;z-index:5;background:#ffffffeb;backdrop-filter:blur(14px);border-radius:50%;box-shadow:0 2px 8px #00000014;border:1px solid rgba(0,0,0,.08);cursor:pointer;transition:transform .15s ease}#north-compass:hover{transform:scale(1.08)}#map-tools{position:absolute;top:116px!important;right:12px;display:flex;flex-direction:column;gap:8px;z-index:5}.map-tool-btn{width:38px;height:38px;border-radius:12px;border:1px solid rgba(0,0,0,.08);background:#ffffffeb;backdrop-filter:blur(14px);color:#1d1d1f;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s ease;box-shadow:0 2px 8px #0000000f}.map-tool-btn:hover{border-color:#e11d484d;color:#e11d48;background:#fff;transform:translateY(-1px);box-shadow:0 4px 14px #e11d4826}.map-tool-btn svg{width:17px;height:17px}@media (max-width: 520px){#north-compass{top:62px!important;right:8px!important}#map-tools{top:108px!important;right:8px}}.tab{min-width:0;padding-left:.15rem;padding-right:.15rem}@media (max-width:430px){.tab{font-size:.6rem}.tab svg{width:15px;height:15px}}.punto-pin{width:18px;height:18px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:linear-gradient(135deg,#e74c3c,#c0392b);border:2px solid #fff;box-shadow:0 3px 10px #00000073;cursor:pointer;transition:transform .15s ease}.punto-pin:after{content:"";position:absolute;inset:4px;border-radius:50%;background:#ffffffd9}.punto-pin:hover{transform:rotate(-45deg) scale(1.25);box-shadow:0 5px 16px #e74c3c8c}.tabs .tab.hidden{display:none}.ficha-media-block{margin:.55rem 0 .2rem}.ficha-media-block audio,.ficha-media-block video{width:100%;border-radius:10px;display:block;background:#000}.ficha-media-label{font-size:.68rem;color:#8fa0b5;display:block;margin-top:2px}.ficha-docs{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.ficha-doc-link{font-size:.74rem;padding:.32rem .6rem;border-radius:8px;background:#c0392b24;color:#ffb0a6;text-decoration:none;border:1px solid rgba(192,57,43,.35);transition:background .15s}.ficha-doc-link:hover{background:#c0392b47}.bim-popup-historia{font-size:.78rem;color:#c9d4e2;line-height:1.45;margin:.5rem 0 0;max-height:110px;overflow-y:auto}.bim-popup-noimg{display:flex;align-items:center;justify-content:center;font-size:2.6rem;background:linear-gradient(135deg,#22304a,#16202e);height:150px}.ficha-actions-grid{display:flex;gap:.45rem;flex-wrap:wrap;margin:.35rem 0 .55rem}.ficha-action-btn{flex:1;min-width:62px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.52rem .3rem;border-radius:12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.11);color:#e8eef6;font-size:.64rem;cursor:pointer;transition:all .16s ease}.ficha-action-btn:hover{background:#e74c3c2e;border-color:#e74c3c80;transform:translateY(-1px)}.ficha-action-btn .fab-icon{font-size:1.08rem;line-height:1}#media-lightbox{position:fixed;inset:0;z-index:20000;background:#040810ed;backdrop-filter:blur(14px);display:none;flex-direction:column;align-items:center;justify-content:center;padding:60px 16px 16px}#media-lightbox.open{display:flex}#media-lightbox .lb-close{position:absolute;top:14px;right:18px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:#0f172ad9;color:#fff;font-size:1.1rem;cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;transition:background .18s}#media-lightbox .lb-close:hover{background:#dc3c32cc}#media-lightbox .lb-carousel{display:flex;align-items:center;gap:12px;width:100%;max-width:min(96vw,960px);flex:1;min-height:0}#media-lightbox .lb-slide-wrap{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}#media-lightbox .lb-content{width:100%;display:flex;align-items:center;justify-content:center}#media-lightbox .lb-arrow{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.28);background:#0f172abf;color:#fff;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s;user-select:none}#media-lightbox .lb-arrow:hover{background:#6366f1d9;transform:scale(1.1)}#media-lightbox .lb-photo-slide{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:100%}#media-lightbox .lb-photo-img{max-width:min(90vw,860px);max-height:65vh;border-radius:14px;object-fit:contain;box-shadow:0 8px 40px #0000008c}#media-lightbox .lb-video-slide{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:100%}#media-lightbox .lb-video-el{max-width:min(90vw,860px);max-height:65vh;border-radius:14px;background:#000;display:block}#media-lightbox .lb-caption{color:#cbd5e1;font-size:.82rem;text-align:center;background:#00000073;border-radius:8px;padding:4px 14px;max-width:600px}#media-lightbox .lb-err{color:#fc8181;font-size:.85rem;margin:8px 0}#media-lightbox .lb-counter{color:#fff9;font-size:.85rem;margin:8px 0 4px;letter-spacing:.04em}#media-lightbox .lb-thumbs{display:flex;gap:8px;overflow-x:auto;max-width:min(96vw,860px);padding:6px 4px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}#media-lightbox .lb-thumb{flex-shrink:0;width:64px;height:48px;border-radius:8px;overflow:hidden;border:2px solid transparent;cursor:pointer;padding:0;background:none;opacity:.55;transition:opacity .18s,border-color .18s,transform .18s}#media-lightbox .lb-thumb img{width:100%;height:100%;object-fit:cover;display:block}#media-lightbox .lb-thumb:hover{opacity:.85;transform:scale(1.05)}#media-lightbox .lb-thumb.active{opacity:1;border-color:#6366f1;transform:scale(1.07)}@media (max-width:520px){#media-lightbox .lb-arrow{width:36px;height:36px;font-size:1rem}#media-lightbox .lb-photo-img,#media-lightbox .lb-video-el{max-height:52vh;border-radius:10px}#media-lightbox .lb-thumb{width:52px;height:38px}}.lb-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;max-width:960px;width:100%}.lb-photo-card{background:#ffffff0d;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.lb-photo-card img{width:100%;height:220px;object-fit:cover;display:block}.lb-photo-caption{display:block;padding:8px 12px;font-size:.78rem;color:#e2e8f0;background:#0006}#media-lightbox.lb-pdf-mode{padding:48px 12px 14px}#media-lightbox.lb-pdf-mode .lb-carousel{max-width:min(98vw,1560px);width:100%;height:calc(100vh - 64px);max-height:calc(100vh - 64px);margin:0 auto}#media-lightbox.lb-pdf-mode .lb-slide-wrap,#media-lightbox.lb-pdf-mode .lb-content{height:100%;width:100%;align-items:stretch}.lb-pdf-viewer{display:flex;width:100%;height:100%;background:#0f172a;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 50px #000000b3}.lb-pdf-sidebar{width:320px;min-width:260px;max-width:340px;flex-shrink:0;background:#090e1a;border-right:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column}.lb-pdf-sidebar-header{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;background:#ffffff05}.lb-pdf-sidebar-title{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:700;color:#f1f5f9;letter-spacing:-.01em}.lb-pdf-icon-book{font-size:1.1rem}.lb-pdf-count-badge{background:#6366f12e;border:1px solid rgba(99,102,241,.4);color:#a5b4fc;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:20px}.lb-pdf-search-box{padding:10px 14px 4px}.lb-pdf-search-input{width:100%;padding:8px 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#e2e8f0;font-size:.8rem;outline:none;transition:border-color .2s,background .2s}.lb-pdf-search-input:focus{border-color:#6366f1;background:#ffffff17}.lb-pdf-list-wrap{flex:1;overflow-y:auto;padding:8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.lb-pdf-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.lb-pdf-row{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:10px;border:1px solid transparent;background:#ffffff05;transition:all .18s ease}.lb-pdf-row:hover{background:#ffffff12}.lb-pdf-row.active{background:#6366f129;border-color:#6366f173;box-shadow:0 2px 8px #6366f133}.lb-pdf-btn{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:none;color:inherit;cursor:pointer;padding:6px 4px;text-align:left}.lb-pdf-item-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:#ffffff14;font-size:.72rem;font-weight:700;color:#94a3b8;flex-shrink:0}.lb-pdf-row.active .lb-pdf-item-num{background:#6366f1;color:#fff}.lb-pdf-item-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lb-pdf-item-title{font-size:.82rem;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-pdf-row.active .lb-pdf-item-title{color:#fff;font-weight:600}.lb-pdf-item-format{font-size:.65rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.lb-pdf-row.active .lb-pdf-item-format{color:#818cf8}.lb-pdf-item-ext{padding:6px;border-radius:6px;color:#94a3b8;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background .15s,color .15s}.lb-pdf-item-ext:hover{background:#ffffff1a;color:#fff}.lb-pdf-main{flex:1;min-width:0;display:flex;flex-direction:column;background:#131b2e}.lb-pdf-header{height:52px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);background:#0f172ab3;backdrop-filter:blur(8px)}.lb-pdf-header-info{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.lb-pdf-badge-icon{font-size:1.15rem}.lb-pdf-header-title{font-size:.88rem;font-weight:600;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:500px}.lb-pdf-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.lb-pdf-action-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:.76rem;font-weight:500;text-decoration:none;color:#cbd5e1;background:#ffffff12;border:1px solid rgba(255,255,255,.12);transition:all .16s ease}.lb-pdf-action-btn:hover{background:#ffffff24;color:#fff;border-color:#ffffff38}.lb-pdf-action-btn.primary{background:#4f46e5;color:#fff;border-color:#6366f1}.lb-pdf-action-btn.primary:hover{background:#4338ca}.lb-pdf-frame-container{flex:1;min-height:0;width:100%;position:relative;background:#1e293b}.lb-pdf-iframe{width:100%;height:100%;border:none;display:block;background:#334155}@media (max-width: 768px){#media-lightbox.lb-pdf-mode{padding:44px 6px 6px}#media-lightbox.lb-pdf-mode .lb-carousel{height:calc(100vh - 54px);max-height:calc(100vh - 54px)}.lb-pdf-viewer{flex-direction:column;border-radius:12px}.lb-pdf-sidebar{width:100%;max-width:100%;height:140px;max-height:140px;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}.lb-pdf-header-title{max-width:180px}.lb-pdf-action-btn span{display:none}.lb-pdf-action-btn{padding:6px}}#media-lightbox.lb-audio-mode{padding:42px 14px 14px}#media-lightbox.lb-audio-mode .lb-carousel{max-width:min(96vw,920px);width:100%;height:auto;max-height:calc(100vh - 60px);margin:0 auto}#media-lightbox.lb-audio-mode .lb-slide-wrap,#media-lightbox.lb-audio-mode .lb-content{width:100%;align-items:stretch}.lb-audio-viewer{display:flex;flex-direction:column;width:100%;background:#0b1324;border-radius:20px;overflow:hidden;border:1px solid rgba(16,185,129,.25);box-shadow:0 24px 60px #000000bf,0 0 40px #10b9811f}.lb-audio-header{padding:16px 20px;background:#0f172ad9;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:12px}.lb-audio-header-left{display:flex;align-items:center;gap:12px;min-width:0}.lb-audio-header-icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#10b98140,#065f4659);border:1px solid rgba(16,185,129,.4);display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0;box-shadow:0 0 16px #10b98133}.lb-audio-header-badge{font-size:.68rem;font-weight:700;color:#34d399;text-transform:uppercase;letter-spacing:.06em}.lb-audio-header-title{margin:2px 0 0;font-size:1.05rem;font-weight:700;color:#f8fafc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-audio-header-code{font-size:.82rem;font-weight:600;color:#94a3b8;background:#ffffff14;padding:2px 8px;border-radius:6px;margin-left:6px}.lb-audio-count-badge{background:#10b9812e;border:1px solid rgba(16,185,129,.35);color:#6ee7b7;font-size:.74rem;font-weight:600;padding:4px 10px;border-radius:20px;white-space:nowrap}.lb-audio-main-layout{display:flex;gap:0;min-height:380px}.lb-audio-player-deck{flex:1.2;min-width:0;padding:24px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 50% 20%,rgba(16,185,129,.08) 0%,transparent 70%)}.lb-audio-card-featured{background:#0f172abf;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:22px;box-shadow:0 12px 32px #0006}.lb-audio-waveform-deck{display:flex;align-items:center;justify-content:center;gap:5px;height:60px;padding:10px 0;margin-bottom:16px;background:#00000040;border-radius:12px;border:1px solid rgba(255,255,255,.04)}.lb-wave-bar{width:5px;height:12px;border-radius:4px;background:#10b98159;transition:height .15s ease,background .15s ease}.lb-audio-waveform-deck.is-playing .lb-wave-bar{background:linear-gradient(180deg,#34d399,#059669);animation:soundWave .8s ease-in-out infinite alternate}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(1){animation-delay:.1s;height:18px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(2){animation-delay:.35s;height:32px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(3){animation-delay:.15s;height:44px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(4){animation-delay:.5s;height:26px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(5){animation-delay:.2s;height:38px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(6){animation-delay:.4s;height:50px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(7){animation-delay:.25s;height:34px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(8){animation-delay:.6s;height:42px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(9){animation-delay:.18s;height:48px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(10){animation-delay:.45s;height:28px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(11){animation-delay:.3s;height:40px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(12){animation-delay:.55s;height:32px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(13){animation-delay:.22s;height:46px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(14){animation-delay:.48s;height:24px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(15){animation-delay:.12s;height:36px}.lb-audio-waveform-deck.is-playing .lb-wave-bar:nth-child(16){animation-delay:.38s;height:20px}@keyframes soundWave{0%{transform:scaleY(.4)}to{transform:scaleY(1.3)}}.lb-audio-active-meta{margin-bottom:14px}.lb-audio-track-tag{font-size:.68rem;font-weight:700;color:#34d399;text-transform:uppercase;letter-spacing:.05em}.lb-audio-active-title{margin:4px 0 2px;font-size:1.15rem;font-weight:700;color:#fff}.lb-audio-active-sub{margin:0;font-size:.76rem;color:#94a3b8}.lb-audio-element-wrap{margin-bottom:16px}.lb-audio-element-wrap audio{filter:invert(.9) hue-rotate(90deg);border-radius:10px}.lb-audio-toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);flex-wrap:wrap}.lb-audio-speed-chips{display:flex;align-items:center;gap:5px}.lb-speed-tag{font-size:.72rem;color:#94a3b8;margin-right:4px}.lb-speed-chip{padding:3px 8px;border-radius:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#cbd5e1;font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s ease}.lb-speed-chip:hover{background:#ffffff24;color:#fff}.lb-speed-chip.active{background:#10b981;border-color:#34d399;color:#042f1a;font-weight:700}.lb-audio-btns-group{display:flex;align-items:center;gap:8px}.lb-audio-action-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:.76rem;font-weight:600;text-decoration:none;color:#cbd5e1;background:#ffffff14;border:1px solid rgba(255,255,255,.14);transition:all .15s ease}.lb-audio-action-btn:hover{background:#ffffff29;color:#fff}.lb-audio-action-btn.primary{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#34d399}.lb-audio-action-btn.primary:hover{background:linear-gradient(135deg,#059669,#047857)}.lb-audio-playlist-panel{width:320px;min-width:260px;background:#0a101ef2;border-left:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column}.lb-audio-playlist-header{padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:8px;font-size:.84rem;color:#f1f5f9;background:#ffffff05}.lb-audio-playlist-list{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px}.lb-audio-item-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:10px;border:1px solid transparent;background:#ffffff05;transition:all .16s ease}.lb-audio-item-row:hover{background:#ffffff0f}.lb-audio-item-row.active{background:#10b98126;border-color:#10b98166}.lb-audio-item-click{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:none;color:inherit;cursor:pointer;padding:6px 4px;text-align:left}.lb-audio-item-idx{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:#ffffff14;font-size:.72rem;font-weight:700;color:#94a3b8;flex-shrink:0}.lb-audio-item-row.active .lb-audio-item-idx{background:#10b981;color:#042f1a}.lb-audio-item-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lb-audio-item-title{font-size:.82rem;font-weight:600;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-audio-item-row.active .lb-audio-item-title{color:#fff}.lb-audio-item-fmt{font-size:.65rem;color:#64748b}.lb-audio-item-playicon{font-size:.82rem;color:#10b981;flex-shrink:0}.lb-audio-item-dl-btn{padding:6px;border-radius:6px;color:#94a3b8;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:all .15s ease}.lb-audio-item-dl-btn:hover{background:#ffffff1a;color:#34d399}.ficha-audios-list{display:flex;flex-direction:column;gap:8px}.ficha-audio-item{background:#0f172a99;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 12px;transition:border-color .2s ease}.ficha-audio-item:hover{border-color:#10b98166}.ficha-audio-header-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ficha-audio-badge{font-size:.72rem;font-weight:700;color:#34d399;background:#10b98126;padding:3px 7px;border-radius:6px;white-space:nowrap}@media (max-width: 768px){.lb-audio-main-layout{flex-direction:column}.lb-audio-playlist-panel{width:100%;min-width:100%;border-left:none;border-top:1px solid rgba(255,255,255,.08);max-height:200px}.lb-audio-player-deck{padding:14px}}.bim-pin2d{position:relative;display:inline-flex;flex-direction:column;align-items:center;cursor:pointer;pointer-events:auto;user-select:none;filter:drop-shadow(0 3px 8px rgba(0,0,0,.45));transition:filter .18s ease,transform .18s cubic-bezier(.34,1.56,.64,1);transform-origin:50% 100%}.bim-pin2d:hover{filter:drop-shadow(0 6px 16px rgba(0,0,0,.55));transform:scale(1.12) translateY(-3px)}.pin2d-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px 4px 7px;border-radius:20px;border:1.5px solid rgba(255,255,255,.92);white-space:nowrap;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,sans-serif;color:#fff;font-weight:700;font-size:.72rem;letter-spacing:.02em;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.bim-pin2d.pin-bueno .pin2d-chip{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 14px #10b98173}.bim-pin2d.pin-regular .pin2d-chip{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 14px #f59e0b73}.bim-pin2d.pin-malo .pin2d-chip{background:linear-gradient(135deg,#f43f5e,#be123c);box-shadow:0 4px 14px #f43f5e73}.pin2d-icon{font-size:.85rem;line-height:1}.pin2d-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;letter-spacing:.05em;color:#fff}.pin2d-tail{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;margin-top:-1px}.bim-pin2d.pin-bueno .pin2d-tail{border-top:9px solid #059669}.bim-pin2d.pin-regular .pin2d-tail{border-top:9px solid #d97706}.bim-pin2d.pin-malo .pin2d-tail{border-top:9px solid #be123c}.pin-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);background:#0f172af0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#f8fafc;font-size:.68rem;font-weight:600;white-space:nowrap;padding:4px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.16);box-shadow:0 4px 14px #00000080;pointer-events:none;opacity:0;transition:opacity .15s ease,transform .15s ease;z-index:200}.pin-tooltip.visible{opacity:1;transform:translate(-50%) translateY(0)}.s123-popup{max-width:360px}.bim-popup-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.btn-popup-edit-quick{background:#e74c3c26;border:1px solid rgba(231,76,60,.4);color:#ff8b7d;font-size:.72rem;font-weight:600;padding:4px 8px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:all .15s}.btn-popup-edit-quick:hover{background:#e74c3c;color:#fff;transform:translateY(-1px)}.bim-badge-estado{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:12px;backdrop-filter:blur(4px)}.estado-bueno{background:#27ae60d9;color:#fff}.estado-regular{background:#f39c12d9;color:#fff}.estado-malo{background:#c0392bd9;color:#fff}.s123-popup-nav{display:flex;background:#ffffff0f;border-radius:8px;padding:2px;margin:8px 0;gap:2px}.s123-tab-btn{flex:1;background:transparent;border:none;color:var(--clr-text-2, #94a3b8);font-size:.67rem;font-weight:600;padding:5px 2px;border-radius:6px;cursor:pointer;transition:all .15s}.s123-tab-btn.active{background:#ffffff24;color:#fff;box-shadow:0 1px 4px #0003}.s123-tab-panel{display:none}.s123-tab-panel.active{display:block;animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.s123-grid-props{display:flex;flex-direction:column;gap:4px;font-size:.72rem}.s123-prop-row{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.05);padding:3px 0}.s123-prop-row .s123-k{color:#94a3b8;font-weight:500}.s123-prop-row .s123-v{color:#f1f5f9;font-weight:600;text-align:right}.s123-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.75rem}.s123-section-title{font-size:.7rem;color:#94a3b8;font-weight:600;margin:6px 0 4px}.s123-chips-wrap{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.s123-chip{font-size:.68rem;padding:2px 7px;border-radius:6px;background:#ffffff14;color:#cbd5e1}.s123-chip.danger{background:#e74c3c2e;color:#ff9b91;border:1px solid rgba(231,76,60,.3)}.s123-chip.highlight{background:#3498db2e;color:#8ec5fc;border:1px solid rgba(52,152,219,.3)}.s123-obs-danos{font-size:.72rem;background:#00000040;border-left:2px solid #e74c3c;padding:6px 8px;border-radius:4px;margin-top:6px}.s123-obs-danos p{margin:2px 0 0;color:#cbd5e1}.s123-historia-box{background:#0003;border-radius:8px;padding:8px 10px;margin:6px 0;max-height:100px;overflow-y:auto}.s123-historia-text{font-size:.75rem;line-height:1.4;color:#cbd5e1;margin:0}.s123-empty-hint{font-size:.7rem;color:#64748b;font-style:italic;margin:4px 0}.whatsapp-audio-player{display:flex;align-items:center;gap:10px;background:#10b9811f;border:1px solid rgba(16,185,129,.3);border-radius:12px;padding:8px 12px;margin:8px 0}.wa-audio-icon{font-size:1.3rem}.wa-audio-content{flex:1}.wa-audio-title{font-size:.7rem;font-weight:600;color:#6ee7b7;margin-bottom:3px}.whatsapp-audio-player audio{height:32px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.ficha-mode-bar{display:flex;gap:4px;background:#00000040;border-radius:10px;padding:4px;margin-bottom:12px}.ficha-mode-btn{flex:1;border:none;background:transparent;color:#94a3b8;font-size:.7rem;font-weight:600;padding:6px 4px;border-radius:8px;cursor:pointer;transition:all .18s;white-space:nowrap}.ficha-mode-btn.active{background:var(--clr-primary, #c0392b);color:#fff;box-shadow:0 2px 6px #c0392b66}.upload-zone-compact{border:2px dashed rgba(255,255,255,.18);border-radius:12px;padding:14px 10px;text-align:center;background:#ffffff05;transition:all .2s;cursor:pointer}.upload-zone-compact.dragover,.upload-zone-compact:hover{border-color:#c0392b;background:#c0392b14}.stats-preview-box{background:#0003;border-radius:10px;padding:8px 12px;margin-top:8px}.stats-badge-row{display:flex;gap:8px;align-items:center}.badge-count{font-size:.78rem;font-weight:700;color:#4ade80}.badge-tag{font-size:.72rem;color:#94a3b8}.ifc-scroll-picker{max-height:150px;overflow-y:auto;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:8px;margin:6px 0;display:flex;flex-direction:column}.ifc-picker-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .15s}.ifc-picker-item:last-child{border-bottom:none}.ifc-picker-item:hover{background:#ffffff14}.ifc-picker-item.selected{background:#c0392b38;border-left:3px solid #c0392b}.ifc-item-info{flex:1;display:flex;flex-direction:column}.ifc-item-info strong{font-size:.75rem;color:#f8fafc}.ifc-item-info small{font-size:.66rem;color:#94a3b8}.ifc-item-check{color:#4ade80;font-weight:700}.selected-ifc-card{display:flex;align-items:center;gap:8px;background:#c0392b26;border:1px solid rgba(192,57,43,.35);padding:6px 10px;border-radius:8px;margin-top:6px;font-size:.72rem}.selected-punto-card{background:linear-gradient(135deg,#1e293bb3,#0f172acc);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px 14px;margin-top:8px}.punto-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.punto-card-code{font-family:monospace;font-size:.8rem;font-weight:700;color:#ff8b7d}.punto-card-ifc{font-size:.68rem;background:#ffffff1a;padding:2px 6px;border-radius:4px;color:#94a3b8}.punto-card-title{font-size:.88rem;font-weight:700;color:#fff}.punto-card-sub{font-size:.72rem;color:#94a3b8;margin-top:2px}.btn-remove-media{background:transparent;border:none;color:#ef4444;cursor:pointer;padding:2px 6px;font-size:.75rem;border-radius:4px;transition:background .15s}.btn-remove-media:hover{background:#ef444433}.s123-apple-popup-wrapper{z-index:9999!important}.s123-apple-popup-wrapper .maplibregl-popup-content{background:#fffffff5!important;backdrop-filter:blur(28px) saturate(180%)!important;-webkit-backdrop-filter:blur(28px) saturate(180%)!important;border:1px solid rgba(0,0,0,.08)!important;border-radius:22px!important;padding:0!important;box-shadow:0 24px 52px -12px #0003,0 0 0 1px #0000000a,inset 0 1px #ffffffe6!important;color:#1d1d1f!important;overflow:hidden!important;max-width:370px!important;z-index:9999!important}.s123-apple-popup-wrapper .maplibregl-popup-close-button{top:10px;right:12px;font-size:.9rem;color:#4b5563;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.08);box-shadow:0 2px 6px #0000001a;transition:all .18s ease;z-index:10000}.s123-apple-popup-wrapper .maplibregl-popup-close-button:hover{background:#e11d48;color:#fff;transform:scale(1.1);border-color:#be123c}.s123-apple-popup-wrapper .maplibregl-popup-tip{border-top-color:#fffffff5!important}.s123-apple-popup{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,sans-serif;color:#1d1d1f}.s123-hero-frame{position:relative;width:100%;height:148px;overflow:hidden;background:#f1f5f9}.s123-hero-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.s123-hero-frame:hover .s123-hero-img{transform:scale(1.06)}.s123-hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(255,255,255,.8) 0%,rgba(255,255,255,.1) 45%,transparent 100%)}.s123-hero-caption{position:absolute;bottom:8px;left:14px;font-size:.68rem;font-weight:600;color:#1f2937;background:#ffffffe6;backdrop-filter:blur(6px);padding:2px 8px;border-radius:10px;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 4px #0000000f}.s123-hero-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.s123-hero-placeholder .hero-icon{font-size:2.2rem}.s123-hero-placeholder .hero-subtext{font-size:.72rem;color:#64748b;font-weight:600}.s123-floating-status{position:absolute;top:10px;left:12px;z-index:5}.s123-ifc-tag{position:absolute;top:10px;right:44px;font-size:.65rem;font-weight:600;color:#1e293b;background:#ffffffeb;backdrop-filter:blur(8px);padding:3px 8px;border-radius:12px;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 4px #00000014}.s123-apple-badge{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:14px;backdrop-filter:blur(12px);letter-spacing:.01em;box-shadow:0 1px 3px #0000000d}.s123-apple-badge .badge-dot{width:6px;height:6px;border-radius:50%}.s123-apple-badge.estado-bueno{background:#dcfce7;color:#15803d;border:1px solid #86efac}.s123-apple-badge.estado-bueno .badge-dot{background:#16a34a}.s123-apple-badge.estado-regular{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.s123-apple-badge.estado-regular .badge-dot{background:#d97706}.s123-apple-badge.estado-malo{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}.s123-apple-badge.estado-malo .badge-dot{background:#dc2626}.s123-apple-badge.estado-neutro{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.s123-apple-badge.estado-neutro .badge-dot{background:#64748b}.s123-header-body{padding:12px 14px 4px}.s123-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.s123-main-title{font-size:1rem;font-weight:700;color:#111827;margin:0;line-height:1.25;letter-spacing:-.01em}.s123-sub-title{font-size:.72rem;color:#6b7280;margin:3px 0 0}.s123-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;color:#be123c;font-weight:700}.btn-apple-quick-edit{display:inline-flex;align-items:center;gap:5px;background:#f3f4f6;border:1px solid #e5e7eb;color:#1f2937;font-size:.7rem;font-weight:600;padding:5px 10px;border-radius:12px;cursor:pointer;transition:all .16s ease;white-space:nowrap}.btn-apple-quick-edit:hover{background:#e11d48;border-color:#be123c;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #e11d4840}.s123-apple-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:6px 14px 8px}.apple-action-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:6px 2px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;transition:all .15s ease;color:#475569}.apple-action-chip.has-media{background:#fff;border-color:#cbd5e1;color:#0f172a;box-shadow:0 1px 3px #0000000a}.apple-action-chip.has-media:hover{background:#f1f5f9;border-color:#e11d48;color:#e11d48;transform:translateY(-1px)}.apple-action-chip.disabled{opacity:.45;cursor:not-allowed}.apple-action-chip .act-icon{font-size:.95rem}.apple-action-chip .act-label{font-size:.62rem;font-weight:600}.apple-voicememo-card{margin:4px 14px 8px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:14px;padding:10px 12px;animation:fadeIn .2s ease}.voicememo-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.voicememo-icon{font-size:1.2rem}.voicememo-info strong{font-size:.74rem;color:#065f46;display:block;font-weight:700}.voicememo-info small{font-size:.65rem;color:#047857}.voicememo-wave{display:flex;align-items:center;gap:3px;height:16px;margin-bottom:6px;padding:0 4px}.voicememo-wave span{flex:1;background:#10b981;border-radius:2px;height:40%;animation:waveAnim 1.2s infinite ease-in-out alternate}.voicememo-wave span:nth-child(2){animation-delay:.15s;height:80%}.voicememo-wave span:nth-child(3){animation-delay:.3s;height:60%}.voicememo-wave span:nth-child(4){animation-delay:.45s;height:100%}.voicememo-wave span:nth-child(5){animation-delay:.2s;height:70%}.voicememo-wave span:nth-child(6){animation-delay:.35s;height:90%}.voicememo-wave span:nth-child(7){animation-delay:.1s;height:50%}.voicememo-wave span:nth-child(8){animation-delay:.25s;height:80%}.voicememo-wave span:nth-child(9){animation-delay:.4s;height:40%}.voicememo-wave span:nth-child(10){animation-delay:.15s;height:60%}@keyframes waveAnim{0%{transform:scaleY(.4);opacity:.6}to{transform:scaleY(1);opacity:1}}.s123-segmented-tabs{display:flex;background:#f1f3f5;border-radius:12px;padding:3px;margin:0 14px 8px;gap:2px;border:1px solid rgba(0,0,0,.04)}.seg-tab{flex:1;background:transparent;border:none;color:#6b7280;font-size:.68rem;font-weight:600;padding:6px 2px;border-radius:9px;cursor:pointer;transition:all .18s ease}.seg-tab.active{background:#fff;color:#111827;box-shadow:0 2px 6px #00000014}.s123-panels-container{padding:0 14px 14px;max-height:180px;overflow-y:auto}.s123-panel{display:none}.s123-panel.active{display:block;animation:fadeIn .18s ease}.apple-story-card{position:relative;background:#f9fafb;border-radius:12px;padding:10px 12px 10px 24px;border:1px solid #e5e7eb;margin-bottom:8px}.story-quote-icon{position:absolute;top:4px;left:8px;font-size:1.4rem;color:#e11d48;font-family:Georgia,serif;line-height:1}.story-body{font-size:.74rem;line-height:1.45;color:#374151;margin:0}.apple-empty-note{font-size:.72rem;color:#9ca3af;font-style:italic;margin:4px 0 8px}.apple-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.meta-item{background:#f9fafb;border-radius:8px;padding:6px 8px;border:1px solid #e5e7eb}.meta-k{display:block;font-size:.62rem;color:#6b7280}.meta-v{display:block;font-size:.74rem;font-weight:600;color:#111827;margin-top:1px}.apple-props-list{display:flex;flex-direction:column;gap:5px}.apple-prop-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid #f3f4f6;font-size:.73rem}.apple-prop-row span{color:#6b7280;font-weight:500}.apple-prop-row strong{color:#111827;font-weight:600;text-align:right}.apple-section-header{font-size:.7rem;font-weight:600;color:#6b7280;margin-bottom:6px}.apple-chips-wrap{display:flex;flex-wrap:wrap;gap:4px}.apple-chip{font-size:.68rem;padding:3px 8px;border-radius:8px;font-weight:500}.chip-danos{background:#fee2e2;border:1px solid #fecaca;color:#b91c1c}.chip-patrimonio{background:#dbeafe;border:1px solid #bfdbfe;color:#1d4ed8}.apple-empty-tag{font-size:.7rem;color:#9ca3af;font-style:italic}.apple-obs-box{background:#fef2f2;border-left:2px solid #e11d48;border-radius:4px;padding:6px 8px;margin-top:8px;font-size:.72rem}.apple-obs-box strong{color:#991b1b;font-size:.68rem}.apple-obs-box p{margin:2px 0 0;color:#374151}.apple-inline-zone{min-height:0;transition:all .2s ease}.s123-status-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.apple-timeline-list{display:flex;flex-direction:column;gap:10px;max-height:220px;overflow-y:auto;padding-right:4px}.apple-timeline-list::-webkit-scrollbar{width:4px}.apple-timeline-list::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.apple-timeline-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.apple-timeline-item.actual{background:#f0fdf4;border-color:#bbf7d0}.timeline-header-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.timeline-year-badge{font-size:.72rem;font-weight:700;color:#0f172a;background:#0000000f;padding:2px 6px;border-radius:6px}.timeline-desc{font-size:.68rem;color:#475569;margin:2px 0 0;line-height:1.35;font-style:italic}.timeline-obs{font-size:.68rem;color:#991b1b;background:#fef2f2;border-left:2px solid #ef4444;padding:3px 6px;border-radius:3px;margin:2px 0 0}.timeline-photos{display:flex;gap:4px;margin-top:4px;overflow-x:auto}.timeline-thumb{width:44px;height:44px;object-fit:cover;border-radius:6px;border:1px solid #cbd5e1}.geojson-modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:16px;opacity:0;pointer-events:none;transition:opacity .24s cubic-bezier(.16,1,.3,1)}.geojson-modal-overlay.gm-visible{opacity:1;pointer-events:all}.geojson-modal-overlay.hidden{display:none}.geojson-modal-card{background:#fffffffa;backdrop-filter:blur(32px) saturate(1.8);-webkit-backdrop-filter:blur(32px) saturate(1.8);border:1px solid rgba(0,0,0,.08);border-radius:26px;box-shadow:0 32px 64px -16px #00000038,0 0 0 1px #0000000a,inset 0 1px #ffffffe6;width:100%;max-width:540px;max-height:90vh;overflow-y:auto;color:#1d1d1f;transform:translateY(16px) scale(.96);transition:transform .24s cubic-bezier(.16,1,.3,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,sans-serif}.gm-visible .geojson-modal-card{transform:translateY(0) scale(1)}.geojson-modal-card::-webkit-scrollbar{width:4px}.geojson-modal-card::-webkit-scrollbar-track{background:transparent}.geojson-modal-card::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.gm-header{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 0;margin-bottom:16px}.gm-title{display:flex;align-items:center;gap:12px}.gm-icon{font-size:1.6rem;line-height:1}.gm-title strong{display:block;font-size:1.05rem;font-weight:700;color:#111827;letter-spacing:-.01em}.gm-title small{font-size:.72rem;color:#6b7280}.gm-close{width:30px;height:30px;border-radius:50%;background:#f3f4f6;border:1px solid rgba(0,0,0,.06);color:#6b7280;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .16s ease;flex-shrink:0}.gm-close:hover{background:#fee2e2;color:#b91c1c}.gm-drop-zone{margin:0 22px 14px;border:2px dashed #d1d5db;border-radius:18px;background:#f9fafb;transition:all .2s ease;overflow:hidden}.gm-drop-zone.dragover{border-color:#e11d48;background:#fff1f2;box-shadow:0 0 0 4px #e11d481f}.gm-drop-inner{display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 20px;text-align:center}.gm-drop-icon{font-size:2.4rem;line-height:1;opacity:.9}.gm-drop-label{font-size:.82rem;color:#6b7280;margin:0}.gm-drop-label strong{color:#111827}.btn-gm-select{background:linear-gradient(135deg,#e11d48,#be123c);color:#fff;border:none;padding:8px 18px;border-radius:12px;font-size:.78rem;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #e11d4847;transition:all .16s ease}.btn-gm-select:hover{transform:translateY(-1px);box-shadow:0 6px 16px #e11d4866}.gm-plantilla-link{font-size:.72rem;color:#6b7280;text-decoration:none;transition:color .14s ease}.gm-plantilla-link:hover{color:#e11d48}.gm-file-loaded{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#ecfdf5;border-top:1px solid #a7f3d0}.gm-file-icon{font-size:1.4rem}.gm-file-info{flex:1;min-width:0}.gm-file-info strong{display:block;font-size:.78rem;color:#065f46;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gm-file-info span{font-size:.68rem;color:#047857}.gm-clear-file{background:#fee2e2;border:1px solid #fca5a5;color:#b91c1c;width:24px;height:24px;border-radius:50%;font-size:.7rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .14s ease}.gm-clear-file:hover{background:#fecaca}.gm-attrs-preview{margin:0 22px 14px}.gm-attrs-label{font-size:.68rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.gm-attrs-chips{display:flex;flex-wrap:wrap;gap:4px}.gm-attr-chip{font-size:.67rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;padding:2px 7px;border-radius:6px}.gm-ifc-section{margin:0 22px 14px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;padding:14px}.gm-section-label{font-size:.72rem;font-weight:700;color:#4b5563;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.gm-ifc-options{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.gm-radio-label{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:.75rem;color:#374151;font-weight:500}.gm-radio-label input{accent-color:#e11d48;cursor:pointer}.gm-input{width:100%;background:#fff;border:1px solid #d1d5db;border-radius:11px;padding:8px 12px;color:#111827;font-size:.8rem;outline:none;box-sizing:border-box;transition:border-color .15s ease}.gm-input:focus{border-color:#e11d48;box-shadow:0 0 0 3px #e11d4826}.gm-input::placeholder{color:#9ca3af}.gm-ifc-list{max-height:160px;overflow-y:auto;margin-top:6px;display:flex;flex-direction:column;gap:3px}.gm-ifc-list::-webkit-scrollbar{width:3px}.gm-ifc-list::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.gm-ifc-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;cursor:pointer;transition:all .14s ease;border:1px solid transparent}.gm-ifc-item:hover{background:#f3f4f6;border-color:#e5e7eb}.gm-ifc-item.selected{background:#fff1f2;border-color:#fecdd3}.gm-ifc-item-icon{font-size:1rem}.gm-ifc-item-info{flex:1;min-width:0}.gm-ifc-item-info strong{display:block;font-size:.76rem;color:#111827}.gm-ifc-item-info small{font-size:.66rem;color:#6b7280}.gm-ifc-check{font-size:.8rem;color:#16a34a;font-weight:700}.gm-list-empty{font-size:.72rem;color:#9ca3af;font-style:italic;padding:8px 0}.gm-selected-ifc{display:flex;align-items:center;gap:8px;margin-top:8px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;padding:6px 10px;font-size:.76rem;color:#065f46}.gm-sel-icon{font-size:1rem}.gm-selected-ifc>span:nth-child(2){flex:1}.gm-desel-btn{background:#fee2e2;border:1px solid #fca5a5;color:#b91c1c;width:20px;height:20px;border-radius:50%;font-size:.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-gm-ifc-file{background:#fff;border:1px solid #d1d5db;color:#374151;padding:7px 12px;border-radius:10px;font-size:.74rem;font-weight:600;cursor:pointer;width:100%;transition:all .14s ease}.btn-gm-ifc-file:hover{background:#f9fafb;border-color:#9ca3af}.gm-ifc-filename{display:block;font-size:.68rem;color:#6b7280;margin-top:4px}.gm-progress-area{margin:0 22px 14px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;padding:12px 14px}.gm-progress-track{height:6px;background:#e5e7eb;border-radius:99px;overflow:hidden;margin-bottom:6px}.gm-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,#e11d48,#f43f5e);border-radius:99px;transition:width .5s cubic-bezier(.4,0,.2,1)}.gm-progress-msg{font-size:.74rem;color:#4b5563;font-weight:500}.gm-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px 22px;border-top:1px solid #f3f4f6}.btn-gm-cancel{background:#f3f4f6;border:1px solid #e5e7eb;color:#4b5563;padding:9px 18px;border-radius:12px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .14s ease}.btn-gm-cancel:hover{background:#e5e7eb;color:#111827}.btn-gm-import{background:linear-gradient(135deg,#e11d48,#be123c);color:#fff;border:none;padding:9px 22px;border-radius:12px;font-size:.78rem;font-weight:700;cursor:pointer;box-shadow:0 4px 14px #e11d4847;transition:all .16s ease}.btn-gm-import:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 18px #e11d4866}.btn-gm-import:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.point-editor-modal-overlay{position:fixed;inset:0;background:#0006;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:50000;padding:16px;opacity:0;pointer-events:none;transition:opacity .22s ease}.point-editor-modal-overlay.pem-visible{opacity:1;pointer-events:all}.point-editor-modal-card{background:#fffffffa;backdrop-filter:blur(32px) saturate(1.8);-webkit-backdrop-filter:blur(32px) saturate(1.8);border:1px solid rgba(0,0,0,.08);border-radius:24px;width:100%;max-width:660px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 32px 64px -12px #00000038,0 0 0 1px #0000000a;color:#1d1d1f;overflow:hidden;animation:pemPopIn .24s cubic-bezier(.16,1,.3,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,sans-serif}@keyframes pemPopIn{0%{transform:scale(.96) translateY(12px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.pem-header{padding:18px 22px;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;align-items:center;background:#fff}.pem-title-wrap{display:flex;align-items:center;gap:12px}.pem-code-badge{background:linear-gradient(135deg,#e11d48,#be123c);color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;font-size:.85rem;padding:4px 10px;border-radius:10px;box-shadow:0 2px 8px #e11d484d}.pem-title{margin:0;font-size:1.08rem;font-weight:700;color:#111827;letter-spacing:-.01em}.pem-subtitle{margin:2px 0 0;font-size:.74rem;color:#6b7280}.pem-close-btn{background:#f3f4f6;border:1px solid rgba(0,0,0,.06);color:#6b7280;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.85rem;transition:all .16s ease}.pem-close-btn:hover{background:#fee2e2;color:#b91c1c;transform:scale(1.06)}.pem-body{padding:18px 22px;overflow-y:auto;flex:1}.pem-tabs{display:flex;gap:4px;background:#f1f3f5;border-radius:14px;padding:4px;margin-bottom:16px;border:1px solid rgba(0,0,0,.04)}.pem-tab{flex:1;border:none;background:transparent;color:#6b7280;font-size:.74rem;font-weight:600;padding:7px 6px;border-radius:10px;cursor:pointer;transition:all .16s;white-space:nowrap}.pem-tab:hover{color:#111827}.pem-tab.active{background:#fff;color:#111827;box-shadow:0 2px 6px #00000014}.pem-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 580px){.pem-grid-2{grid-template-columns:1fr}.pem-tabs{flex-wrap:wrap}}.pem-section-sub{font-size:.76rem;font-weight:700;color:#374151;margin-bottom:6px}.pem-footer{padding:14px 22px;border-top:1px solid #f3f4f6;display:flex;justify-content:space-between;align-items:center;background:#fff}.element-type-pills{display:flex;gap:.3rem;flex-wrap:wrap;margin:.4rem 0 .5rem;max-height:56px;overflow-y:auto}.element-results-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding-right:2px}.element-results-list::-webkit-scrollbar{width:4px}.element-results-list::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}.element-result{display:flex;align-items:center;gap:.45rem;padding:.4rem .5rem;border-radius:8px;cursor:pointer;transition:background .12s;font-size:.72rem;color:#c8d0dc}.element-result:hover{background:#f1c40f1f}.element-result.highlighted{background:#f1c40f2e;border-left:2px solid #f1c40f}.element-result-icon{width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:.62rem;flex-shrink:0;background:#f1c40f1f;color:#f1c40f;font-weight:700}.element-result-info{flex:1;min-width:0}.element-result-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500;color:#e8eef6}.element-result-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.62rem;color:#8899b0;margin-top:1px}.element-result-model{font-size:.58rem;color:#6b7a90;flex-shrink:0}.element-result-zoom{width:22px;height:22px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:#ffffff0a;color:#8899b0;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .12s}.element-result-zoom:hover{background:#2ecc7126;border-color:#2ecc71;color:#2ecc71}.ficha-foto-cover{display:flex;align-items:center;gap:2px;cursor:pointer;flex-shrink:0}.ficha-foto-cover input{display:none}.cover-star{font-size:1rem;color:#6b7a90;transition:color .15s}.ficha-foto-cover input:checked~.cover-star{color:#f1c40f}.ficha-foto-cover:hover .cover-star{color:#f1c40f}.video-loader-wrap{position:relative;display:flex;align-items:center;justify-content:center;background:#0a0f1a;border-radius:14px;overflow:hidden;min-height:180px}.video-loader-wrap video{width:100%;max-height:50vh;border-radius:14px}.video-spinner{position:absolute;width:40px;height:40px;border:3px solid rgba(255,255,255,.12);border-top-color:#f1c40f;border-radius:50%;animation:spin .8s linear infinite}.video-loading-msg{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:.7rem;color:#8899b0;background:#0009;padding:4px 12px;border-radius:8px;white-space:nowrap}@keyframes spin{to{transform:rotate(360deg)}}.s123-apple-popup-wrapper .maplibregl-popup-content{max-width:460px!important;width:440px;border-radius:18px;padding:0;box-shadow:0 12px 40px #00000073,0 0 0 1px #ffffff14;overflow:hidden}.s123-apple-popup-wrapper .maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:#1a1f2e}.s123-apple-popup-wrapper .maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:#1a1f2e}.s123-hero-frame{height:200px!important}.s123-hero-img{height:200px!important;object-fit:cover}.lb-video-card video{max-height:80vh!important}@media (max-width: 1024px){:root{--sidebar-w: 290px}.topbar{padding:0 .75rem}.topbar-title .topbar-dt{display:none}.catalog-cards-container{max-height:calc(100vh - 380px)}}@media (max-width: 768px){:root{--sidebar-w: 320px;--topbar-h: 52px}.sidebar{position:fixed;top:0;bottom:0;left:0;width:min(85vw,340px)!important;min-width:unset!important;height:100vh;height:100dvh;z-index:2000;transform:translate(0);box-shadow:4px 0 24px #00000040;transition:transform .3s cubic-bezier(.16,1,.3,1)!important}.sidebar.collapsed{transform:translate(-100%)!important;width:min(85vw,340px)!important;min-width:unset!important}.sidebar-overlay{position:fixed;inset:0;background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1999;opacity:0;pointer-events:none;transition:opacity .3s ease}.sidebar-overlay.active{opacity:1;pointer-events:auto}.topbar{left:.5rem;right:.5rem;top:.5rem;padding:0 .5rem;gap:6px;height:48px}.topbar-title{font-size:.78rem}.topbar-title .topbar-bim{font-size:.76rem}.topbar-title .topbar-dt{display:none}.topbar-controls{gap:4px}#btn-quick-geojson span:last-child{display:none}#btn-quick-geojson{padding:.35rem .5rem!important}.statusbar{bottom:.5rem;left:.5rem;right:.5rem;padding:.35rem .6rem;font-size:.66rem;gap:4px;justify-content:center;text-align:center}.statusbar #sb-coords{font-size:.62rem}#map-tools{right:.75rem!important;bottom:3.5rem!important;gap:6px!important}#north-compass{right:.75rem!important;top:3.8rem!important}.geojson-modal-card,.point-editor-modal-card{width:95vw!important;max-width:95vw!important;max-height:92vh!important;max-height:92dvh!important;border-radius:18px!important}.pem-body,.gm-header,.gm-footer,.pem-header,.pem-footer{padding:12px 16px!important}.pem-grid-2{grid-template-columns:1fr!important;gap:8px!important}.s123-apple-popup-wrapper .maplibregl-popup-content{max-width:calc(100vw - 24px)!important;width:calc(100vw - 24px)!important}.s123-hero-frame,.s123-hero-img{height:160px!important}#toast{bottom:3.8rem;left:50%;transform:translate(-50%);width:min(90vw,360px);text-align:center;font-size:.78rem}}@media (max-width: 480px){.logo-title{font-size:.85rem}.logo-sub{font-size:.62rem}.tabs .tab{font-size:.72rem;padding:.45rem}.batch-quick-grid{grid-template-columns:1fr 1fr}.s123-apple-actions{flex-wrap:wrap;gap:4px}.apple-action-chip{flex:1 1 calc(50% - 4px)}}
