:root{
  --red:#d90019;--red2:#b60014;--ink:#17202b;--muted:#687487;--line:#e6e9ee;--bg:#f4f6f8;--card:#fff;
  --M:#e64052;--L:#8c5bd6;--CH:#2aa878;--HX:#d5a72b;--BD:#e28a3a;--SK:#3c8fe3;
  --shadow:0 8px 30px rgba(30,42,60,.10);--radius:14px;
}
*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
button,input,select,textarea{font:inherit}.topbar{height:72px;background:linear-gradient(105deg,#bd0015,#e5001c 58%,#b90014);display:flex;align-items:center;gap:24px;padding:0 22px;color:#fff;position:sticky;top:0;z-index:1100;box-shadow:0 2px 14px rgba(120,0,10,.2)}
.brand{display:flex;align-items:center;min-width:282px}.brand-mark{font-size:31px;font-weight:1000;letter-spacing:-3px;font-style:italic}.brand-divider{height:32px;width:1px;background:#ffffff70;margin:0 15px}.brand-copy{display:flex;flex-direction:column;line-height:1.1}.brand-copy strong{font-size:15px}.brand-copy span{font-size:11px;opacity:.82;margin-top:4px}
.global-search{max-width:690px;flex:1;height:42px;background:#fff;border-radius:10px;display:flex;align-items:center;padding:0 12px;color:#333;box-shadow:inset 0 0 0 1px #ffffff55}.global-search svg{width:19px;height:19px;fill:none;stroke:#7a8491;stroke-width:2}.global-search input{border:0;outline:0;flex:1;padding:0 10px;background:transparent}.global-search kbd{border-radius:6px;background:#eef1f4;color:#667080;padding:3px 7px;font-size:11px;font-family:inherit}.top-actions{display:flex;gap:8px}.ghost-btn,.source-btn{border:1px solid #ffffff80;background:#ffffff16;color:#fff;text-decoration:none;border-radius:9px;padding:9px 12px;font-weight:700;font-size:12px;cursor:pointer}.source-btn{background:#fff;color:#b60014;border-color:#fff}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) minmax(260px,1.3fr);gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--line)}.kpis article{min-height:74px;border:1px solid var(--line);border-radius:12px;padding:11px 14px;display:flex;align-items:center;gap:13px}.kpis b{display:block;font-size:24px;line-height:1}.kpis small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.kpi-icon{width:38px;height:38px;border-radius:10px;background:#fff1f2;color:var(--red);display:grid;place-items:center;font-weight:900}.kpi-note{background:linear-gradient(135deg,#fff4f4,#fff);flex-direction:column!important;align-items:flex-start!important;justify-content:center;gap:4px!important}.kpi-note span{font-size:11px;color:var(--red);font-weight:800;text-transform:uppercase}.kpi-note b{font-size:15px!important}
.workspace{display:grid;grid-template-columns:250px minmax(430px,1fr) 360px;height:calc(100vh - 159px);min-height:560px}.filters,.results{background:#fff;overflow:auto}.filters{border-right:1px solid var(--line);padding:16px}.results{border-left:1px solid var(--line)}.panel-head,.result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.panel-head small,.result-head small{font-size:10px;color:#99a1ac;font-weight:800;letter-spacing:.09em}.panel-head h2,.result-head h2{font-size:17px;margin:3px 0 0}.text-btn{border:0;background:transparent;color:#2563eb;font-size:11px;cursor:pointer;padding:4px}
fieldset{border:0;border-top:1px solid var(--line);padding:15px 0 3px;margin:15px 0 0}legend{padding:0 7px 0 0;font-size:12px;font-weight:800;color:#4a5360}.filter-list{display:grid;gap:3px}.check-row{display:grid;grid-template-columns:18px 10px 1fr auto;align-items:center;gap:8px;min-height:34px;font-size:12px;cursor:pointer;border-radius:8px;padding:4px 5px}.check-row:hover{background:#f6f8fa}.check-row input{accent-color:var(--red)}.check-row strong{font-size:11px;color:#808997}.dot{width:9px;height:9px;border-radius:50%}.priority-a{background:#d90019}.priority-b{background:#f2a300}.status-dot{width:8px;height:8px;border-radius:50%;background:#98a2af}.status-contacted{background:#3b82f6}.status-interested{background:#22c55e}.status-progress{background:#f59e0b}.status-not-interested{background:#ef4444}.compact .check-row{grid-template-columns:18px 10px 1fr auto;min-height:30px}#typeFilter,#sortSelect{width:100%;border:1px solid #dfe3e8;background:#fff;border-radius:8px;padding:9px 10px;color:#384150;font-size:12px}.data-note{margin-top:18px;background:#f7f8fa;border-radius:10px;padding:11px;border:1px solid #eceff3}.data-note b{font-size:11px}.data-note p{font-size:10px;color:#737d89;line-height:1.45;margin:5px 0 0}
.map-shell{position:relative;min-width:0;background:#dde6ec;overflow:hidden}#map{position:absolute;inset:0}.map-fallback{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:30px;background:radial-gradient(circle at 50% 40%,#eef3f6,#dbe4e9);z-index:1}.map-fallback strong{font-size:18px}.map-fallback span{margin-top:8px;color:#6b7480;max-width:420px}.map-toolbar{position:absolute;right:12px;top:12px;z-index:700;display:flex;gap:6px}.map-toolbar button{border:1px solid #d8dde3;background:#fff;border-radius:8px;padding:8px 10px;box-shadow:0 2px 10px #00000012;font-size:11px;font-weight:700;cursor:pointer}.map-legend{position:absolute;left:12px;bottom:18px;z-index:700;background:#fffffff2;border:1px solid #dfe4e8;border-radius:10px;padding:8px 10px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(3,auto);gap:7px 12px;font-size:10px}.legend-item{display:flex;align-items:center;gap:5px}.legend-item i{width:8px;height:8px;border-radius:50%}.geocode-state{position:absolute;left:12px;top:12px;z-index:700;background:#17202bdc;color:#fff;border-radius:8px;padding:7px 9px;font-size:10px;box-shadow:var(--shadow)}
.result-head{padding:15px 13px 11px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:5}.result-head select{width:auto;min-width:112px;padding:7px 8px}.company-list{padding:8px}.company-card{display:grid;grid-template-columns:40px 1fr auto;gap:9px;padding:10px;border:1px solid transparent;border-radius:10px;cursor:pointer;margin-bottom:5px}.company-card:hover{background:#f7f9fb;border-color:#eef1f4}.company-card.active{background:#fff5f6;border-color:#ffc5cc}.company-avatar{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:900;letter-spacing:-.03em}.company-main{min-width:0}.company-name{font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-meta{font-size:10px;color:#78828e;display:flex;gap:7px;margin-top:4px;white-space:nowrap;overflow:hidden}.company-contact{font-size:10px;color:#4d5966;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-badges{display:flex;flex-direction:column;gap:5px;align-items:flex-end}.badge{display:inline-flex;align-items:center;border-radius:99px;padding:4px 7px;font-size:9px;font-weight:800;white-space:nowrap}.badge-a{background:#ffe9ec;color:#c90017}.badge-b{background:#fff3d7;color:#956300}.badge-status{background:#edf1f4;color:#637080}.badge-area{color:#fff}.empty{padding:40px 18px;text-align:center;color:#808997;font-size:12px}
.csp-marker{width:24px;height:24px;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 9px rgba(0,0,0,.3);position:relative}.csp-marker span{display:grid;place-items:center;width:100%;height:100%;transform:rotate(45deg);color:#fff;font-size:8px;font-weight:900}.leaflet-div-icon{background:transparent!important;border:0!important}.leaflet-popup-content-wrapper{border-radius:10px}.leaflet-popup-content{margin:10px 12px;min-width:180px}.pop-name{font-size:12px;font-weight:800;margin-bottom:4px}.pop-meta{font-size:10px;color:#667080}.pop-link{display:inline-block;margin-top:8px;font-size:10px;color:#d00018;font-weight:800}
.detail-backdrop{position:fixed;inset:0;background:#00000028;z-index:1200}.detail-panel{position:fixed;z-index:1250;right:16px;top:84px;bottom:16px;width:min(455px,calc(100vw - 32px));background:#fff;border-radius:16px;box-shadow:0 24px 80px #17202b40;overflow:auto;padding:22px}.detail-close{position:absolute;right:13px;top:10px;width:32px;height:32px;border:0;border-radius:50%;background:#f2f4f6;font-size:22px;cursor:pointer}.detail-title{padding-right:36px}.detail-title h1{font-size:22px;margin:0 0 7px;line-height:1.15}.detail-title .sub{font-size:11px;color:#78828e;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.detail-grid{display:grid;gap:10px;margin-top:18px}.detail-row{display:grid;grid-template-columns:100px 1fr;gap:9px;font-size:12px;padding:9px 0;border-bottom:1px solid #eef0f3}.detail-row dt{color:#7b8591}.detail-row dd{margin:0;min-width:0;word-break:break-word}.detail-row a{color:#1268d7}.action-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.action-row a,.action-row button{display:grid;place-items:center;text-decoration:none;border-radius:10px;padding:10px 6px;border:1px solid #e1e5ea;background:#fff;color:#303a46;font-size:11px;font-weight:800;cursor:pointer}.action-row .primary{background:var(--red);color:#fff;border-color:var(--red)}.capability-box{background:#f8f9fb;border:1px solid #eceff2;border-radius:12px;padding:12px;font-size:12px;line-height:1.45}.capability-box b{display:block;margin-bottom:5px}.pipeline-box{margin-top:16px;background:#fff7f8;border:1px solid #ffd9de;border-radius:12px;padding:12px}.pipeline-box label{display:block;font-size:10px;font-weight:800;color:#7c4650;margin:0 0 5px}.pipeline-box select,.pipeline-box textarea,.pipeline-box input{width:100%;border:1px solid #ead6d9;border-radius:8px;padding:9px;background:#fff;font-size:12px}.pipeline-box textarea{resize:vertical;min-height:72px}.pipeline-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.pipeline-actions small{font-size:9px;color:#9a6c73}.pipeline-actions button{border:0;border-radius:8px;background:#b90014;color:#fff;padding:8px 10px;font-size:10px;font-weight:800;cursor:pointer}
.mobile-tabs{display:none}
@media(max-width:1180px){.workspace{grid-template-columns:220px 1fr 315px}.kpis{grid-template-columns:repeat(4,1fr)}.kpi-note{display:none}.brand{min-width:220px}.brand-copy span{display:none}}
@media(max-width:860px){body{overflow:hidden}.topbar{height:60px;padding:0 12px}.brand{min-width:auto}.brand-copy,.brand-divider{display:none}.brand-mark{font-size:25px}.top-actions{display:none}.global-search{height:38px}.kpis{display:none}.workspace{height:calc(100vh - 114px);grid-template-columns:1fr}.filters,.results,.map-shell{grid-area:1/1;display:none}.map-shell.mobile-active,.filters.mobile-active,.results.mobile-active{display:block}.filters{padding-bottom:80px}.results{padding-bottom:70px}.map-shell{min-height:0}.mobile-tabs{height:54px;display:grid;grid-template-columns:repeat(3,1fr);position:fixed;bottom:0;left:0;right:0;z-index:1150;background:#fff;border-top:1px solid #dfe3e8;padding-bottom:env(safe-area-inset-bottom)}.mobile-tabs button{border:0;background:#fff;color:#7c8590;font-size:11px;font-weight:800}.mobile-tabs button.active{color:var(--red);box-shadow:inset 0 3px 0 var(--red)}.detail-panel{top:70px;right:8px;bottom:62px;width:calc(100vw - 16px)}.map-legend{grid-template-columns:repeat(2,auto);bottom:70px}.map-toolbar{top:10px}.geocode-state{top:auto;bottom:142px}.result-head{top:0}}
/* Accessible working layout, with native hidden-state handling. */
[hidden]{display:none!important}
body{display:flex;flex-direction:column;overflow:hidden;height:100dvh}
.topbar{flex-shrink:0;gap:18px}.brand{min-width:180px}.brand-mark{font-style:normal;letter-spacing:0;font-size:22px;font-weight:750}.brand-divider{margin:0 12px}.brand-copy span{font-size:12px}.global-search{min-width:0}.global-search input{min-width:0;font-size:16px}.global-search kbd{font-size:12px}.top-actions{flex-shrink:0}.ghost-btn,.source-btn{font-size:14px}.source-btn{cursor:default}
.kpis{flex-shrink:0;grid-template-columns:repeat(4,minmax(0,1fr))}.kpis article{min-height:65px}.kpis small{font-size:12px}.kpi-note{display:none!important}
.workspace{flex:1;min-height:0;height:auto;grid-template-columns:245px minmax(280px,1fr) 390px;overflow:hidden}.filters,.results{min-height:0}.filters{padding:14px}.panel-head small,.result-head small{font-size:12px;color:#687487}.panel-head h2,.result-head h2{font-size:16px}.text-btn{font-size:14px;white-space:nowrap;min-height:36px}legend{font-size:14px}.check-row,.compact .check-row{font-size:14px;min-height:38px;gap:6px}.check-row strong{font-size:12px}.data-note b,.backup-controls b{font-size:14px}.data-note p,.backup-controls p{font-size:12px;line-height:1.5;color:#526071}.backup-controls{padding:12px 0}.backup-controls button{font-size:14px;min-height:40px;background:white;border:1px solid #cbd2da;border-radius:7px;margin:4px;padding:7px}#saveNotice{color:#8b1523}
#typeFilter,#sortSelect{font-size:14px}.result-head{flex-wrap:wrap}.company-card{grid-template-columns:36px minmax(0,1fr);align-items:start}.company-avatar{width:36px;height:36px}.company-badges{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:flex-start}.company-name{font-size:14px;white-space:normal;line-height:1.35}.company-meta,.company-contact{font-size:12px;line-height:1.4}.company-meta span{overflow:hidden;text-overflow:ellipsis}.badge{font-size:12px;padding:4px 7px}.empty{font-size:16px}.geocode-state{left:12px;top:auto;bottom:12px;font-size:12px;max-width:calc(100% - 24px)}.map-legend{bottom:58px;font-size:12px}.map-toolbar button{font-size:14px;min-height:40px}.map-toolbar{max-width:calc(100% - 64px)}
.detail-panel{top:16px;bottom:16px;width:min(480px,calc(100vw - 32px));padding:22px}.detail-close{width:40px;height:40px}.detail-title h1{font-size:24px}.detail-row,.capability-box{font-size:16px;line-height:1.45}.detail-row{grid-template-columns:115px minmax(0,1fr)}.action-row a,.action-row button{font-size:14px;min-height:44px}.pipeline-box label{font-size:14px}.pipeline-box select,.pipeline-box textarea,.pipeline-box input{font-size:16px}.pipeline-actions{gap:12px;align-items:flex-start}.pipeline-actions small{font-size:12px;line-height:1.4}.pipeline-actions button{font-size:14px;min-height:44px;flex-shrink:0}.pop-name{font-size:14px}.pop-meta,.pop-link{font-size:12px}.pop-link{min-height:36px}button,a,input,select,textarea,[role=button]{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:3px solid #1268d7;outline-offset:2px}
@media(max-width:1180px) and (min-width:861px){.workspace{grid-template-columns:215px minmax(230px,1fr) 320px}.topbar{padding:0 14px;gap:12px}.source-btn{display:none}.brand{min-width:160px}.brand-copy{display:none}.brand-divider{display:none}.kpis article{padding:9px}.kpis b{font-size:22px}.check-row{font-size:14px}}
@media(max-width:860px){.topbar{height:64px;padding:0 10px;gap:10px}.brand{min-width:0}.brand-mark{font-size:16px;white-space:nowrap}.global-search input{padding:0 6px}.global-search svg{display:none}.global-search{padding:0 8px}.workspace{height:auto;min-height:0;grid-template-columns:1fr;margin-bottom:calc(56px + env(safe-area-inset-bottom))}.mobile-tabs{height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.mobile-tabs button{font-size:14px;min-height:48px}.filters,.results{padding-bottom:24px}.map-legend{bottom:66px;grid-template-columns:repeat(3,auto)}.geocode-state{bottom:12px;top:auto}.detail-panel{top:8px;bottom:calc(8px + env(safe-area-inset-bottom));right:8px;width:calc(100vw - 16px);padding:18px}.detail-title h1{font-size:22px}.detail-row{grid-template-columns:95px minmax(0,1fr);font-size:14px}.company-card{padding:14px 10px}.company-name{font-size:16px}.company-contact,.company-meta{font-size:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
