.caster-observation-top{margin-bottom:16px;align-items:stretch;grid-template-rows:auto}
.caster-observation-top>section{background:#fff;border:1px solid #d8e5ee;border-radius:12px;padding:14px;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}
.caster-observation-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:26px;margin-bottom:6px}
.caster-observation-heading h3{font-size:15px;margin:0;white-space:nowrap}
.caster-observation-heading span{font-size:12px;color:#627b8e;overflow-wrap:anywhere}
.caster-observation-sky{aspect-ratio:1/1}
.caster-observation-chart{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}
#caster-sky-chart>svg{position:absolute;inset:0;width:100%;height:100%}
.caster-observation-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#526f83;min-height:24px}
.caster-observation-legend span{display:inline-flex;align-items:center;gap:4px}
.caster-observation-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
.caster-snr-scroll{position:relative;flex:1;min-height:200px;overflow-x:auto;overflow-y:hidden}
.caster-snr-scroll svg{position:absolute;inset:0;width:100%;height:100%;min-width:600px}
.caster-sky-empty{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:12px;color:#627b8e;margin:0}
@media(max-width:1000px){.caster-observation-top{grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr)}}
@media(max-width:700px){.caster-observation-top{grid-template-columns:1fr}.caster-observation-snr{height:320px}.caster-observation-sky{width:100%}}
/* Reduce the sky panel to two thirds of its previous width; extend SNR beside it. */
.caster-observation-top{grid-template-columns:minmax(0,2.675fr) minmax(220px,1fr)}
.caster-observation-top>section{min-height:0}
.caster-observation-top .caster-snr-scroll{min-height:120px}
@media(min-width:701px) and (max-width:1000px){.caster-observation-top{grid-template-columns:minmax(0,2.675fr) minmax(187px,1fr)}}
@media(max-width:700px){.caster-observation-top{grid-template-columns:1fr}.caster-observation-snr{height:240px}.caster-observation-sky{width:66.667%;justify-self:end}}

/* Compact the connection workspace and align both lower panel bottoms. */
#caster-panel:has(.caster-connections-layout)>#caster-error:empty{display:none}
body:has(.caster-connections-layout) #workspace-page-title{margin-bottom:8px}
#caster-content.caster-connections-layout>.caster-observation-top{margin-top:0;margin-bottom:8px}
.caster-connections-layout .caster-connection-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:nowrap;overflow-x:auto;margin:0 0 8px}
.caster-connection-toolbar>label{display:inline-flex;align-items:center;white-space:nowrap;font-size:13px;flex-shrink:0}
.caster-connection-toolbar>p{margin:0;font-size:12px;color:#64798a;white-space:nowrap;flex-shrink:0}
.caster-connections-layout>.shared-map-workspace{align-items:stretch;margin-top:0}
.caster-connections-layout>.shared-map-workspace>.shared-management-left{align-self:stretch}
.caster-connections-layout>.shared-map-workspace>.receiver-map-panel:not(.map-expanded){align-self:stretch;grid-template-rows:auto minmax(0,1fr)}
.caster-connections-layout>.shared-map-workspace>.receiver-map-panel:not(.map-expanded)>#mount-manage-map{height:100%!important;min-height:520px}
@media(max-width:900px){.caster-connections-layout>.shared-map-workspace>.receiver-map-panel:not(.map-expanded)>#mount-manage-map{min-height:380px}}

/* Stable connection columns: growing counters must not shift adjacent cells. */
.caster-connections-layout .caster-connections-compact table{table-layout:fixed;width:100%;min-width:680px}
.caster-connections-layout .caster-connections-compact th,.caster-connections-layout .caster-connections-compact td{overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.caster-connections-layout .caster-connections-compact th:nth-child(1){width:18%}
.caster-connections-layout .caster-connections-compact th:nth-child(2){width:15%}
.caster-connections-layout .caster-connections-compact th:nth-child(3){width:12%}
.caster-connections-layout .caster-connections-compact th:nth-child(4){width:17%}
.caster-connections-layout .caster-connections-compact th:nth-child(5){width:23%}
.caster-connections-layout .caster-connections-compact th:nth-child(6){width:15%}
/* Use the same 16px spacing between panel rows and between list and map. */
.caster-connections-layout{--caster-panel-gap:16px}
#caster-content.caster-connections-layout>.caster-observation-top{margin:0 0 var(--caster-panel-gap);column-gap:var(--caster-panel-gap)}
.caster-connections-layout>.caster-observation-top>section{margin:0}
.caster-connections-layout>.shared-map-workspace{margin-top:0;column-gap:var(--caster-panel-gap)}

/* Tight plotting bounds; use the heading row for the constellation legend. */
.caster-observation-top>section{padding:8px}
.caster-observation-top .caster-observation-heading{min-height:22px;margin-bottom:2px;gap:8px;justify-content:flex-start;flex-wrap:wrap}
.caster-observation-top .caster-observation-heading h3{font-size:14px;line-height:1.4}
.caster-observation-heading>.caster-observation-legend{margin-left:auto;min-height:0;gap:8px;font-size:11px;align-items:center}
.caster-observation-sky .caster-observation-heading span{margin-left:auto}
/* Reduce the sky width by another quarter and allocate the freed width to SNR. */
.caster-observation-top{grid-template-columns:minmax(0,3.9fr) minmax(165px,1fr)}
.caster-observation-top .caster-snr-scroll{min-height:80px}
@media(min-width:701px) and (max-width:1000px){.caster-observation-top{grid-template-columns:minmax(0,3.9fr) minmax(140px,1fr)}}
@media(max-width:700px){.caster-observation-top{grid-template-columns:1fr}.caster-observation-snr{height:200px}.caster-observation-sky{width:50%;justify-self:end}}
