:root{--push-sidebar-width:min(80vw,300px);--mobile-header-height:64px;--mobile-nav-height:70px}
html,body{max-width:100%;overflow-x:clip}.app-frame{width:100%;min-width:0;min-height:100vh;transition:transform .26s cubic-bezier(.2,.8,.2,1);will-change:transform}.push-sidebar{position:fixed;inset:0 auto 0 0;z-index:60;width:var(--push-sidebar-width);max-width:300px;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line);box-shadow:18px 0 48px rgba(16,18,36,.2);transform:translate3d(-100%,0,0);transition:transform .26s cubic-bezier(.2,.8,.2,1);will-change:transform;overflow:hidden}.sidebar-open .push-sidebar{transform:translate3d(0,0,0)}.sidebar-open .app-frame{transform:translate3d(var(--push-sidebar-width),0,0)}
.push-sidebar-head{min-height:72px;padding:12px 12px 12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none}.sidebar-brand{display:flex;align-items:center;gap:10px;min-width:0}.sidebar-brand>span:last-child,.sidebar-brand b,.sidebar-brand small{display:block;min-width:0}.sidebar-brand b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-brand small{font-size:10px;color:var(--muted);margin-top:2px;text-transform:uppercase;letter-spacing:.06em}.sidebar-close{width:46px;height:46px;flex:none;border:0;border-radius:14px;background:var(--surface2);color:var(--ink);font-size:27px;line-height:1;cursor:pointer}.push-nav{padding:10px 9px 16px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;flex:1}.push-link,.push-group summary{position:relative;width:100%;min-height:50px;padding:9px 11px;border:0;border-radius:13px;display:flex;align-items:center;gap:11px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;text-align:left;cursor:pointer;list-style:none}.push-group summary::-webkit-details-marker{display:none}.push-link i,.push-group summary i{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--surface2);color:var(--brand);font-style:normal;font-weight:900;font-size:16px}.push-link span,.push-group summary span{flex:1;display:flex;align-items:center;gap:11px}.push-link>b,.push-group summary>b{font-size:18px;color:var(--muted);transition:transform .2s}.push-group[open] summary>b{transform:rotate(180deg)}.push-link:hover,.push-group summary:hover{background:var(--brand-soft);color:var(--ink)}.push-link.active{background:var(--brand-soft);color:var(--brand)}.push-link.active:before,.push-group div a.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:4px;background:var(--brand)}.push-link.active i{background:var(--brand);color:#fff}.push-group{margin:2px 0}.push-group>div{display:grid;gap:2px;padding:2px 5px 8px 53px}.push-group>div a{position:relative;min-height:45px;padding:10px 10px 10px 14px;border-radius:11px;display:flex;align-items:center;color:var(--muted);font-size:12px;font-weight:750}.push-group>div a:hover,.push-group>div a.active{background:var(--brand-soft);color:var(--brand);font-weight:900}.nav-count{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:var(--bad);color:#fff;font-size:9px}.push-sidebar-foot{flex:none;padding:10px 9px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}.push-sidebar-foot form{margin:0}.push-sidebar-foot .push-link{min-height:48px}.theme-sidebar-action,.logout-link{appearance:none}.logout-link{color:var(--bad)}
.app-header{height:var(--mobile-header-height);padding:0 10px;gap:9px}.nav-toggle{width:46px;height:46px;flex:none;border:1px solid var(--line);border-radius:14px;background:var(--surface2);display:grid;align-content:center;justify-content:center;gap:4px;cursor:pointer}.nav-toggle span{width:20px;height:2px;border-radius:3px;background:var(--ink);display:block}.desktop-brand{display:none}.mobile-page-title{min-width:0;flex:1}.mobile-page-title b,.mobile-page-title small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-page-title b{font-size:14px}.mobile-page-title small{font-size:10px;color:var(--muted);margin-top:2px}.app-header .header-actions{gap:6px}.user-avatar{width:44px;height:44px;flex:none;border:0;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;font-weight:950;cursor:pointer}.desktop-theme{display:none}.app-header .inbox-button{width:44px;height:44px}.sidebar-dismiss{display:none;position:fixed;inset:0;z-index:45;border:0;background:rgba(9,11,22,.3);backdrop-filter:blur(1px)}.sidebar-open .sidebar-dismiss{display:block}.offline-banner{position:sticky;top:var(--mobile-header-height);z-index:28;padding:10px 14px;background:#8a4b06;color:#fff;font-size:12px;text-align:center}.is-offline .offline-banner{display:block}.shell{min-width:0;padding:18px 12px calc(var(--mobile-nav-height) + 34px + env(safe-area-inset-bottom))}.page-head{flex-direction:column;align-items:stretch;margin-bottom:17px}.page-head>div{min-width:0}.page-head>.btn{width:100%}.page-head h1{font-size:clamp(23px,8vw,31px);overflow-wrap:anywhere}.card{min-width:0;border-radius:17px;padding:15px}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px}.metric strong{font-size:26px}.search{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.search .btn{width:100%}.customer{align-items:flex-start;flex-direction:column}.customer>div{min-width:0}.customer b,.customer .muted{overflow-wrap:anywhere}.customer>.badge{align-self:flex-start}.actions{gap:8px}.actions>.btn{flex:1;min-width:min(100%,130px)}.detail{grid-template-columns:96px minmax(0,1fr)}
.header-logout{margin:0}.header-logout-button{width:44px;height:44px;padding:0;border:1px solid color-mix(in srgb,var(--bad) 25%,var(--line));border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--bad) 9%,var(--surface));color:var(--bad);cursor:pointer}.header-logout-button span{font-size:18px}.header-logout-button b{display:none}
.bottom{min-height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 2px env(safe-area-inset-bottom);z-index:40}.bottom a,.bottom button{position:relative;min-width:0;min-height:58px;border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:9px;font-weight:800;cursor:pointer}.bottom strong{font-size:19px;line-height:1;color:var(--brand)}.bottom .active{color:var(--ink)}.bottom .active:before{content:"";position:absolute;top:0;left:25%;right:25%;height:3px;border-radius:0 0 5px 5px;background:var(--brand)}.bottom .active strong{transform:translateY(-1px)}
.table-wrap{overflow:visible;border:0;background:transparent}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;width:100%}.table-wrap thead{display:none}.table-wrap table{background:transparent}.table-wrap tbody{display:grid;gap:12px}.table-wrap tr{padding:8px 14px;background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.table-wrap td{white-space:normal;border-bottom:1px solid var(--line);padding:11px 0;display:grid;grid-template-columns:minmax(82px,.7fr) minmax(0,1.3fr);gap:10px;align-items:center;overflow-wrap:anywhere}.table-wrap td:last-child{border-bottom:0}.table-wrap td:before{content:attr(data-label);font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.table-wrap td .btn{width:100%}.filter-bar{gap:10px}.filter-bar .btn{width:100%}
.chat-panel{margin-left:-12px;margin-right:-12px;border-left:0;border-right:0;border-radius:0;display:flex;flex-direction:column;min-height:calc(100dvh - var(--mobile-header-height) - var(--mobile-nav-height) - 120px)}.chat-thread{height:auto;min-height:42dvh;flex:1;padding:16px 12px}.chat-bubble{max-width:88%;font-size:15px}.chat-compose{position:sticky;bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));z-index:8;padding:10px 12px calc(10px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) auto;align-items:end}.chat-compose textarea{min-height:48px;max-height:130px}.chat-compose .btn{width:auto;min-width:72px;min-height:48px}.chat-fab{display:none}
.gis-map-card{margin-left:-12px;margin-right:-12px;border-left:0;border-right:0;border-radius:0;padding:7px}.gis-map{height:clamp(440px,68dvh,680px);border-radius:13px}.leaflet-control a{min-width:44px!important;min-height:44px!important;line-height:44px!important;font-size:22px!important}.leaflet-touch .leaflet-bar a:first-child{border-radius:12px 12px 0 0}.leaflet-touch .leaflet-bar a:last-child{border-radius:0 0 12px 12px}.gis-tools .actions{position:sticky;bottom:calc(var(--mobile-nav-height) + 8px + env(safe-area-inset-bottom));z-index:8;padding:8px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px)}.gis-tools .actions .btn{min-height:50px}.calendar-mobile{display:grid}.calendar-desktop{display:none}.calendar-mobile .stat-line{min-height:58px}.alert[role=alert] ul{margin:8px 0 0;padding-left:20px}.btn[data-loading=true]{opacity:.72;pointer-events:none}.btn[data-loading=true]:before{content:"";width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.skeleton{position:relative;overflow:hidden;background:var(--surface2);color:transparent!important}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface) 65%,transparent),transparent);animation:skeleton 1.2s infinite}.mobile-sticky-actions{position:sticky;bottom:calc(var(--mobile-nav-height) + 8px + env(safe-area-inset-bottom));z-index:12;display:flex;gap:8px;padding:8px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--line);border-radius:16px;backdrop-filter:blur(14px)}.mobile-sticky-actions>*{flex:1}.technician-client-actions{bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));margin-inline:-12px;padding:10px 12px;border-width:1px 0 0;border-radius:0;background:var(--surface);box-shadow:0 -10px 24px rgba(10,12,24,.12);backdrop-filter:none}.offline-draft-note{display:none}.is-offline .offline-draft-note{display:block}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeleton{to{transform:translateX(100%)}}

