/* Critical Leaflet layout CSS is vendored because the CDN stylesheet can be blocked by SRI/CORS in previews. */.leaflet-container{overflow:hidden}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-map-pane canvas{z-index:100}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-control{position:relative;z-index:800;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-control-zoom a{display:block;width:30px;height:30px;line-height:30px;text-align:center;background:#fff;border-bottom:1px solid #ccc;text-decoration:none;color:#111;font-weight:900}.leaflet-control-zoom a:first-child{border-radius:8px 8px 0 0}.leaflet-control-zoom a:last-child{border-bottom:0;border-radius:0 0 8px 8px}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-dragging .leaflet-grab{cursor:move}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{background:#fff;border-radius:14px;box-shadow:0 12px 35px rgba(0,0,0,.22);padding:1px;text-align:left}.leaflet-popup-content{margin:14px;line-height:1.4}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;transform:rotate(45deg);background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.18)}:root{
  --blue:#0799d6; --blue-deep:#0377ac; --red:#f11822; --ink:#14212b; --muted:#667788;
  --bg:#f4fbff; --surface:#ffffff; --line:#d8edf7; --shadow:0 24px 70px rgba(9,67,99,.16);
  --radius:24px; --focus:0 0 0 4px rgba(241,24,34,.18),0 0 0 2px rgba(241,24,34,.55);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box} body{margin:0;background:radial-gradient(circle at top left,#fff 0,#f2fbff 38%,#eaf7fc 100%);color:var(--ink)}
button,input,select,textarea{font:inherit}.skip-link{position:absolute;left:-999px;top:12px;background:#000;color:#fff;padding:10px 14px;border-radius:10px;z-index:99}.skip-link:focus{left:12px}.app-shell{max-width:1720px;margin:0 auto;padding:28px}.hero{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;background:rgba(255,255,255,.82);border:5px solid var(--blue);border-radius:32px;padding:34px 40px;box-shadow:var(--shadow)}.eyebrow{margin:0 0 8px;color:var(--blue-deep);font-weight:900;text-transform:uppercase;letter-spacing:.09em;font-size:.78rem}.hero h1{margin:0;font-size:clamp(2.2rem,6vw,6.4rem);line-height:.92;font-weight:950;color:var(--blue);letter-spacing:-.07em}.hero h1 span{display:inline-block}.hero h1 strong{color:var(--red);font-style:normal;letter-spacing:-.05em}.lead{font-size:1.05rem;line-height:1.55;max-width:780px;color:#39505d}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.primary,.ghost,.pill{border:0;border-radius:999px;padding:12px 18px;font-weight:850;cursor:pointer;transition:.18s ease transform,.18s ease box-shadow,.18s ease background}.primary{background:var(--red);color:#fff;box-shadow:0 14px 34px rgba(241,24,34,.22)}.primary:hover,.ghost:hover,.pill:hover{transform:translateY(-1px)}.primary:focus-visible,.ghost:focus-visible,.pill:focus-visible,.icon-button:focus-visible,.text-input:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus)}.ghost,.pill{background:#fff;color:var(--blue-deep);border:1px solid var(--line)}.file-ghost{display:inline-flex;align-items:center}.file-ghost input{display:none}.workspace{display:grid;grid-template-columns:420px 1fr;gap:22px;margin-top:22px}.panel{display:flex;flex-direction:column;gap:16px;min-width:0}.card{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 14px 50px rgba(3,119,172,.08)}.stats-card{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:#ecf9ff;border-radius:18px;padding:16px;text-align:center}.stat span{display:block;font-size:2rem;font-weight:950;color:var(--blue-deep);line-height:1}.stat small{color:var(--muted);font-weight:800}.field-label{display:block;font-size:.86rem;font-weight:900;margin-bottom:8px}.text-input{width:100%;border:1px solid #cce5f1;border-radius:16px;padding:14px 15px;background:#fff}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.chip{border:1px solid #d3eaf5;background:#fff;border-radius:999px;padding:8px 11px;font-weight:800;color:#42606f;cursor:pointer}.chip[aria-pressed="true"]{background:var(--blue);color:#fff;border-color:var(--blue)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-title h2,.map-toolbar h2{margin:0;font-size:1.08rem}.section-title span{font-size:.85rem;color:var(--muted);font-weight:800}.company-list{display:flex;flex-direction:column;gap:9px;max-height:52vh;overflow:auto;padding-right:4px}.company-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;border:1px solid #e0f1f8;background:#fff;border-radius:16px;padding:9px;cursor:pointer;text-align:left}.company-row:hover,.company-row.active{border-color:var(--blue);box-shadow:0 8px 20px rgba(7,153,214,.12)}.mini-logo,.selected-logo{width:42px;height:42px;border-radius:12px;background:#1e2a30;color:#fff;display:grid;place-items:center;font-weight:950;overflow:hidden}.mini-logo img,.selected-logo img{width:100%;height:100%;object-fit:contain;background:white}.company-row strong{display:block;font-size:.9rem}.company-row small{color:var(--muted)}.category-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.selected-card .selected-top{display:flex;gap:14px;align-items:center}.selected-logo{width:64px;height:64px;border-radius:18px}.selected-card h3{margin:.1rem 0}.muted{color:var(--muted);margin:0;line-height:1.5}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.detail-grid div{background:#f2fbff;border-radius:14px;padding:10px}.detail-grid small{display:block;color:var(--muted);font-weight:800}.map-area{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);min-width:0}.map-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.map-toolbar p{margin:4px 0 0;color:var(--muted)}.map-pills{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}#map{height:calc(100vh - 255px);min-height:680px;border-radius:20px;overflow:hidden;background:#cfeefa;border:1px solid #c9e7f3}.leaflet-container{font-family:inherit;background:#ffffff}.region-badge{background:rgba(255,255,255,.90);border:1px solid rgba(3,119,172,.2);border-radius:999px;color:#036997;font-weight:950;text-align:center;padding:5px 10px;box-shadow:0 8px 20px rgba(0,0,0,.12)}.customer-logo-icon{background:transparent;border:0;z-index:610!important;display:grid!important;place-items:center;cursor:pointer}.customer-logo-icon:hover,.customer-logo-icon:focus,.customer-logo-icon.selected{z-index:980!important}.logo-marker{position:relative;width:10px;height:10px;border-radius:4px;background:#fff;border:1px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.18),0 0 0 1px var(--marker-color,#0799d6);display:grid;place-items:center;overflow:hidden;transform-origin:50% 50%;transition:transform .14s ease,box-shadow .14s ease,border-radius .14s ease,filter .14s ease}.customer-logo-icon:hover .logo-marker,.customer-logo-icon:focus .logo-marker,.customer-logo-icon.selected .logo-marker{transform:scale(3.2);border-radius:7px;box-shadow:0 12px 28px rgba(0,0,0,.32),0 0 0 1.5px var(--marker-color,#0799d6);filter:saturate(1.08)}.logo-leader-line{pointer-events:none}.logo-marker::after{content:none}.logo-marker span{display:grid;place-items:center;width:100%;height:100%;border-radius:4px;font-weight:950;color:#fff;background:linear-gradient(135deg,#222 0 58%,#ff8025 59% 100%);font-size:.38rem;line-height:1;text-align:center;overflow:hidden}.logo-marker img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:4px;padding:1px;display:block}.customer-cluster-icon{background:transparent;border:0}.cluster-marker{position:relative;width:54px;height:54px;border-radius:18px;background:#fff;display:grid;place-items:center;box-shadow:0 14px 34px rgba(0,0,0,.22);border:2px solid #fff;color:#06384d;font-weight:950}.cluster-marker i{position:absolute;inset:calc(3px + var(--i)*4px);border:2px solid var(--c);border-radius:16px;opacity:.9}.cluster-marker strong{font-size:1rem;line-height:1;z-index:1}.cluster-marker small{font-size:.48rem;text-transform:uppercase;letter-spacing:.05em;color:#567;z-index:1;margin-top:22px;position:absolute}.cluster-marker:hover{transform:translateY(-2px) scale(1.08)}.cluster-popup{min-width:260px}.cluster-list{display:grid;gap:6px;margin-top:10px;max-height:340px;overflow:auto}.cluster-row{border:1px solid #dceff7;background:#fff;border-radius:12px;padding:7px;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}.cluster-row:hover{border-color:var(--blue);background:#f5fbff}.cluster-row .mini-logo{width:30px;height:30px;border-radius:8px}.cluster-row strong{display:block;font-size:.78rem}.cluster-row small{color:var(--muted);font-size:.72rem}.city-label{background:transparent;border:0;box-shadow:none;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.75);font-weight:950;font-size:1rem}.legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.legend-item{display:flex;gap:7px;align-items:center;background:#f4fbff;border-radius:999px;padding:7px 10px;font-weight:800;font-size:.82rem;color:#4c6573}.legend-swatch{width:11px;height:11px;border-radius:50%}dialog{border:0;border-radius:28px;box-shadow:0 35px 120px rgba(0,0,0,.32);width:min(820px,calc(100vw - 28px));padding:0}dialog::backdrop{background:rgba(5,32,45,.55);backdrop-filter:blur(6px)}.company-form{padding:24px}.dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.dialog-head h2{margin:0;font-size:2rem;letter-spacing:-.04em}.icon-button{border:0;background:#eef8fd;border-radius:999px;width:42px;height:42px;font-size:1.8rem;line-height:1;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:.86rem;font-weight:900;color:#405765}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid #cce5f1;border-radius:14px;padding:12px;background:#fff}.wide{grid-column:1/-1}.logo-preview{margin-top:14px;min-height:72px;border:1px dashed #b9dce9;border-radius:18px;display:grid;place-items:center;color:var(--muted);font-weight:800;overflow:hidden}.logo-preview img{max-height:92px;max-width:220px;object-fit:contain}.hint{color:var(--muted);line-height:1.5}.company-form menu{display:flex;justify-content:flex-end;gap:10px;padding:0;margin:20px 0 0;flex-wrap:wrap}.leaflet-popup-content{min-width:220px}.popup-title{display:flex;align-items:center;gap:10px}.popup-title .mini-logo{width:38px;height:38px}.popup-title strong{font-size:1rem}.popup-actions{display:flex;gap:8px;margin-top:10px}.popup-actions button{border:0;border-radius:999px;padding:8px 10px;font-weight:850;cursor:pointer}.popup-actions .focus-btn{background:var(--blue);color:#fff}.popup-actions .delete-btn{background:#fff0f0;color:#b00020;border:1px solid #ffd0d0}
@media (max-width:1100px){.hero,.workspace{grid-template-columns:1fr}.hero-actions{justify-content:flex-start}.workspace{gap:16px}.panel{order:2}.map-area{order:1}#map{height:70vh;min-height:520px}.company-list{max-height:380px}}
@media (max-width:620px){.app-shell{padding:12px}.hero{padding:22px;border-width:3px;border-radius:24px}.hero h1{font-size:3rem}.stats-card,.form-grid,.detail-grid{grid-template-columns:1fr}.map-toolbar{align-items:flex-start;flex-direction:column}#map{height:68vh;min-height:460px}.company-form menu{justify-content:stretch}.company-form menu button,.file-ghost{width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
