
.rf2-shell{display:grid;gap:13px}.rf2-layout{display:grid;grid-template-columns:365px minmax(0,1fr);gap:12px;align-items:start}.rf2-controls{display:grid;gap:10px;position:sticky;top:10px}.rf2-panel,.rf2-map-card,.rf2-profile-card,.rf2-report-card{border:1px solid var(--cc-border);border-radius:12px;background:var(--cc-panel);overflow:hidden}.rf2-panel.endpoint.tx{border-color:rgba(34,197,94,.45)}.rf2-panel.endpoint.rx{border-color:rgba(59,130,246,.48)}.rf2-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--cc-border)}.rf2-panel-head>div{display:flex;align-items:center;gap:7px}.rf2-panel-head h3{margin:0;font-size:11px}.rf2-panel-head small{color:var(--cc-muted);font-size:8px}.rf2-panel-head button{height:30px;border:1px solid var(--cc-border);border-radius:7px;background:var(--cc-panel2);color:var(--cc-text);font-size:8px;font-weight:850}.rf2-dot{display:block;width:11px;height:11px;border-radius:50%}.rf2-dot.tx{background:#22c55e}.rf2-dot.rx{background:#3b82f6}
.rf2-endpoint-tools,.rf2-form{display:grid;gap:9px;padding:10px}.rf2-endpoint-tools label,.rf2-form label{display:grid;gap:4px;color:var(--cc-muted);font-size:8px;font-weight:850;text-transform:uppercase}.rf2-searchrow{display:grid;grid-template-columns:1fr auto;gap:5px}.rf2-searchrow button{padding:0 8px}.rf2-search-results{display:grid;gap:3px;max-height:160px;overflow:auto}.rf2-search-result{padding:6px 7px;border:1px solid var(--cc-border);border-radius:7px;background:var(--cc-panel2);color:var(--cc-text);font-size:8px;text-align:left;cursor:pointer}.rf2-search-result:hover{border-color:#347eab}.rf2-coords,.rf2-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px}.rf2-resolved{padding:7px;border:1px dashed var(--cc-border2);border-radius:7px;color:var(--cc-muted);font-size:8px;line-height:1.4}.rf2-main{display:grid;gap:11px}.rf2-map-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px;border-bottom:1px solid var(--cc-border);background:var(--cc-panel2)}.rf2-map-toolbar button{height:32px;border:1px solid var(--cc-border);border-radius:7px;background:var(--cc-panel);color:var(--cc-text);padding:0 8px;font-size:8px;font-weight:850}.rf2-map-toolbar button.active{border-color:#2f9cf4;background:rgba(47,156,244,.08)}.rf2-map-toolbar span{margin-left:auto;color:var(--cc-muted);font-size:8px}.rf2-map{height:560px;background:#8499a3}
.rf2-results{display:grid;gap:10px}.rf2-verdict{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px;border:1px solid var(--cc-border);border-left:5px solid #738794;border-radius:12px;background:linear-gradient(145deg,var(--cc-panel2),var(--cc-panel))}.rf2-verdict small{display:block;color:var(--cc-muted);font-size:8px;font-weight:900;letter-spacing:.1em}.rf2-verdict strong{display:block;font-size:25px;margin:3px 0}.rf2-verdict p{margin:0;color:var(--cc-muted);font-size:9px}.rf2-verdict.good{border-left-color:#22c55e}.rf2-verdict.usable{border-left-color:#eab308}.rf2-verdict.marginal{border-left-color:#f97316}.rf2-verdict.bad{border-left-color:#ef4444}.rf2-score{display:flex;align-items:baseline}.rf2-score span{font-size:43px;font-weight:950}.rf2-score small{font-size:11px}
.rf2-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.rf2-kpis article{padding:9px;border:1px solid var(--cc-border);border-radius:9px;background:var(--cc-panel2)}.rf2-kpis small{display:block;color:var(--cc-muted);font-size:7px;text-transform:uppercase;font-weight:900}.rf2-kpis strong{display:block;font-size:17px;margin:4px 0 2px}.rf2-kpis span{font-size:7px;color:var(--cc-muted)}
.rf2-profile-head{display:flex;justify-content:space-between;gap:10px;padding:10px;border-bottom:1px solid var(--cc-border)}.rf2-profile-head h3{margin:0;font-size:12px}.rf2-profile-head p{margin:3px 0 0;color:var(--cc-muted);font-size:8px}.rf2-profile-head span{font-size:8px;color:var(--cc-muted)}.rf2-profile-wrap{position:relative;overflow:auto;background:linear-gradient(180deg,#07111f,#0a1829)}.rf2-profile-wrap canvas{display:block;width:100%;min-width:800px;height:330px}.rf2-profile-tip{position:absolute;display:none;padding:6px 7px;border:1px solid #31536b;border-radius:7px;background:rgba(5,18,30,.94);color:#fff;font-size:8px;pointer-events:none}.rf2-profile-legend{display:flex;gap:12px;flex-wrap:wrap;padding:8px 10px;color:var(--cc-muted);font-size:8px}.rf2-profile-legend span{display:flex;gap:5px;align-items:center}.rf2-profile-legend i{width:20px;height:3px}.rf2-profile-legend .terrain{background:#4ade80}.rf2-profile-legend .los{background:#38bdf8}.rf2-profile-legend .fresnel{background:#f4c95d}.rf2-profile-legend .obstruction{background:#ff6b6b}
.rf2-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rf2-report-card{padding:11px}.rf2-report-card h3{margin:0 0 8px;font-size:12px}.rf2-metrics-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.rf2-metrics-list div{padding:7px;border:1px solid var(--cc-border);border-radius:7px;background:var(--cc-panel2)}.rf2-metrics-list small{display:block;color:var(--cc-muted);font-size:7px}.rf2-metrics-list b{font-size:10px}.rf2-recommendation{display:grid;gap:6px}.rf2-rec{padding:8px;border:1px solid var(--cc-border);border-left:4px solid #38bdf8;border-radius:8px;background:var(--cc-panel2)}.rf2-rec.good{border-left-color:#22c55e}.rf2-rec.warn{border-left-color:#f59e0b}.rf2-rec.bad{border-left-color:#ef4444}.rf2-rec b{display:block;font-size:9px}.rf2-rec p{margin:3px 0 0;color:var(--cc-muted);font-size:8px;line-height:1.4}.rf2-status{padding:8px 10px;border:1px solid var(--cc-border);border-radius:8px;color:var(--cc-muted);font-size:8px}.rf2-station-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#071725;border:3px solid #9a6cf2;color:#fff;font:900 7px system-ui}.rf2-marker{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font:900 10px system-ui;border:3px solid #fff;box-shadow:0 4px 14px #0008}.rf2-marker.a{background:#16a34a}.rf2-marker.b{background:#2563eb}.rf2-marker.obstruction{background:#dc2626;width:25px;height:25px;font-size:8px}.rf2-search-result small{display:block;color:var(--cc-muted);margin-top:2px}
@media(max-width:1150px){.rf2-layout{grid-template-columns:1fr}.rf2-controls{position:static;grid-template-columns:repeat(2,1fr)}.rf2-controls>.rf2-panel:last-child{grid-column:1/-1}.rf2-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:750px){.rf2-controls{grid-template-columns:1fr}.rf2-controls>.rf2-panel:last-child{grid-column:auto}.rf2-kpis{grid-template-columns:repeat(2,1fr)}.rf2-report-grid{grid-template-columns:1fr}.rf2-map{height:52vh;min-height:420px}.rf2-coords,.rf2-pair{grid-template-columns:1fr}.rf2-map-toolbar span{width:100%;margin:0}}


/* SKYNET RF Planning v2.1 — UI refinement */
.rf2-shell{gap:16px;max-width:100%}
.rf2-shell .cc-hero{padding:18px 20px;border-radius:14px}
.rf2-shell .cc-hero h2{font-size:22px;letter-spacing:-.02em;margin-bottom:5px}
.rf2-shell .cc-hero p{max-width:900px;line-height:1.55}
.rf2-layout{grid-template-columns:minmax(430px,520px) minmax(680px,1fr);gap:16px}
.rf2-controls{gap:12px;position:static}
.rf2-panel,.rf2-map-card,.rf2-profile-card,.rf2-report-card{border-radius:14px;box-shadow:0 10px 28px rgba(0,0,0,.12)}
.rf2-panel-head{padding:13px 14px}
.rf2-panel-head h3{font-size:13px}
.rf2-panel-head small{font-size:9px}
.rf2-panel-head button,.rf2-map-toolbar button{min-height:34px;padding:0 12px;font-size:9px}
.rf2-endpoint-tools,.rf2-form{padding:13px 14px;gap:11px}
.rf2-endpoint-tools label,.rf2-form label{font-size:9px;letter-spacing:.02em}
.rf2-endpoint-tools input,.rf2-endpoint-tools select,.rf2-form input,.rf2-form select{min-height:40px;font-size:12px}
.rf2-searchrow{grid-template-columns:minmax(0,1fr) 78px;gap:7px}
.rf2-coords,.rf2-pair{gap:9px}
.rf2-resolved{padding:9px 10px;min-height:36px;display:flex;align-items:center;font-size:9px}
.rf2-map-card{position:relative}
.rf2-map-toolbar{padding:10px 12px;gap:8px}
.rf2-map-toolbar span{font-size:9px}
.rf2-map{height:620px;min-height:620px}
.rf2-results{gap:12px}
.rf2-verdict{padding:17px 18px;border-radius:14px}
.rf2-verdict strong{font-size:28px}
.rf2-verdict p{font-size:10px;line-height:1.45}
.rf2-score span{font-size:48px}
.rf2-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.rf2-kpis article{min-height:82px;padding:11px 12px}
.rf2-kpis small{font-size:8px}
.rf2-kpis strong{font-size:20px}
.rf2-kpis span{font-size:8px}
.rf2-profile-head{padding:13px 14px}
.rf2-profile-head h3{font-size:13px}
.rf2-profile-head p,.rf2-profile-head span{font-size:9px}
.rf2-profile-wrap canvas{height:360px}
.rf2-profile-legend{padding:10px 14px;font-size:9px}
.rf2-report-card{padding:14px}
.rf2-report-card h3{font-size:13px}
.rf2-metrics-list{gap:8px}
.rf2-metrics-list div{padding:9px}
.rf2-metrics-list small{font-size:8px}
.rf2-metrics-list b{font-size:11px}
.rf2-rec{padding:10px}
.rf2-rec b{font-size:10px}
.rf2-rec p{font-size:9px}
.rf2-status{padding:10px 12px;font-size:9px}

/* Make endpoint identity unmistakable without overwhelming the page. */
.rf2-panel.endpoint{position:relative}
.rf2-panel.endpoint:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.rf2-panel.endpoint.tx:before{background:#22c55e}
.rf2-panel.endpoint.rx:before{background:#3b82f6}

/* Better large-screen balance: controls no longer consume the full page height beside a narrow map. */
@media(min-width:1500px){
 .rf2-layout{grid-template-columns:500px minmax(0,1fr)}
 .rf2-map{height:650px}
}
@media(min-width:1151px) and (max-width:1499px){
 .rf2-layout{grid-template-columns:450px minmax(0,1fr)}
 .rf2-map{height:590px;min-height:590px}
}
@media(max-width:1150px){
 .rf2-layout{grid-template-columns:1fr}
 .rf2-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
 .rf2-controls>.rf2-panel:last-child{grid-column:1/-1}
 .rf2-map{height:560px;min-height:500px}
}
@media(max-width:760px){
 .rf2-shell .cc-hero{padding:14px}
 .rf2-shell .cc-hero h2{font-size:19px}
 .rf2-controls{grid-template-columns:1fr}
 .rf2-controls>.rf2-panel:last-child{grid-column:auto}
 .rf2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .rf2-report-grid{grid-template-columns:1fr}
 .rf2-map{height:52vh;min-height:420px}
 .rf2-coords,.rf2-pair{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){
 .rf2-coords,.rf2-pair{grid-template-columns:1fr}
 .rf2-kpis{grid-template-columns:1fr 1fr}
 .rf2-map-toolbar span{width:100%}
}


/* SKYNET RF Planning v2.3 — Fresnel Analysis */
.rf2-fresnel-card{border:1px solid var(--cc-border);border-radius:14px;background:linear-gradient(145deg,var(--cc-panel2),var(--cc-panel));overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.12)}
.rf2-fresnel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:14px;border-bottom:1px solid var(--cc-border)}
.rf2-fresnel-head .eyebrow{margin:0 0 4px;font-size:8px;color:#f4c95d;font-weight:950;letter-spacing:.11em}
.rf2-fresnel-head h3{margin:0;font-size:14px}
.rf2-fresnel-head p:last-child{margin:4px 0 0;color:var(--cc-muted);font-size:9px;line-height:1.45}
.rf2-fresnel-badge{padding:6px 9px;border:1px solid var(--cc-border);border-radius:999px;font-size:8px;font-weight:950;white-space:nowrap}
.rf2-fresnel-badge.good{color:#22c55e;border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.06)}
.rf2-fresnel-badge.warn{color:#f59e0b;border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.06)}
.rf2-fresnel-badge.bad{color:#ef4444;border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.06)}
.rf2-fresnel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:11px}
.rf2-fresnel-grid article{padding:10px;border:1px solid var(--cc-border);border-radius:9px;background:var(--cc-panel)}
.rf2-fresnel-grid small{display:block;color:var(--cc-muted);font-size:7px;text-transform:uppercase;font-weight:900}
.rf2-fresnel-grid strong{display:block;font-size:18px;margin:4px 0 2px}
.rf2-fresnel-grid span{font-size:7px;color:var(--cc-muted)}
.rf2-fresnel-narrative{margin:0 11px 11px;padding:10px;border:1px solid var(--cc-border);border-left:4px solid #f4c95d;border-radius:8px;background:rgba(244,201,93,.04);font-size:9px;line-height:1.5;color:var(--cc-muted)}
.rf2-profile-legend .fresnel-full{background:#b78cff}
@media(max-width:1050px){.rf2-fresnel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.rf2-fresnel-head{flex-direction:column}.rf2-fresnel-grid{grid-template-columns:1fr 1fr}}


/* SKYNET RF Planning v2.4 — restored old Fresnel assessment */
.rf2-assessment-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.rf2-gauge-card{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:center;padding:11px;border:1px solid var(--cc-border);border-radius:12px;background:linear-gradient(145deg,var(--cc-panel2),var(--cc-panel))}
.rf2-gauge-card.fresnel-primary{border-color:rgba(244,201,93,.52);box-shadow:inset 0 0 0 1px rgba(244,201,93,.08)}
.rf2-radial-gauge{--value:0;--gauge:#38bdf8;position:relative;width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gauge) calc(var(--value)*1%),rgba(113,137,158,.16) 0)}
.rf2-radial-gauge:before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--cc-panel);border:1px solid var(--cc-border)}
.rf2-radial-gauge strong{position:relative;z-index:1;font-size:15px}
.rf2-radial-gauge.fresnel{--gauge:#f4c95d}
.rf2-gauge-card small{display:block;color:var(--cc-muted);font-size:7px;font-weight:950;letter-spacing:.07em}
.rf2-gauge-card b{display:block;font-size:14px;margin:3px 0}
.rf2-gauge-card span{display:block;color:var(--cc-muted);font-size:8px;line-height:1.35}
.rf2-why-card{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;padding:12px;border:1px solid var(--cc-border);border-radius:12px;background:var(--cc-panel)}
.rf2-why-card h3{margin:0 0 8px;font-size:12px}.rf2-why-list,.rf2-old-recommendations{display:grid;gap:6px}
.rf2-why-item,.rf2-old-rec{display:flex;gap:8px;align-items:flex-start;padding:8px;border:1px solid var(--cc-border);border-radius:8px;background:var(--cc-panel2)}
.rf2-why-item>span,.rf2-old-rec>span{font-size:15px;line-height:1}
.rf2-why-item p,.rf2-old-rec p{margin:0;color:var(--cc-muted);font-size:8px;line-height:1.45}
.rf2-old-rec b{display:block;font-size:9px;margin-bottom:2px}.rf2-old-rec.good{border-left:4px solid #22c55e}.rf2-old-rec.warn{border-left:4px solid #f59e0b}.rf2-old-rec.bad{border-left:4px solid #ef4444}.rf2-old-rec.info{border-left:4px solid #38bdf8}
@media(max-width:1200px){.rf2-assessment-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.rf2-why-card{grid-template-columns:1fr}}
@media(max-width:520px){.rf2-assessment-strip{grid-template-columns:1fr}.rf2-gauge-card{grid-template-columns:72px 1fr}.rf2-radial-gauge{width:66px;height:66px}}


/* SKYNET RF Planner v2.6 — Fresnel Zone map overlay */
.rf2-map-toolbar #rf2FresnelLayer.active{
  border-color:#2dd4bf!important;
  background:rgba(45,212,191,.10)!important;
  color:#d5fff7!important;
}
.rf2-fresnel-map-label-wrap{
  background:transparent!important;
  border:0!important;
  pointer-events:none!important;
}
.rf2-fresnel-map-label{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  width:max-content;
  min-width:62px;
  padding:4px 6px;
  border:1px solid rgba(45,212,191,.72);
  border-radius:7px;
  background:rgba(4,18,29,.90);
  color:#d7fff8;
  box-shadow:0 3px 10px rgba(0,0,0,.35);
  font:800 8px/1.1 system-ui,sans-serif;
  white-space:nowrap;
}
.rf2-fresnel-map-label span{
  color:#77e8d2;
  font-weight:700;
}
html[data-theme="light"] .rf2-fresnel-map-label{
  background:rgba(255,255,255,.94);
  color:#155d55;
  border-color:#45a99b;
  box-shadow:0 3px 9px rgba(34,61,75,.14);
}
html[data-theme="light"] .rf2-fresnel-map-label span{color:#237c70}

/* RF Planner v2.7 — propagation planning suite */
.rf2-subhead{
  margin:8px 0 2px;padding-top:10px;border-top:1px solid #18374a;
  color:#69bde9;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase
}
.rf2-map-toolbar #rf2PropagationLayer.active{
  border-color:#38bdf8!important;background:rgba(56,189,248,.10)!important;color:#d9f5ff!important
}
.rf2-map-toolbar #rf2Predict{
  border-color:#2f6e90;background:#0b2638;color:#aee8ff
}
.rf2-prop-legend{
  position:absolute;right:12px;bottom:12px;z-index:650;display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;
  max-width:min(610px,calc(100% - 24px));padding:7px 9px;border:1px solid #264a60;border-radius:8px;
  background:rgba(4,17,28,.88);backdrop-filter:blur(6px);color:#a9c3d3;font:700 9px/1.2 system-ui,sans-serif
}
.rf2-map-card{position:relative}
.rf2-prop-legend strong{color:#e7f7ff}
.rf2-prop-legend span{display:flex;align-items:center;gap:4px}
.rf2-prop-legend i{width:11px;height:7px;border-radius:2px;display:inline-block}
.rf2-prop-legend i.strong{background:#22c55e}.rf2-prop-legend i.usable{background:#2dd4bf}.rf2-prop-legend i.marginal{background:#f59e0b}.rf2-prop-legend i.unlikely{background:#ef4444;opacity:.55}
.rf2-prop-legend small{color:#68899d}
.rf2-propagation-card{
  border:1px solid #1e4157;border-radius:12px;background:linear-gradient(180deg,#0b1f2e,#081824);overflow:hidden
}
.rf2-propagation-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;padding:15px 16px;border-bottom:1px solid #19384c}
.rf2-propagation-head h3{margin:2px 0 5px}.rf2-propagation-head p:not(.eyebrow){margin:0;color:#82a5b9;font-size:11px;line-height:1.5}
.rf2-propagation-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:#173549}
.rf2-propagation-kpis article{padding:12px;background:#091b29;min-width:0}
.rf2-propagation-kpis small,.rf2-propagation-kpis span{display:block;color:#7397ad;font-size:9px}
.rf2-propagation-kpis strong{display:block;margin:3px 0;color:#e8f8ff;font-size:18px}
html[data-theme="light"] .rf2-prop-legend{background:rgba(255,255,255,.92);color:#536f82;border-color:#abc7d8}
html[data-theme="light"] .rf2-prop-legend strong{color:#18384f}
@media(max-width:1050px){.rf2-propagation-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.rf2-propagation-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rf2-prop-legend{position:static;margin:8px}}

/* v2.7.1 propagation render visibility fix */
.rf2-map-toolbar #rf2PropagationLayer.active{
  box-shadow:inset 0 0 0 1px rgba(56,189,248,.32)!important;
}
.rf2-prop-legend i{outline:1px solid rgba(255,255,255,.22)}

/* RF Planner v2.7.2 — guaranteed propagation visibility */
.leaflet-rfPropagationPane-pane{
  mix-blend-mode:multiply;
}
html[data-theme="light"] .leaflet-rfPropagationPane-pane{
  mix-blend-mode:multiply;
}
#rf2PropagationLegend{
  border-color:#32718f!important;
}
#rf2PropagationStatus.warn{
  border-color:#d69a2d!important;
}