@media(min-width:600px){.shell{padding-left:20px;padding-right:20px}.page-head{flex-direction:row;align-items:flex-start}.page-head>.btn{width:auto}.customer{flex-direction:row;align-items:center}.customer>.badge{align-self:auto}.search{grid-template-columns:minmax(0,1fr) auto}.search .btn{width:auto}.gis-map-card{margin-left:0;margin-right:0;border:1px solid var(--line);border-radius:20px}.technician-client-actions{margin-inline:-20px;padding-inline:20px}}

@media(min-width:768px){.shell{padding:26px 24px 42px}.card{padding:20px}.grid{gap:14px}.split{grid-template-columns:1fr 1fr}.calendar-desktop{display:block}.calendar-mobile{display:none}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.table-wrap table{display:table;background:var(--surface)}.table-wrap thead{display:table-header-group}.table-wrap tbody{display:table-row-group}.table-wrap tr{display:table-row;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.table-wrap th,.table-wrap td{display:table-cell;width:auto;white-space:nowrap;border-bottom:1px solid var(--line);padding:13px 14px}.table-wrap td:before{display:none}.chat-panel{margin:0;border:1px solid var(--line);border-radius:22px;min-height:0}.chat-compose{position:static;padding:14px;grid-template-columns:1fr auto}.gis-map-card{padding:8px}.gis-tools .actions{position:static;padding:0;border:0;background:transparent;backdrop-filter:none}.mobile-sticky-actions{bottom:12px;justify-content:flex-end}.mobile-sticky-actions>*{flex:0 1 auto;min-width:150px}.technician-client-actions{bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));margin-inline:-24px;padding-inline:24px}}

