:root{
  --ph-bg:#071120;
  --ph-panel:#0b1c34;
  --ph-panel2:#102747;
  --ph-panel3:#0e223d;
  --ph-line:rgba(111,166,226,.26);
  --ph-line-strong:rgba(111,166,226,.42);
  --ph-text:#f7fbff;
  --ph-muted:#adc3db;
  --ph-blue:#218cff;
  --ph-blue2:#27a7ff;
  --ph-green:#1fa072;
  --ph-shadow:0 18px 44px rgba(0,0,0,.24);
  --ph-map-h:calc(100vh - 148px);
  --ph-preview-blur:0px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--ph-bg);color:var(--ph-text);font-family:Inter,Arial,sans-serif}
a{color:inherit}
button,input{font:inherit}
body.ph-embed .ph-global-header,body.ph-embed .ph-notice-bar{display:none}
body.ph-embed{--ph-map-h:100vh}
.ph-page{min-height:100vh;background:radial-gradient(circle at 12% 0%,rgba(33,140,255,.16),transparent 34%),linear-gradient(150deg,#06101f,#091a31 70%,#06101f)}
.ph-global-header{position:sticky;top:0;z-index:80;background:rgba(7,17,32,.97);border-bottom:1px solid var(--ph-line);backdrop-filter:blur(10px)}
.ph-global-inner{display:flex;align-items:center;gap:18px;padding:10px 18px;max-width:none}
.ph-brand-group{display:flex;align-items:center;gap:14px;min-width:280px}
.ph-logo img{width:180px;height:auto;display:block}
.ph-title-stack{display:flex;align-items:center;gap:10px}
.ph-heatmap-title{font-weight:900;font-size:26px;letter-spacing:-.02em}
.ph-beta{font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:900;color:#ffca6a;border:1px solid rgba(255,202,106,.38);border-radius:999px;padding:5px 9px}
.ph-main-tabs{display:flex;justify-content:center;gap:6px;flex:1;min-width:0}
.ph-main-tabs button,.ph-segment button{height:42px;padding:0 16px;border-radius:11px;border:1px solid var(--ph-line);background:rgba(10,27,50,.92);color:#dcecff;font-weight:850;cursor:pointer;white-space:nowrap}
.ph-main-tabs button.active,.ph-segment button.active{background:linear-gradient(135deg,var(--ph-blue2),#1677ff);border-color:transparent;color:#fff}
.ph-header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ph-btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:10px 15px;border:1px solid var(--ph-line);background:#0d203a;color:#fff;font-weight:850;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}
.ph-btn:hover{border-color:#67bdff;transform:translateY(-1px)}
.ph-btn.primary{background:linear-gradient(135deg,var(--ph-blue2),#1677ff);border-color:transparent}
.ph-notice-bar{background:#11613f;border-bottom:1px solid rgba(255,255,255,.08);padding:10px 18px;font-size:13px;font-weight:700;color:#eefcf6}
.ph-workspace{padding:0}
.ph-map-wrap{position:relative;height:var(--ph-map-h);min-height:720px;background:#0b1c34;overflow:hidden}
.ph-map{position:absolute;inset:0;background:#0d223f}
.ph-watermark-overlay{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 12% 10%,rgba(255,255,255,.03),transparent 20%),url('/assets/brand/promarks-intel-primary-transparent.svg');background-repeat:no-repeat,repeat;background-size:auto,220px auto;background-position:0 0,center;opacity:.09}
.ph-top-controls{position:absolute;z-index:30;left:76px;right:18px;top:18px;display:grid;grid-template-columns:minmax(360px,1.5fr) auto auto;gap:12px;align-items:end}
.ph-search-cluster label,.ph-top-group label{display:block;color:#9fb8d2;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:0 0 7px}
.ph-search-wrap{position:relative}
.ph-search{display:flex;gap:8px;padding:9px;border-radius:14px;border:1px solid var(--ph-line-strong);background:rgba(8,18,32,.86);box-shadow:var(--ph-shadow)}
.ph-search input{flex:1;min-width:0;border:none;outline:none;background:#0a1f39;color:#fff;border-radius:10px;padding:0 14px;height:44px}
.ph-results{position:absolute;left:0;right:0;top:calc(100% + 8px);background:#09192e;border:1px solid var(--ph-line);border-radius:14px;overflow:hidden;box-shadow:var(--ph-shadow);display:none;max-height:280px;overflow-y:auto;z-index:20}
.ph-results.show{display:block}
.ph-result{display:block;width:100%;text-align:left;padding:12px 14px;border:none;background:#0a1d35;color:#fff;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.06)}
.ph-result:last-child{border-bottom:none}
.ph-result strong{display:block;font-size:14px}.ph-result span{display:block;margin-top:4px;font-size:12px;color:var(--ph-muted)}
.ph-top-group .ph-segment{display:flex;gap:8px;padding:8px;border-radius:14px;border:1px solid var(--ph-line-strong);background:rgba(8,18,32,.86);box-shadow:var(--ph-shadow)}
.ph-top-actions{display:flex;justify-content:flex-end}
.ph-left-rail{position:absolute;left:10px;top:84px;z-index:33;display:flex;flex-direction:column;gap:10px}
.ph-rail-btn{width:56px;min-height:56px;padding:7px 4px;border-radius:14px;border:1px solid var(--ph-line);background:rgba(8,18,32,.9);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;box-shadow:var(--ph-shadow)}
.ph-rail-btn.active{background:linear-gradient(180deg,#1d88ff,#126ceb);border-color:transparent}
.ph-rail-icon{font-size:20px;font-weight:900;line-height:1}
.ph-rail-btn span:last-child{font-size:10px;font-weight:800;letter-spacing:.02em}
.ph-side-panel{position:absolute;left:76px;top:104px;z-index:32;width:330px;max-width:calc(100vw - 110px);border-radius:18px;border:1px solid var(--ph-line);background:rgba(8,18,32,.94);box-shadow:var(--ph-shadow);padding:14px;display:none}
.ph-side-panel.show{display:block}
.ph-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}
.ph-panel-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#7dbdf0;font-weight:900}
.ph-panel-header h3{margin:3px 0 0;font-size:28px;line-height:1.05}
.ph-panel-close{border:none;background:#102747;color:#fff;border-radius:11px;width:36px;height:36px;cursor:pointer;font-size:20px}
.ph-panel-section.hidden{display:none}
.ph-panel-label{font-size:12px;font-weight:900;color:#8cb9e7;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.ph-range-card,.ph-info-card{padding:12px;border:1px solid var(--ph-line);border-radius:14px;background:rgba(13,32,58,.86);margin-bottom:12px}
.ph-range-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:800;margin-bottom:8px}
.ph-range-card input[type=range]{width:100%}
.ph-range-card p,.ph-info-card p,.ph-display-note{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--ph-muted)}
.ph-info-card strong{display:block;font-size:14px}
.ph-display-note{padding:10px 12px;border-radius:12px;background:rgba(30,86,155,.12);border:1px solid rgba(73,156,255,.18)}
.ph-panel-actions{display:flex;gap:10px;margin-top:12px}
.ph-status{position:absolute;right:18px;top:18px;z-index:31;padding:10px 14px;border-radius:12px;background:rgba(8,18,32,.9);border:1px solid var(--ph-line);font-size:12px;font-weight:900;letter-spacing:.08em}
.ph-lock{position:absolute;right:18px;top:84px;z-index:31;width:340px;max-width:calc(100vw - 40px);padding:16px;border-radius:18px;border:1px solid var(--ph-line);background:rgba(8,18,32,.94);box-shadow:var(--ph-shadow);transform:translateX(calc(100% + 14px));transition:transform .2s ease}
.ph-lock.show{transform:translateX(0)}
.ph-lock h3{font-size:28px;margin:8px 0 6px}.ph-lock .sub{font-size:13px;color:#98b4cf}.ph-lock p{font-size:13px;line-height:1.55;color:var(--ph-muted)}
.ph-lock-close{position:absolute;right:12px;top:12px;border:none;background:#102747;color:#fff;border-radius:10px;width:32px;height:32px;font-size:18px;cursor:pointer}
.ph-lock-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.ph-bottom-bar{position:absolute;left:76px;right:18px;bottom:18px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-radius:16px;border:1px solid var(--ph-line);background:rgba(8,18,32,.86);box-shadow:var(--ph-shadow)}
.ph-bottom-note{font-size:13px;color:var(--ph-muted)}
.ph-bottom-note strong{color:#fff}
.ph-bottom-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.ph-loading{position:absolute;inset:0;z-index:60;background:rgba(6,14,26,.52);display:flex;align-items:center;justify-content:center;transition:opacity .2s ease,visibility .2s ease}
.ph-loading.hidden{opacity:0;visibility:hidden;pointer-events:none}
.ph-loading-card{width:min(420px,calc(100% - 32px));padding:24px;border:1px solid var(--ph-line);border-radius:18px;background:rgba(8,18,32,.96);text-align:center;box-shadow:var(--ph-shadow)}
.ph-loading-card h3{margin:0 0 8px;font-size:28px}.ph-loading-card p{margin:0;color:var(--ph-muted)}
.ph-modal-backdrop{position:fixed;inset:0;background:rgba(2,7,15,.76);display:none;align-items:center;justify-content:center;padding:20px;z-index:200}
.ph-modal-backdrop.show{display:flex}.ph-modal{position:relative;width:min(720px,100%);padding:28px 26px;border-radius:22px;background:linear-gradient(180deg,#0b1d35,#0a1730);border:1px solid var(--ph-line);box-shadow:0 28px 70px rgba(0,0,0,.36)}
.ph-modal-logo{display:block;width:190px;height:auto;margin-bottom:16px}.ph-modal h2{margin:0;font-size:30px}.ph-modal-intro{margin:8px 0 18px;color:var(--ph-muted);line-height:1.6}
.ph-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ph-field label{display:block;font-size:13px;font-weight:800;margin-bottom:7px}.ph-field input{width:100%;height:48px;border-radius:12px;border:1px solid var(--ph-line);background:#091a30;color:#fff;padding:0 14px}.ph-hidden{position:absolute;left:-9999px;opacity:0;pointer-events:none}
.ph-check{display:flex;align-items:flex-start;gap:10px;margin-top:16px;color:var(--ph-muted);font-size:13px;line-height:1.5}.ph-check input{margin-top:3px}.ph-privacy{margin-top:12px;padding:12px 14px;border-radius:14px;background:rgba(16,39,71,.75);font-size:12px;line-height:1.55;color:#b8c8da}.ph-submit{width:100%;margin-top:16px}.ph-form-status{margin-top:12px;font-size:13px;font-weight:700;color:#d8e5f2}.ph-form-status.good{color:#8df0bb}.ph-form-status.bad{color:#ff9f9f}.ph-modal-close{position:absolute;top:14px;right:14px;border:none;border-radius:12px;width:40px;height:40px;background:#102747;color:#fff;font-size:22px;cursor:pointer}
.ph-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.15em;font-weight:900;color:#38c5ff}

/* Leaflet critical layout rules — keep local so the public preview does not depend on CDN CSS. */
#ph-map.leaflet-container{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  background:#0d223f;
  outline:0;
  font:12px/1.5 Inter,Arial,sans-serif;
}
#ph-map .leaflet-pane,
#ph-map .leaflet-tile,
#ph-map .leaflet-marker-icon,
#ph-map .leaflet-marker-shadow,
#ph-map .leaflet-tile-container,
#ph-map .leaflet-pane>svg,
#ph-map .leaflet-pane>canvas,
#ph-map .leaflet-zoom-box,
#ph-map .leaflet-image-layer,
#ph-map .leaflet-layer{
  position:absolute!important;
  left:0;
  top:0;
}
#ph-map .leaflet-map-pane,
#ph-map .leaflet-tile-pane,
#ph-map .leaflet-overlay-pane,
#ph-map .leaflet-shadow-pane,
#ph-map .leaflet-marker-pane,
#ph-map .leaflet-tooltip-pane,
#ph-map .leaflet-popup-pane,
#ph-map .leaflet-phPreviewPane-pane{
  position:absolute!important;
  left:0;
  top:0;
}
#ph-map .leaflet-map-pane{z-index:400;}
#ph-map .leaflet-tile-pane{z-index:200;}
#ph-map .leaflet-phPreviewPane-pane{z-index:250!important;pointer-events:none;filter:blur(var(--ph-preview-blur)) saturate(1.04);transform-origin:0 0;}
#ph-map .leaflet-overlay-pane{z-index:400;}
#ph-map .leaflet-shadow-pane{z-index:500;}
#ph-map .leaflet-marker-pane{z-index:600;}
#ph-map .leaflet-tooltip-pane{z-index:650;}
#ph-map .leaflet-popup-pane{z-index:700;}
#ph-map .leaflet-tile-container{
  pointer-events:none;
  transform-origin:0 0;
}
#ph-map .leaflet-tile{
  position:absolute!important;
  width:256px!important;
  height:256px!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  user-select:none;
  -webkit-user-select:none;
  -webkit-user-drag:none;
  transform-origin:0 0;
}
#ph-map .leaflet-marker-icon,
#ph-map .leaflet-marker-shadow{
  display:block;
  user-select:none;
  -webkit-user-select:none;
  -webkit-user-drag:none;
}
#ph-map .leaflet-pane>svg,
#ph-map .leaflet-pane>canvas{
  max-width:none!important;
  max-height:none!important;
}
#ph-map .leaflet-control{
  position:relative;
  z-index:800;
  pointer-events:auto;
  float:left;
  clear:both;
}
#ph-map .leaflet-top,
#ph-map .leaflet-bottom{
  position:absolute;
  z-index:1000;
  pointer-events:none;
}
#ph-map .leaflet-top{top:0;}
#ph-map .leaflet-right{right:0;}
#ph-map .leaflet-bottom{bottom:0;}
#ph-map .leaflet-left{left:0;}
#ph-map .leaflet-top .leaflet-control{margin-top:10px;}
#ph-map .leaflet-bottom .leaflet-control{margin-bottom:10px;}
#ph-map .leaflet-left .leaflet-control{margin-left:10px;}
#ph-map .leaflet-right .leaflet-control{margin-right:10px;}
#ph-map .leaflet-bar{border-radius:5px;box-shadow:0 1px 5px rgba(0,0,0,.45);}
#ph-map .leaflet-bar a{
  display:block;width:30px;height:30px;line-height:30px;background:#fff;color:#111;text-align:center;
  text-decoration:none;font:700 18px/30px Arial,sans-serif;border-bottom:1px solid #ccc;cursor:pointer;
}
#ph-map .leaflet-bar a:first-child{border-radius:5px 5px 0 0;}
#ph-map .leaflet-bar a:last-child{border-bottom:0;border-radius:0 0 5px 5px;}
#ph-map .leaflet-bar a:hover{background:#f4f4f4;}
#ph-map .leaflet-bar a.leaflet-disabled{cursor:default;background:#f4f4f4;color:#bbb;}
#ph-map .leaflet-control-zoom-in,#ph-map .leaflet-control-zoom-out{font-size:22px!important;}
#ph-map .leaflet-control-attribution{clear:both;margin:0;padding:0 5px;color:#333;background:rgba(255,255,255,.78);font-size:9px!important;line-height:1.4;}
#ph-map .leaflet-control-attribution a{color:#0078a8;text-decoration:none;}
#ph-map .leaflet-control-attribution a:hover{text-decoration:underline;}
#ph-map .leaflet-fade-anim .leaflet-tile{will-change:opacity;}
#ph-map .leaflet-zoom-animated{transform-origin:0 0;}
#ph-map.leaflet-touch-zoom{touch-action:pan-x pan-y;}
#ph-map.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom;}
#ph-map.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none;}
@media (max-width:1280px){.ph-global-inner{flex-wrap:wrap}.ph-main-tabs{order:3;width:100%;justify-content:flex-start}.ph-header-actions{margin-left:auto}.ph-top-controls{grid-template-columns:1fr}.ph-top-actions{justify-content:flex-start}.ph-lock{width:320px}}
@media (max-width:900px){.ph-map-wrap{min-height:760px}.ph-top-controls{left:18px;right:18px;top:16px}.ph-left-rail{left:18px;top:auto;bottom:96px;flex-direction:row}.ph-side-panel{left:18px;top:150px;width:min(360px,calc(100vw - 36px))}.ph-bottom-bar{left:18px;right:18px;bottom:18px;flex-direction:column;align-items:flex-start}.ph-lock{left:18px;right:18px;top:auto;bottom:108px;width:auto;transform:translateY(calc(100% + 14px))}.ph-lock.show{transform:translateY(0)}.ph-status{top:auto;bottom:176px;right:18px}}
@media (max-width:640px){.ph-global-inner{padding:10px 12px}.ph-brand-group{min-width:0}.ph-logo img{width:150px}.ph-heatmap-title{font-size:20px}.ph-header-actions{width:100%;justify-content:flex-start}.ph-main-tabs{overflow:auto;padding-bottom:2px}.ph-main-tabs button,.ph-segment button{padding:0 12px;height:38px}.ph-top-controls{left:12px;right:12px}.ph-search{flex-direction:column}.ph-btn{min-height:40px}.ph-search input{height:42px}.ph-top-group .ph-segment{flex-wrap:wrap}.ph-left-rail{left:12px;bottom:94px}.ph-status{right:12px}.ph-side-panel{left:12px;top:182px;width:calc(100vw - 24px)}.ph-lock{left:12px;right:12px}.ph-bottom-bar{left:12px;right:12px}.ph-modal{padding:24px 18px}.ph-modal-grid{grid-template-columns:1fr}}

/* Public Heatmap workspace stacking hotfix — keep Leaflet inside its own low stacking context. */
.ph-map-wrap{isolation:isolate;}
#ph-map.leaflet-container{z-index:1!important;}
.ph-watermark-overlay{z-index:2!important;}
.ph-top-controls{z-index:1200!important;}
.ph-left-rail{z-index:1230!important;}
.ph-side-panel{z-index:1240!important;}
.ph-status{z-index:1210!important;top:88px!important;}
.ph-lock{z-index:1250!important;top:136px!important;}
.ph-bottom-bar{z-index:1220!important;}
.ph-loading{z-index:1300!important;}

@media (max-width:900px){
  .ph-status{top:auto!important;bottom:176px!important;}
  .ph-lock{top:auto!important;bottom:108px!important;}
}
