.intro-page{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;background:linear-gradient(180deg,#eef4f8,#f8fbfd);color:#112b3b;padding:28px}.intro-page .shell{width:100%;max-width:1080px;margin:0 auto;border-radius:24px;overflow:hidden;box-shadow:0 20px 60px #01405924,0 2px 8px #0000000f;background:#fff;display:grid;grid-template-columns:1.1fr 1fr;min-height:620px}.intro-page .hero{position:relative;background:linear-gradient(145deg,#013d55,#01647a 60%,#0288a0);padding:52px 44px;color:#fff}.intro-page .hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 15% 80%,rgba(255,255,255,.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.06) 0%,transparent 40%);pointer-events:none}.intro-page .hero-content{position:relative;z-index:1;display:flex;flex-direction:column;height:100%}.intro-page .hero-eyebrow{display:inline-flex;width:fit-content;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:#ffffff1f;color:#ffffffeb;font-size:12px;margin-bottom:16px;letter-spacing:.2px}.intro-page .logo{display:inline-flex;align-items:center;gap:10px;margin-bottom:34px}.intro-page .logo img{height:40px}.intro-page .logo span{font-size:20px;font-weight:700;letter-spacing:-.3px}.intro-page h1{font-size:38px;line-height:1.14;letter-spacing:-.5px;margin-bottom:14px;color:#fff}.intro-page .lead{color:#ffffffd6;line-height:1.7;font-size:15px;margin-bottom:28px;max-width:460px}.intro-page .hero-badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}.intro-page .hero-badge{border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;padding:10px}.intro-page .hero-badge .metric{font-size:18px;font-weight:700;color:#fff;line-height:1.1}.intro-page .hero-badge .label{margin-top:3px;color:#ffffffbd;font-size:11px}.intro-page .btn-start{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 30px;font-size:15px;font-weight:600;color:#014059;background:#fff;border:none;border-radius:12px;text-decoration:none;cursor:pointer;box-shadow:0 4px 14px #0000001f;transition:transform .15s ease,box-shadow .15s ease;width:fit-content}.intro-page .btn-start:hover{transform:translateY(-1px);box-shadow:0 6px 20px #00000029}.intro-page .footnote{margin-top:auto;padding-top:24px;font-size:12px;color:#ffffff80}.intro-page .features{padding:52px 40px;display:flex;flex-direction:column;gap:18px;background:linear-gradient(180deg,#fff,#f8fcff)}.intro-page .features-title{font-size:22px;line-height:1.25;color:#0f3042}.intro-page .features-subtitle{color:#4e6472;font-size:14px;line-height:1.65;margin-bottom:4px}.intro-page .feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.intro-page .feature-card{border:1px solid #deebf2;border-radius:14px;padding:16px 14px;background:#f9fcff;box-shadow:0 4px 14px #073a550d;transition:transform .15s ease,box-shadow .15s ease}.intro-page .feature-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #073a551a}.intro-page .feature-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.intro-page .feature-icon{width:28px;height:28px;border-radius:8px;background:linear-gradient(145deg,#e6f4fb,#d4edf9);border:1px solid #c1e2f2;color:#0d5879;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.intro-page .feature-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.intro-page .feature-card h3{font-size:15px;color:#11415c;margin:0}.intro-page .feature-card p{font-size:13px;line-height:1.55;color:#4b6271;margin:0}.intro-page .feature-strip{margin-top:4px;border:1px dashed #c8ddea;border-radius:14px;padding:14px;font-size:13px;color:#345063;line-height:1.6;background:#f4faff}@media (max-width: 920px){.intro-page .shell{grid-template-columns:1fr;max-width:620px}.intro-page .hero,.intro-page .features{padding:38px 28px}.intro-page h1{font-size:33px}.intro-page .feature-grid,.intro-page .hero-badges{grid-template-columns:1fr}}.login-page{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;display:grid;place-items:center;background:#f0f4f8;padding:24px}.login-page .shell{display:flex;width:100%;max-width:860px;min-height:520px;border-radius:22px;overflow:hidden;box-shadow:0 20px 60px #01405924,0 2px 8px #0000000f}.login-page .brand{flex:0 0 42%;background:linear-gradient(145deg,#013d55,#01647a 60%,#0288a0);padding:44px 36px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-page .brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.06) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.04) 0%,transparent 40%)}.login-page .brand-logo{display:flex;align-items:center;gap:10px;position:relative}.login-page .brand-logo img{height:34px}.login-page .brand-logo span{font-size:17px;font-weight:700;color:#fff;letter-spacing:-.3px}.login-page .brand-body{position:relative}.login-page .brand-title{font-size:26px;font-weight:700;color:#fff;line-height:1.25;margin-bottom:12px}.login-page .brand-sub{font-size:13px;color:#ffffffa6;line-height:1.6}.login-page .brand-dots{display:flex;gap:6px;position:relative}.login-page .brand-dots span{width:6px;height:6px;border-radius:50%;background:#ffffff4d}.login-page .brand-dots span:first-child{background:#ffffffd9}.login-page .form-panel{flex:1;background:#fff;padding:48px 44px;display:flex;flex-direction:column;justify-content:center}.login-page .form-heading{font-size:23px;font-weight:700;color:#014059;margin-bottom:4px;letter-spacing:-.3px}.login-page .form-sub{font-size:13px;color:#7a8a96;margin-bottom:30px}.login-page .error-banner{display:flex;align-items:flex-start;gap:10px;background:#fff5f5;border:1px solid #f5c6c6;border-radius:10px;padding:11px 14px;margin-bottom:22px;font-size:13px;color:#c0392b;line-height:1.45}.login-page .error-banner svg{flex-shrink:0;margin-top:1px}.login-page .field{margin-bottom:18px}.login-page label{display:block;font-size:12px;font-weight:600;color:#4a5568;margin-bottom:6px;letter-spacing:.02em;text-transform:uppercase}.login-page .input-wrap{position:relative}.login-page .input-wrap>svg:first-child{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#b0bec5;pointer-events:none}.login-page input[type=email],.login-page input[type=password],.login-page input[type=text]{width:100%;padding:11px 40px;border:1.5px solid #dde3ea;border-radius:10px;font-size:14px;color:#1a202c;outline:none;transition:border-color .18s,box-shadow .18s;background:#fafbfc}.login-page input:focus{border-color:#014059;box-shadow:0 0 0 3px #01405917;background:#fff}.login-page input::placeholder{color:#b0bec5}.login-page .pw-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#b0bec5;padding:2px;display:flex;align-items:center;transition:color .15s}.login-page .pw-toggle:hover{color:#014059}.login-page .btn-submit{width:100%;padding:12px;background:linear-gradient(135deg,#014059,#01627a);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;box-shadow:0 4px 14px #01405947;margin-top:6px;letter-spacing:.01em}.login-page .btn-submit:hover:not(:disabled){opacity:.92}.login-page .btn-submit:active:not(:disabled){transform:scale(.99)}.login-page .btn-submit:disabled{opacity:.7;cursor:wait}.login-page .footer-note{text-align:center;margin-top:22px;font-size:12px;color:#9aa5b1}@media (max-width: 620px){.login-page .shell{flex-direction:column;border-radius:16px}.login-page .brand{flex:0 0 auto;padding:28px 24px;min-height:150px}.login-page .brand-body .brand-title{font-size:20px}.login-page .brand-sub,.login-page .brand-dots{display:none}.login-page .form-panel{padding:32px 24px}}:root{--hdr: #014059;--hdr-dark: #012e40;--sidebar-w: 64px;--header-h: 64px;--white: #ffffff;--pg: #f5f5f5;--bdr: #e0e0e0;--bdr2: #ccc;--txt: #1a1a1a;--txts: #555;--txtm: #666;--link: #014059;--ok-bg: rgba(0, 255, 0, .3);--ok: #2e7d32;--ok-bdr: #00ff00;--wn-bg: rgba(255, 255, 0, .3);--wn: #f57f17;--wn-bdr: #ffff00;--er-bg: rgba(255, 0, 0, .3);--er: #c62828;--er-bdr: #ff0000;--pile-col: rgba(200, 150, 255, .78);--torque-col: rgba(128, 0, 128, .78);--rails-col: rgba(135, 206, 250, .78);--panel-col: rgba(0, 0, 139, .78)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--txt);background:var(--pg)}a{color:var(--link)}button{font:inherit;cursor:pointer}.spinner{width:24px;height:24px;border:3px solid rgba(1,64,89,.2);border-top-color:var(--hdr);border-radius:999px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status-ok{background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-bdr)}.status-warn{background:var(--wn-bg);color:var(--wn);border:1px solid var(--wn-bdr)}.status-error{background:var(--er-bg);color:var(--er);border:1px solid var(--er-bdr)}.app-shell{height:100%;width:100%;overflow:hidden;background:var(--pg)}.app-shell__main{margin-left:var(--sidebar-w);height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;transition:margin-left .22s cubic-bezier(.22,1,.36,1)}.app-shell__content{margin-top:var(--header-h);height:calc(100% - var(--header-h));min-height:0;position:relative;overflow:auto;background:#e8e8e8}.app-shell__content:has(.project-stage){overflow:hidden}.project-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:#e8e8e8;overflow:hidden}.project-stage--timeline{position:absolute}.project-stage__view{flex:1;min-height:0;position:relative;z-index:1;isolation:isolate;overflow:hidden}.project-stage--timeline .project-stage__view{padding-bottom:0}.map-view{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.map-view .lf-zone{cursor:pointer}.map-view .leaflet-tooltip.lf-zone-tip{background:#141c28eb;color:#fff;border:none;border-radius:8px;padding:9px 13px;font-size:12px;line-height:1.6;box-shadow:0 4px 16px #00000040;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-view .leaflet-tooltip.lf-zone-tip:before{border-top-color:#141c28eb}.map-view .lf-zone-tip__title{font-size:13px;font-weight:700;margin-bottom:4px;color:#e2e8f0}.map-view .lf-zone-tip__stage{font-size:11px;color:#94a3b8;margin:-2px 0 6px;text-transform:capitalize}.map-view .lf-zone-tip__row{display:flex;justify-content:space-between;gap:18px}.map-view .lf-zone-tip__label{color:#94a3b8}.map-view .lf-zone-tip__val{font-weight:600}.map-view .lf-zone-tip__val--mw{color:#7dd3fc}.map-view .lf-zone-tip__bar-wrap{margin-top:6px;height:4px;background:#ffffff26;border-radius:2px;overflow:hidden}.map-view .lf-zone-tip__bar{height:100%;background:#38bdf8;border-radius:2px}.map-view .leaflet-container{width:100%;height:100%;font:inherit;background:#1a1a1a}.project-stage--timeline .map-view .leaflet-bottom{bottom:72px;z-index:400}.map-view .leaflet-control-attribution{margin:0 10px 0 0;background:#ffffffe0;border-radius:6px;padding:2px 8px;box-shadow:0 1px 4px #0f172a1f}.map-view .leaflet-image-layer.site-ortho{pointer-events:none;filter:saturate(.88) contrast(1.04) brightness(1.02)}.site-imagery-hud{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:500;pointer-events:none;padding:6px 12px;border-radius:999px;background:#fffffff0;box-shadow:0 1px 4px #0f172a29;color:var(--txts);font-size:12px;font-weight:600;letter-spacing:.01em}.map-zoom-ctrl{position:absolute;left:12px;bottom:76px;z-index:1000;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000002e;border-radius:4px;overflow:hidden}.map-zoom-ctrl__btn{width:28px;height:28px;background:#fff;border:1px solid var(--bdr);border-bottom:none;cursor:pointer;font-size:16px;line-height:1;color:var(--txts);display:flex;align-items:center;justify-content:center;padding:0}.map-zoom-ctrl__btn:last-child{border-bottom:1px solid var(--bdr)}.map-zoom-ctrl__btn:hover{background:var(--pg);color:var(--hdr)}.map-zoom-ctrl__btn--reset{font-size:12px;height:24px}.map-view__center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:450;pointer-events:none}.map-view__error{position:absolute;top:52px;left:12px;padding:8px;border-radius:4px;z-index:500}.full-view-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:35;display:none;flex-direction:column;overflow:hidden}.full-view-overlay.is-active{display:flex}.full-view-inner{flex:1;overflow:auto;padding:16px}.tables-stack{display:flex;flex-direction:column;gap:14px}.table-card{background:#fff;border:1px solid var(--bdr);border-radius:10px;box-shadow:0 1px 6px #0000000f;padding:14px;position:relative}.table-card h2{margin:0 0 6px;font-size:16px;color:var(--hdr)}.table-card p{margin:0 0 10px;font-size:12px;color:var(--txtm)}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;padding:6px;border-bottom:1px solid var(--bdr);color:var(--txts)}.data-table th:not(:first-child),.data-table td:not(:first-child){text-align:right}.data-table td{padding:4px 6px;border-bottom:1px solid #eee}.date-timeline{position:absolute;left:12px;right:12px;bottom:10px;z-index:2000;height:52px;display:flex;flex-direction:column;justify-content:center;padding:6px 36px 8px;border-radius:12px;background:#fffffff7;border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 24px #0f172a1f,0 1px 3px #0f172a0f;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow:visible;pointer-events:auto}.date-timeline__track{position:relative;height:20px;cursor:pointer;display:flex;align-items:center}.date-timeline__rail-line{position:absolute;left:calc(100% / var(--tl-n, 8) / 2);right:calc(100% / var(--tl-n, 8) / 2);top:50%;height:3px;margin-top:-1.5px;background:#c8cdd4;border-radius:999px;pointer-events:none;overflow:hidden}.date-timeline__rail-fill{height:100%;background:#014059;border-radius:999px;transition:width .2s ease}.date-timeline__stops{position:relative;z-index:1;width:100%;display:grid;align-items:center}.date-timeline__dot{justify-self:center;width:10px;height:10px;padding:0;border-radius:999px;border:2px solid #014059;background:#fff;cursor:pointer;box-sizing:border-box;transition:width .15s ease,height .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease}.date-timeline__dot:hover{box-shadow:0 0 0 3px #01405929}.date-timeline__dot--past{border-color:#014059;background:#014059}.date-timeline__dot--future{border-color:#c8cdd4;background:#fff}.date-timeline__dot--active{width:13px;height:13px;background:#014059;border-color:#014059;box-shadow:none}.date-timeline__labels{display:grid;margin-top:3px;width:100%}.date-timeline__label{border:none;background:transparent;padding:0 2px;font-size:10px;line-height:1.2;font-weight:500;color:#94a3b8;cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-align:center;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:color .15s ease}.date-timeline__label.is-active{color:#014059;font-weight:700}.date-timeline__label:hover{color:#014059}.app-sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:radial-gradient(120% 55% at 50% -10%,rgba(255,255,255,.12),transparent 52%),linear-gradient(180deg,var(--hdr) 0%,var(--hdr) 48%,var(--hdr-dark) 100%);color:var(--white);display:flex;flex-direction:column;align-items:stretch;padding:0 0 10px;z-index:1100;border-right:none;overflow:visible}.app-sidebar__header{width:100%;height:var(--header-h);min-height:var(--header-h);display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0 4px;box-sizing:border-box;border-bottom:1px solid rgba(255,255,255,.12)}.app-sidebar__brand{display:flex;align-items:center;justify-content:center;color:var(--white);text-decoration:none;border:none;background:transparent;font:inherit;border-radius:8px;padding:0;-webkit-user-select:none;user-select:none;width:100%;height:100%;transition:background .16s ease}.app-sidebar__brand.is-clickable{cursor:pointer}.app-sidebar__brand.is-clickable:hover,.app-sidebar__brand.is-clickable:focus-visible{background:#ffffff1a}.app-sidebar__brand.is-clickable:focus-visible{outline:2px solid rgba(255,255,255,.55);outline-offset:-4px}.app-sidebar__logo{width:auto;max-width:calc(var(--sidebar-w) - 10px);height:auto;max-height:calc(var(--header-h) - 10px);display:block;object-fit:contain;object-position:center;flex-shrink:0}.app-sidebar__divider{display:none}.app-sidebar__nav{flex:1;width:100%;display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:10px 0 0}.app-sidebar__nav-top{display:flex;flex-direction:column;align-items:center;gap:4px}.app-sidebar__nav-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);width:100%;padding-bottom:4px}.app-sidebar__nav-btn{width:42px;height:42px;margin:0 auto;border:none;border-radius:12px;background:transparent;color:var(--white);opacity:.58;display:flex;align-items:center;justify-content:center;padding:0;position:relative;transition:background .16s ease,opacity .16s ease,box-shadow .16s ease}.app-sidebar__nav-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.app-sidebar__nav-btn svg{width:20px;height:20px;display:block}.app-sidebar__nav-btn:hover:not(.is-active){opacity:.92;background:#ffffff1a}.app-sidebar__nav-btn.is-active{opacity:1;background:#ffffff29;box-shadow:0 0 0 1px #ffffff1f,0 8px 18px #0000002e}.app-sidebar__nav-btn.is-active:before{content:"";position:absolute;left:3px;top:10px;bottom:10px;width:3px;border-radius:999px;background:#ff8a3d}.app-sidebar__nav-btn:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%) translate(-4px);padding:5px 9px;border-radius:8px;background:#0f172af0;color:#fff;font-size:12px;font-weight:650;letter-spacing:.01em;white-space:nowrap;box-shadow:0 6px 18px #00000038;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:1200}.app-sidebar__nav-btn:hover:after,.app-sidebar__nav-btn:focus-visible:after{opacity:1;transform:translateY(-50%) translate(0)}.app-sidebar__nav-btn:focus-visible{outline:2px solid rgba(126,207,239,.95);outline-offset:2px}.lf-zone-card-icon{background:none!important;border:none!important;width:0!important;height:0!important;margin:0!important;overflow:visible!important}.lf-zone-card{--zone: #87cefa;--glass-ink: #0f172a;--glass-mute: rgba(15, 23, 42, .72);width:152px;box-sizing:border-box;padding:8px 10px 9px 12px;border-radius:10px;position:relative;overflow:hidden;background:color-mix(in srgb,var(--zone) 46%,rgba(255,255,255,.5));border:1px solid rgba(255,255,255,.82);box-shadow:0 6px 16px #00000047;backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);color:var(--glass-ink);font-family:inherit;line-height:1.15;cursor:pointer;pointer-events:auto;transform:translate(-50%,-50%) scale(var(--card-scale, 1));transform-origin:center center;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,opacity .2s ease}.lf-zone-card.is-dark{--glass-ink: #ffffff;--glass-mute: rgba(255, 255, 255, .86);background:color-mix(in srgb,var(--zone) 32%,rgba(8,12,24,.82));border:1px solid rgba(255,255,255,.88)}.lf-zone-card:before{content:"";position:absolute;top:0;bottom:0;left:0;width:3px;pointer-events:none;background:var(--zone)}.lf-zone-card.is-compact{width:132px;padding:6px 8px 7px 10px;border-radius:10px}.lf-zone-card.is-complete{border-color:#ffffffe0}.lf-zone-card.is-hover,.lf-zone-card.is-selected{background:color-mix(in srgb,var(--zone) 58%,rgba(255,255,255,.42));border-color:#fff;transform:translate(-50%,calc(-50% - 2px)) scale(var(--card-scale, 1));box-shadow:0 8px 20px #00000057}.lf-zone-card.is-dark.is-hover,.lf-zone-card.is-dark.is-selected{background:color-mix(in srgb,var(--zone) 42%,rgba(8,12,24,.88))}.lf-zone-card__top{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.lf-zone-card__name{font-size:13px;font-weight:750;letter-spacing:.03em;color:var(--glass-ink);text-shadow:0 1px 0 rgba(255,255,255,.45);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lf-zone-card.is-compact .lf-zone-card__name{font-size:12px}.lf-zone-card__pct{font-size:13px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--glass-ink);text-shadow:0 1px 0 rgba(255,255,255,.45);flex-shrink:0}.lf-zone-card.is-complete .lf-zone-card__pct{color:var(--glass-ink)}.lf-zone-card.is-dark .lf-zone-card__name,.lf-zone-card.is-dark .lf-zone-card__pct,.lf-zone-card.is-dark .lf-zone-card__stats b{text-shadow:0 1px 4px rgba(0,0,0,.9),0 0 8px rgba(0,0,0,.5)}.lf-zone-card__stage{position:relative;margin-top:2px;font-size:9px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--glass-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lf-zone-card__bar{position:relative;margin-top:6px;height:3px;border-radius:999px;background:color-mix(in srgb,var(--zone) 16%,rgba(255,255,255,.4));overflow:hidden}.lf-zone-card.is-compact .lf-zone-card__bar{margin-top:5px}.lf-zone-card__bar span{display:block;height:100%;border-radius:inherit;background:color-mix(in srgb,var(--zone) 55%,#fff);box-shadow:none}.lf-zone-card.is-dark .lf-zone-card__bar span{background:#fff}.lf-zone-card__stats{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px;padding-top:6px;border-top:1px solid color-mix(in srgb,var(--zone) 16%,rgba(255,255,255,.35))}.lf-zone-card__stats span{min-width:0;font-size:8px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--glass-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lf-zone-card__stats b{display:block;margin-bottom:1px;font-size:12px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-transform:none;color:var(--glass-ink);text-shadow:0 1px 0 rgba(255,255,255,.45);overflow:hidden;text-overflow:ellipsis}.lf-video-icon{cursor:pointer;background:none!important;border:none!important}.app-header{position:fixed;top:0;left:var(--sidebar-w);right:0;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px;background:#fff;color:#0f2740;border-bottom:1px solid rgba(15,23,42,.08);box-shadow:0 1px #0f172a05;z-index:1000;transition:left .22s cubic-bezier(.22,1,.36,1)}.app-header__left{display:flex;align-items:center;gap:14px;min-width:0;flex-wrap:nowrap}.app-header__project-block{display:flex;flex-direction:column;gap:1px;min-width:0}.app-header__project-kicker{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b;line-height:1.1}.app-header__project,.app-header__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;letter-spacing:-.02em;color:#0f2740;line-height:1.2}.app-header__sep{width:1px;height:28px;background:#0f172a1a;flex-shrink:0}.app-header__date-chip{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(15,23,42,.1);background:#f8fafc;color:#0f2740;font-size:13px;font-weight:600;white-space:nowrap;letter-spacing:.01em}.app-header__date-icon{color:#64748b;flex-shrink:0}.app-header__right{display:flex;align-items:center;gap:10px;flex-shrink:0}.user-menu{position:relative}.user-menu__btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:transparent;border:none;border-radius:50%;cursor:pointer;color:#fff;transition:transform .15s ease,box-shadow .15s ease}.user-menu__btn:hover{transform:translateY(-.5px)}.user-menu.is-open .user-menu__btn{box-shadow:0 0 0 2px #01405959}.user-menu__avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(155deg,#6ec4e8,#014059 55%,#012a3a);border:1.5px solid rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:750;letter-spacing:.02em;color:#fff;flex-shrink:0;text-transform:uppercase;box-shadow:0 1px 4px #00000038}.map-overview-float{position:absolute;top:12px;right:12px;z-index:520;pointer-events:none;max-width:min(320px,calc(100% - 24px))}.map-overview-float .site-overview__panel{pointer-events:auto;margin:0}.user-menu__panel{position:absolute;top:calc(100% + 10px);right:0;min-width:220px;background:#fff;border-radius:16px;box-shadow:0 16px 48px #01405924,0 4px 12px #00000014;border:1px solid rgba(232,236,240,.95);overflow:hidden;z-index:999;animation:user-menu-pop .18s cubic-bezier(.22,1,.36,1)}@keyframes user-menu-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.user-menu__header{padding:14px 16px 10px;border-bottom:1px solid #f0f3f6}.user-menu__header-name{font-size:13px;font-weight:600;color:#014059}.user-menu__header-email{font-size:12px;color:#7a8a96;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__role{display:inline-block;margin-top:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:20px;background:#e8f4f9;color:#014059}.user-menu__item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;font-size:13px;color:#1a202c;text-decoration:none;background:transparent;border:none;text-align:left;cursor:pointer;transition:background .1s}.user-menu__item:hover{background:#f5f8fa}.user-menu__item svg{flex-shrink:0;opacity:.5}.user-menu__divider{height:1px;background:#f0f3f6;margin:4px 0}.user-menu__item--danger{color:#c0392b}.user-menu__item--danger svg{opacity:.65}.user-menu__item--danger:hover{background:#fff5f5}@media (max-width: 640px){.app-sidebar__nav-btn{width:36px;height:36px}.app-sidebar__nav-btn svg{width:18px;height:18px}.app-header{padding:0 12px}.app-header__right{gap:8px}}