@media(min-width:1024px){:root{--push-sidebar-width:280px}.push-sidebar{width:280px;max-width:none}.sidebar-open .app-frame{transform:none;margin-left:280px;width:calc(100% - 280px)}.app-frame{transition:margin-left .24s ease,width .24s ease;will-change:auto}.sidebar-dismiss,.sidebar-open .sidebar-dismiss{display:none}.push-sidebar-head{min-height:70px}.sidebar-close{display:grid;place-items:center}.app-header{height:70px;padding:0 24px}.desktop-brand{display:flex}.mobile-page-title{display:none}.desktop-theme{display:grid}.header-logout-button{width:auto;min-width:84px;padding:0 12px;display:flex;gap:7px}.header-logout-button b{display:block;font-size:11px}.shell{max-width:1320px;padding:30px 28px 56px}.bottom{display:none}.chat-compose{bottom:0}.chat-fab{display:flex}.gis-tools .actions{bottom:0}.technician-client-actions{bottom:0;margin-inline:-28px;padding-inline:28px}}

/* The Add Client actions belong at the end of the technician form. */
.mobile-sticky-actions.technician-client-actions{position:static;bottom:auto;z-index:auto;margin:18px 0 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
.mobile-sticky-actions.employee-case-actions{position:static;bottom:auto;z-index:auto;margin:18px 0 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}

@media(max-width:420px){.app-header{padding:0 7px}.nav-toggle{width:44px;height:44px}.user-avatar{width:42px;height:42px}.app-header .inbox-button{width:42px;height:42px}.mobile-page-title b{font-size:13px}.mobile-page-title small{font-size:9px}.shell{padding-left:10px;padding-right:10px}.card{padding:14px}.gis-map-card,.chat-panel{margin-left:-10px;margin-right:-10px}.bottom a,.bottom button{font-size:8px}.bottom strong{font-size:18px}}

@media(max-width:350px){.mobile-page-title small{display:none}.app-header .header-actions{gap:3px}.app-header .inbox-button{width:40px;height:40px}.user-avatar{width:40px;height:40px}.bottom a,.bottom button{font-size:7.5px}.push-sidebar{width:80vw}.detail{grid-template-columns:1fr}.detail>*{overflow-wrap:anywhere}.chat-compose{grid-template-columns:1fr}.chat-compose .btn{width:100%}}

@media(orientation:landscape) and (max-height:520px){.push-sidebar-head{min-height:58px;padding-top:6px;padding-bottom:6px}.push-link,.push-group summary{min-height:46px}.push-sidebar-foot{position:static}.gis-map{height:calc(100dvh - 92px);min-height:320px}.chat-thread{min-height:45dvh}}

@media(prefers-reduced-motion:reduce){.app-frame,.push-sidebar,.push-group summary>b{transition:none}.skeleton:after{animation:none}}
.offline-draft-note.draft-restored{display:block}

/* Mobile-first FTTH map controls and equipment/client detail cards. */
.map-layer-toggle{position:absolute;z-index:905;left:14px;bottom:14px;width:54px;height:54px;border:3px solid #fff;border-radius:17px;background:#fff;color:var(--brand);box-shadow:0 8px 24px rgba(15,23,42,.28);display:grid;place-items:center;cursor:pointer;font-size:21px}.map-layer-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.map-layer-panel{position:absolute;z-index:920;left:12px;right:12px;bottom:12px;padding:10px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--surface) 97%,transparent);box-shadow:0 -14px 38px rgba(15,23,42,.25);backdrop-filter:blur(18px)}.map-layer-panel[hidden]{display:none}.map-layer-panel header{display:flex;align-items:center;justify-content:space-between;padding:2px 3px 8px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.map-layer-panel header button{width:38px;height:38px;border:0;border-radius:11px;background:var(--surface2);color:var(--ink);font-size:22px;cursor:pointer}.map-layer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.map-layer-grid button{min-height:62px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--muted);display:grid;place-items:center;align-content:center;gap:3px;font-size:9px;font-weight:800;cursor:pointer}.map-layer-grid button i{color:var(--brand);font-size:18px;font-style:normal}.map-layer-grid button[aria-pressed=false]{opacity:.42;background:var(--surface2)}.map-layer-panel>small{display:block;margin:8px 3px 0;color:var(--muted);font-size:9px}
.gis-map-card>.map-bottom-sheet{left:50%;right:auto;top:58px;bottom:auto;width:min(330px,calc(100% - 24px));max-height:calc(100% - 76px);min-height:0;padding:0;transform:translateX(-50%);overflow:hidden;border-radius:14px;background:var(--surface);box-shadow:0 15px 42px rgba(15,23,42,.38);backdrop-filter:none}.gis-map-card>.map-bottom-sheet>button{z-index:3;right:8px;top:8px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.22);color:#fff;font-size:22px}.gis-map-card>.map-bottom-sheet>[data-map-sheet-content]{max-height:inherit;overflow:auto;overscroll-behavior:contain}
.map-client-detail{gap:0;background:var(--surface)}.map-client-detail header{min-height:58px;padding:12px 52px 11px 13px;border:0;background:linear-gradient(135deg,#0891b2,#06a6bd);color:#fff;align-items:center}.map-client-detail header small{color:#d9fbff}.map-client-detail header h3{font-size:14px;margin:2px 0}.map-client-detail header div>span{display:block;font-size:9px;opacity:.85}.map-client-detail .map-client-status{background:rgba(255,255,255,.2);color:#fff}.map-client-detail section{gap:7px;margin:0 12px;padding:10px 0;border-bottom:1px solid var(--line)}.map-client-detail section>b{color:#6366f1}.map-client-detail dl{gap:7px}.map-client-detail dl>div{grid-template-columns:82px minmax(0,1fr)}.map-client-detail dt,.map-client-detail dd{font-size:10px}.map-client-detail .map-signal-state{padding:6px 10px;border:1px solid #a7d8b7;border-radius:999px;background:#d9f2df;color:#176b3d;font-size:10px;font-weight:900;text-transform:uppercase}.map-client-detail .map-no-data{color:var(--bad)}.map-client-detail .map-rate-down{color:#16a34a}.map-client-detail .map-rate-up{color:#2563eb}.map-client-detail footer{display:flex;grid-template-columns:none;gap:5px;padding:10px 12px}.map-client-detail footer a{flex:1;min-width:0;min-height:36px;border-radius:9px;padding:5px 7px;font-size:9px;white-space:nowrap}.map-client-detail footer .map-action-whatsapp{background:#16a34a}.map-client-detail.map-node-detail header{background:linear-gradient(135deg,#4f46e5,#7c3aed)}.map-client-detail .node-active{background:#dcfce7;color:#166534}.map-client-detail .node-offline{background:#fee2e2;color:#991b1b}.map-client-detail .node-planned,.map-client-detail .node-maintenance{background:#fef3c7;color:#92400e}.map-client-detail .map-detail-warning{margin:8px 12px;padding:9px;border:1px solid color-mix(in srgb,var(--bad) 28%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--bad) 9%,var(--surface));color:var(--bad)}.map-client-detail .map-detail-warning span{font-size:10px}
@media(min-width:768px){.map-layer-toggle{left:18px;bottom:18px}.map-layer-panel{left:18px;right:auto;width:340px;bottom:18px}.gis-map-card>.map-bottom-sheet{left:auto;right:18px;top:18px;width:350px;max-height:calc(100% - 36px);transform:none}}
.mobile-map-toolbar{display:flex;gap:8px;padding:2px 0 8px}.mobile-map-toolbar .btn{flex:1;min-height:48px;padding:8px}.map-bottom-sheet{position:absolute;z-index:900;left:8px;right:8px;bottom:8px;min-height:126px;padding:20px 48px 18px 18px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 -18px 45px rgba(10,12,24,.26);backdrop-filter:blur(18px);line-height:1.55}.map-bottom-sheet>button{position:absolute;right:10px;top:10px;width:44px;height:44px;border:0;border-radius:13px;background:var(--surface2);color:var(--ink);font-size:24px}.map-bottom-sheet a{display:inline-flex;min-height:44px;align-items:center;margin-top:8px;padding:0 14px;border-radius:12px;background:var(--brand);color:#fff;font-weight:800}.mobile-draw-controls{position:absolute;z-index:910;left:8px;right:8px;top:70px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;padding:8px;border:1px solid var(--line);border-radius:17px;background:color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:var(--shadow);backdrop-filter:blur(14px)}.mobile-draw-controls[hidden]{display:none}.mobile-draw-controls .btn{min-height:48px;padding:7px}.gis-map-card{position:relative}.mobile-map-fullscreen{position:fixed!important;inset:0!important;z-index:1000!important;margin:0!important;padding:8px!important;border:0!important;border-radius:0!important;background:var(--surface)!important}.mobile-map-fullscreen .gis-map{height:calc(100dvh - 70px)!important;min-height:0!important}.mobile-map-fullscreen .mobile-map-toolbar{height:60px}.mobile-map-fullscreen .gis-legend{display:none}
@media(min-width:768px){.mobile-map-toolbar{display:none}.map-bottom-sheet{display:block;left:auto;right:18px;top:18px;bottom:auto;width:min(380px,calc(100% - 36px));max-height:calc(100% - 36px);overflow:auto}.map-bottom-sheet[hidden]{display:none}.mobile-draw-controls{left:auto;right:18px;top:18px;width:360px}}
.client-map-marker{background:transparent!important;border:0!important}.client-map-marker>span{position:relative;display:grid;place-items:center;width:30px;height:30px;border:3px solid #fff;border-radius:50%;background:#0891b2;color:#fff;box-shadow:0 3px 12px rgba(15,23,42,.35)}.client-map-marker>span.has-report{background:#dc3f68}.client-map-marker i{font-style:normal;font-size:12px;line-height:1}.client-hover-name{position:absolute;z-index:1000;left:50%;bottom:calc(100% + 9px);display:none;min-width:max-content;max-width:180px;padding:6px 9px;border-radius:9px;background:#0f172a;color:#fff;box-shadow:0 6px 18px rgba(15,23,42,.38);font-size:10px;line-height:1.2;white-space:nowrap;transform:translateX(-50%);pointer-events:none}.client-hover-name:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:#0f172a}.client-map-marker:hover .client-hover-name,.client-map-marker:focus .client-hover-name,.client-map-marker:focus-visible .client-hover-name{display:block}.client-cluster{display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:#10b981;color:#fff;font-weight:900;box-shadow:0 4px 16px rgba(15,23,42,.35)}.client-cluster span{display:grid;place-items:center;width:100%;height:100%;border:4px solid rgba(255,255,255,.22);border-radius:50%}.client-cluster-medium{background:#f97316}.client-cluster-large{background:#dc3f68}.leaflet-tooltip{border:0!important;border-radius:10px!important;padding:7px 10px!important;background:#0f172a!important;color:#fff!important;font-weight:800!important;box-shadow:0 6px 18px rgba(15,23,42,.3)!important}.leaflet-tooltip-top:before{border-top-color:#0f172a!important}.map-client-detail{display:grid;gap:12px;color:var(--ink)}.map-client-detail header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.map-client-detail header small,.map-client-detail section>b{color:var(--brand);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.map-client-detail h3{margin:3px 0 0;font-size:18px;line-height:1.2}.map-client-status{padding:5px 9px;border-radius:999px;background:var(--surface2);font-size:9px;font-weight:900;text-transform:uppercase}.map-client-status.is-active{background:#dcfce7;color:#166534}.map-client-status.is-warning{background:#fef3c7;color:#92400e}.map-client-detail section{display:grid;gap:7px}.map-client-detail dl{display:grid;gap:6px;margin:0}.map-client-detail dl>div{display:grid;grid-template-columns:minmax(88px,.7fr) minmax(0,1.3fr);gap:8px}.map-client-detail dt{color:var(--muted);font-size:11px}.map-client-detail dd{margin:0;font-size:11px;font-weight:750;overflow-wrap:anywhere}.map-client-detail footer{display:grid;grid-template-columns:1fr 1fr;gap:7px}.map-client-detail footer a{display:flex;min-height:42px;align-items:center;justify-content:center;margin:0;padding:7px 9px;text-align:center;font-size:10px}.map-client-detail footer a+a{background:#2563eb}
@media(max-width:767px){.map-bottom-sheet{max-height:calc(100% - 16px);overflow:auto}.map-client-detail footer{grid-template-columns:1fr}.map-client-detail dl>div{grid-template-columns:minmax(78px,.65fr) minmax(0,1.35fr)}}
.client-map-marker>span.is-online{background:#0ea5e9}.client-map-marker>span.is-disconnected{background:#dc3f68}.client-map-marker>span.is-unknown{background:#f59e0b}.client-map-marker>span.is-unlinked{background:#64748b}.client-map-marker>span.has-report{position:relative;box-shadow:0 0 0 4px #fff,0 0 0 7px #f97316,0 4px 16px rgba(15,23,42,.4)}.client-cluster-state-online{background:#0ea5e9}.client-cluster-state-disconnected{background:#dc3f68}.client-cluster-state-mixed{background:#f97316}.client-cluster-state-unknown{background:#64748b}.map-client-status.connection-online{background:#e0f2fe;color:#075985}.map-client-status.connection-disconnected{background:#fee2e2;color:#991b1b}.map-client-status.connection-unknown{background:#fef3c7;color:#92400e}.map-client-status.connection-unlinked{background:var(--surface2);color:var(--muted)}
.map-connection-legend{align-items:center}.map-connection-legend>small{flex-basis:100%;font-size:10px;line-height:1.4}
.mobile-map-toolbar select{flex:1;min-width:0;min-height:48px;padding:8px 10px;border-radius:14px;background:var(--surface2);font-size:11px;font-weight:850}
.report-evidence{margin:0}.evidence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}.evidence-item{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface2)}.evidence-item>a{display:block;min-height:180px;background:var(--bg)}.evidence-item img{display:block;width:100%;height:220px;object-fit:cover}.evidence-item figcaption{display:grid;gap:3px;padding:12px}.evidence-item figcaption b{font-size:13px}.evidence-item figcaption span,.evidence-item figcaption small{font-size:10px;color:var(--muted)}input[type=file]{padding:9px}input[type=file]::file-selector-button{min-height:42px;margin-right:10px;border:0;border-radius:11px;padding:0 13px;background:var(--brand-soft);color:var(--brand);font-weight:800}
.month-navigation{display:grid;grid-template-columns:1fr;gap:10px;align-items:center;text-align:center}.month-navigation .btn{width:100%}.evidence-item img{height:auto;aspect-ratio:4/3;max-height:70dvh;object-fit:cover}@media(min-width:600px){.month-navigation{grid-template-columns:1fr auto 1fr}.month-navigation a:last-child{justify-self:end}}@media(min-width:768px){.evidence-item img{height:220px;aspect-ratio:auto}}

/* Reference light palette sampled from the supplied green/off-white image. */
html:not([data-theme=dark]){--brand:#17534a;--brand2:#2f7569;--brand-soft:#e3efeb;--bg:#f3f5ef;--surface:#fff;--surface2:#f3f5ef;--ink:#18342f;--muted:#687b75;--line:#dce5df;--sidebar:#17534a;--shadow:0 16px 42px rgba(23,83,74,.08)}
html[data-theme=ocean]{--brand:#0f7182;--brand2:#2a94a5;--brand-soft:#dff1f3;--bg:#eff7f7;--surface2:#edf6f6;--ink:#153c43;--muted:#667f83;--line:#d6e7e8;--sidebar:#0d6072;--shadow:0 16px 42px rgba(13,96,114,.09)}
html[data-theme=violet]{--brand:#6553c7;--brand2:#8b71e6;--brand-soft:#ece8fb;--bg:#f5f3fb;--surface2:#f1effa;--ink:#2d2845;--muted:#746e88;--line:#e2dff0;--sidebar:#51419d;--shadow:0 16px 42px rgba(81,65,157,.09)}
html[data-theme=sunset]{--brand:#b85c27;--brand2:#df8745;--brand-soft:#f8e8dc;--bg:#fbf4ed;--surface2:#f9eee5;--ink:#4b3023;--muted:#856f64;--line:#eaded5;--sidebar:#994c22;--shadow:0 16px 42px rgba(153,76,34,.09)}
html[data-theme=rose]{--brand:#aa496d;--brand2:#d06a8f;--brand-soft:#f7e5ec;--bg:#fbf2f5;--surface2:#f8ebf0;--ink:#492b36;--muted:#836d75;--line:#eadce1;--sidebar:#873a57;--shadow:0 16px 42px rgba(135,58,87,.09)}
html:not([data-theme=dark]) body{background:radial-gradient(circle at 85% -10%,color-mix(in srgb,var(--brand) 7%,transparent),transparent 32%),var(--bg)}
html:not([data-theme=dark]) .top{background:rgba(255,255,255,.96)}
html:not([data-theme=dark]) .card{background:#fff}
html:not([data-theme=dark]) .hero{background:linear-gradient(125deg,var(--sidebar),var(--brand2) 58%,color-mix(in srgb,var(--brand2) 78%,#fff));box-shadow:0 25px 70px color-mix(in srgb,var(--sidebar) 24%,transparent)}
html:not([data-theme=dark]) .hero p{color:#e7f3ef}
html:not([data-theme=dark]) .hero .btn-light{color:var(--brand)}
html:not([data-theme=dark]) .push-sidebar{background:var(--sidebar);border-right-color:color-mix(in srgb,var(--sidebar) 82%,#fff);color:#fff;box-shadow:18px 0 48px color-mix(in srgb,var(--sidebar) 28%,transparent)}
html:not([data-theme=dark]) .push-sidebar-head{border-bottom-color:rgba(255,255,255,.16)}
html:not([data-theme=dark]) .push-sidebar .sidebar-brand b{color:#fff}
html:not([data-theme=dark]) .push-sidebar .sidebar-brand small{color:#cde0db}
html:not([data-theme=dark]) .push-sidebar .brand-mark{background:#fff;color:var(--sidebar);box-shadow:0 8px 20px rgba(6,37,32,.22)}
html:not([data-theme=dark]) .push-sidebar .sidebar-close{background:rgba(255,255,255,.12);color:#fff}
html:not([data-theme=dark]) .push-sidebar .push-link,
html:not([data-theme=dark]) .push-sidebar .push-group summary,
html:not([data-theme=dark]) .push-sidebar .push-group>div a{color:#d6e6e2}
html:not([data-theme=dark]) .push-sidebar .push-link i,
html:not([data-theme=dark]) .push-sidebar .push-group summary i{background:rgba(255,255,255,.11);color:#fff}
html:not([data-theme=dark]) .push-sidebar .push-link>b,
html:not([data-theme=dark]) .push-sidebar .push-group summary>b{color:#bdd5cf}
html:not([data-theme=dark]) .push-sidebar .push-link:hover,
html:not([data-theme=dark]) .push-sidebar .push-group summary:hover,
html:not([data-theme=dark]) .push-sidebar .push-group>div a:hover,
html:not([data-theme=dark]) .push-sidebar .push-group>div a.active{background:rgba(255,255,255,.11);color:#fff}
html:not([data-theme=dark]) .push-sidebar .push-link.active{background:#fff;color:var(--sidebar)}
html:not([data-theme=dark]) .push-sidebar .push-link.active:before{background:#82b8aa}
html:not([data-theme=dark]) .push-sidebar .push-group div a.active:before{background:#fff}
html:not([data-theme=dark]) .push-sidebar .push-link.active i{background:var(--sidebar);color:#fff}
html:not([data-theme=dark]) .push-sidebar-foot{border-top-color:rgba(255,255,255,.16);background:var(--sidebar)}
html:not([data-theme=dark]) .push-sidebar .logout-link{color:#ffd8dc}
.theme-palette{margin:0 0 3px}.theme-palette>summary{list-style:none}.theme-palette>summary::-webkit-details-marker{display:none}.theme-palette>summary span{display:flex;align-items:center;justify-content:space-between;gap:8px}.theme-palette>summary small{font-size:9px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;opacity:.78}.theme-palette[open]>summary>b{transform:rotate(180deg)}.theme-palette-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:4px 4px 9px}.theme-palette-options button{min-width:0;min-height:48px;padding:6px 3px;border:1px solid var(--line);border-radius:10px;background:var(--surface2);color:var(--muted);display:grid;place-items:center;gap:3px;font-size:8px;font-weight:900;cursor:pointer}.theme-palette-options button>span{width:20px;height:20px;border:3px solid #fff;border-radius:50%;background:var(--theme-swatch);box-shadow:0 2px 8px rgba(15,23,42,.22)}.theme-palette-options button.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 18%,transparent)}
html:not([data-theme=dark]) .push-sidebar .theme-palette-options button{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.09);color:#dcebe7}html:not([data-theme=dark]) .push-sidebar .theme-palette-options button.active{border-color:#fff;background:#fff;color:var(--sidebar);box-shadow:none}

/* Keep these final overrides after the legacy map rules above. */
.gis-map-card>.map-bottom-sheet{left:50%;right:auto;top:58px;bottom:auto;width:min(330px,calc(100% - 24px));max-height:calc(100% - 76px);min-height:0;padding:0;transform:translateX(-50%);overflow:hidden;border-radius:14px;background:var(--surface);box-shadow:0 15px 42px rgba(15,23,42,.38);backdrop-filter:none}.gis-map-card>.map-bottom-sheet>button{z-index:3;right:8px;top:8px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.22);color:#fff;font-size:22px}.gis-map-card>.map-bottom-sheet>[data-map-sheet-content]{max-height:inherit;overflow:auto;overscroll-behavior:contain}.map-client-detail{gap:0}.map-client-detail header{min-height:58px;padding:12px 52px 11px 13px;border:0;align-items:center;background:linear-gradient(135deg,#0891b2,#06a6bd);color:#fff}.map-client-detail header small{color:#d9fbff}.map-client-detail header h3{font-size:14px;margin:2px 0}.map-client-detail header div>span{display:block;font-size:9px;opacity:.85}.map-client-detail .map-client-status{background:rgba(255,255,255,.2);color:#fff}.map-client-detail section{gap:7px;margin:0 12px;padding:10px 0;border-bottom:1px solid var(--line)}.map-client-detail section>b{color:#6366f1}.map-client-detail dl{gap:7px}.map-client-detail dl>div{grid-template-columns:82px minmax(0,1fr)}.map-client-detail dt,.map-client-detail dd{font-size:10px}.map-client-detail footer{display:flex;grid-template-columns:none;gap:5px;padding:10px 12px}.map-client-detail footer a{flex:1;min-width:0;min-height:36px;border-radius:9px;padding:5px 7px;font-size:9px;white-space:nowrap}.map-client-detail footer .map-action-whatsapp{background:#16a34a}.map-client-detail.map-node-detail header{background:linear-gradient(135deg,#4f46e5,#7c3aed)}
@media(min-width:768px){.gis-map-card>.map-bottom-sheet{left:auto;right:18px;top:18px;width:350px;max-height:calc(100% - 36px);transform:none}}
