/* /sat — usa las variables del tema "Control Room" (theme-head.php). */
.sat{padding-bottom:60px;}
.sat .sec-head{margin:34px 0 22px;}
.sat-h1{font-family:var(--disp);font-weight:700;font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.08;letter-spacing:-.025em;margin:.5rem 0 0;}
.sat-note{color:var(--warn);}
.sat-faltan{font-size:.9rem;color:var(--ink-2);margin:0;padding:0 4px;line-height:1.5;} .a-nota{grid-area:nota;} .sat-faltan a{color:var(--ac);border-bottom:1px dotted var(--ac-line);} .sat-faltan a:hover{color:var(--ink);}
/* El tema limita estos párrafos a 52ch; acá la bajada ocupa todo el ancho y se ajusta sola. */
.sat .sec-head p{max-width:none;}

.sat-grid{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:14px;align-items:start;}
/* Dos columnas independientes: si se pliega un panel de la izquierda, el de abajo sube (no espera al mapa). */
.sat-col{display:flex;flex-direction:column;gap:14px;min-width:0;}
.a-loc{grid-area:loc;} .a-map{grid-area:map;} .a-passes{grid-area:passes;} .a-radar{grid-area:radar;} .a-sats{grid-area:sats;}

.sat-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-width:0;}
.sat-h2{font-family:var(--disp);font-weight:600;font-size:1.02rem;margin:0 0 14px;letter-spacing:-.01em;}
.sat-fold>summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;border-radius:8px;}
.sat-fold>summary::-webkit-details-marker{display:none;}
.sat-fold>summary .sat-h2{margin:0;}
.sat-fold>summary::after{content:"";flex:none;margin-left:auto;width:8px;height:8px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg) translateY(-2px);transition:transform .2s;}
.sat-fold[open]>summary::after{transform:rotate(-135deg) translateY(-2px);}
.sat-fold[open]>summary{margin-bottom:14px;}
.sat-fold>summary:hover .sat-h2{color:var(--ac);}
.sat-fold>summary:focus-visible{outline:2px solid var(--ac);outline-offset:4px;}
.sat-sum{font-size:.7rem;color:var(--ink-2);letter-spacing:.02em;margin-left:2px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sat-fold[open] .sat-sum{display:none;}
.sat-h2-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:14px;} .sat-h2-row .sat-h2{margin:0;}
.sat-count{font-size:.7rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;}

.sat-btns{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.sbtn{font-family:var(--mono);font-weight:500;font-size:.78rem;letter-spacing:.01em;padding:.55rem .9rem;border-radius:9px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;transition:border-color .2s,color .2s,background .2s,transform .2s;}
.sbtn:hover{border-color:var(--ac-line);color:var(--ac);}
.sbtn:focus-visible,.sinput:focus-visible,.sat-table tbody tr:focus-visible,.sat-list input:focus-visible{outline:2px solid var(--ac);outline-offset:2px;}
.sbtn-ac{background:var(--ac);border-color:var(--ac);color:#04060d;font-weight:700;} .sbtn-ac:hover{background:var(--ac-press);border-color:var(--ac-press);color:#04060d;}
.sbtn[aria-pressed="true"]{background:var(--ac2);border-color:var(--ac2);color:#1a0d00;font-weight:700;}
.sbtn:disabled{opacity:.5;cursor:default;}

.slabel{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:12px 0 5px;}
.sinput{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;color:var(--ink);padding:.55rem .75rem;font-family:var(--body);font-size:.92rem;}
.sinput.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;}
.sinput:focus{border-color:var(--ac-line);}
select.sinput{appearance:auto;}
.sat-row{display:flex;gap:8px;} .sat-row .sinput{flex:1;min-width:0;}
.sat-msg{font-family:var(--mono);font-size:.72rem;margin:8px 0 0;min-height:1.1em;color:var(--ink-2);} .sat-msg.err{color:var(--down);}
.sat-obs{font-size:.78rem;color:var(--ac);margin:6px 0 0;word-break:break-word;}
.sat-opts{margin-top:8px;border-top:1px dashed var(--line);padding-top:4px;}

.sat-map-wrap{position:relative;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--bg-2);}
#map{height:clamp(320px,52vh,520px);background:var(--bg-2);}
.sat-map-wrap.picking #map{cursor:crosshair;}
.sat-map-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:500;margin:0;background:var(--ac2);color:#1a0d00;font-family:var(--mono);font-weight:700;font-size:.74rem;padding:.45rem .8rem;border-radius:8px;pointer-events:none;}
/* botón de maximizar (debajo del zoom) y mapa maximizado */
.sat .sat-maxctl{border:1px solid var(--line);}
.sat-maxbtn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:2px;background:var(--panel);color:var(--ink);cursor:pointer;}
.sat-maxbtn:hover{background:var(--panel-2);color:var(--ac);}
.sat-maxbtn:focus-visible{outline:2px solid var(--ac);outline-offset:2px;}
.sat-map-wrap.maximized{position:fixed;inset:0;z-index:2000;border:0;border-radius:0;}
.sat-map-wrap.maximized #map{height:100%;}
html.sat-maxed,html.sat-maxed body{overflow:hidden;}
/* mapa oscuro: se invierte el mosaico de OSM y se vuelve a girar el tono */
.sat .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.9) saturate(.7);}
.sat .leaflet-container{font-family:var(--body);background:var(--bg-2);}
.sat .leaflet-control-attribution{background:rgba(10,15,30,.78);color:var(--ink-2);font-size:.62rem;} .sat .leaflet-control-attribution a{color:var(--ac);}
.sat .leaflet-bar a{background:var(--panel);color:var(--ink);border-color:var(--line);} .sat .leaflet-bar a:hover{background:var(--panel-2);}
.sat .leaflet-tooltip{background:var(--panel);border:1px solid var(--ac-line);color:var(--ink);font-family:var(--mono);font-size:.68rem;box-shadow:none;padding:2px 7px;}
.sat .leaflet-tooltip-top:before{border-top-color:var(--ac-line);}
.obs-pin{width:18px;height:18px;border-radius:50%;background:var(--ac2);border:3px solid #fff;box-shadow:0 0 0 2px rgba(255,138,31,.5),0 2px 8px rgba(0,0,0,.6);}
.sat-dot{width:11px;height:11px;border-radius:50%;background:var(--ac);border:2px solid #fff;box-shadow:0 0 8px var(--ac);}
.sat-dot.sel{width:15px;height:15px;background:#fff;border-color:var(--ac2);box-shadow:0 0 0 3px rgba(255,138,31,.35),0 0 12px var(--ac2);}

.sat-table-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px;max-height:640px;overflow-y:auto;}
.sat-table{width:100%;min-width:560px;border-collapse:collapse;font-size:.88rem;}
.sat-table th{position:sticky;top:0;background:var(--panel);z-index:1;text-align:left;font-family:var(--mono);font-weight:500;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 10px;border-bottom:1px solid var(--line);}
.sat-table td{padding:10px;border-bottom:1px solid var(--line-2);vertical-align:top;}
.sat-table tbody tr{cursor:pointer;transition:background .15s;}
.sat-table tbody tr:hover{background:rgba(47,139,255,.06);}
.sat-table tbody tr.sel{background:var(--ac-soft);box-shadow:inset 3px 0 0 var(--ac2);}
.sat-table tbody tr.live td:first-child::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ac2);box-shadow:0 0 8px var(--ac2);margin-right:7px;animation:beat-op 2s infinite;}
.sat-table .nm{font-family:var(--disp);font-weight:600;}
.sat-table .sub{display:block;font-family:var(--mono);font-size:.7rem;color:var(--muted);margin-top:2px;}
.sat-table .mono{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.sat-table .el{font-family:var(--mono);font-weight:700;}
.el-hi{color:var(--ac);} .el-mid{color:var(--ink);} .el-lo{color:var(--muted);}
.sat-empty{text-align:center;color:var(--muted);padding:26px 10px!important;font-family:var(--mono);font-size:.8rem;}
.sat-foot{font-size:.66rem;letter-spacing:.04em;color:var(--muted);margin:12px 0 0;}
.sat-foot.warn{color:var(--warn);}

#radar{width:100%;max-width:340px;height:auto;aspect-ratio:1;display:block;margin:0 auto;}

.sat-list{list-style:none;margin:12px 0 0;padding:0;max-height:300px;overflow-y:auto;border:1px solid var(--line);border-radius:9px;background:var(--bg);}
.sat-list li{border-bottom:1px solid var(--line-2);} .sat-list li:last-child{border-bottom:0;}
.sat-list label{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;font-size:.86rem;}
.sat-list label:hover{background:rgba(47,139,255,.06);}
.sat-list input{accent-color:var(--ac);width:16px;height:16px;flex:none;}
.sat-list .old{margin-left:auto;font-family:var(--mono);font-size:.6rem;color:var(--warn);white-space:nowrap;}


@media (max-width:880px){
  /* En celular las columnas se disuelven y vuelve el orden: ubicación, mapa, pasadas, radar, satélites. */
  .sat-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"loc" "map" "nota" "passes" "radar" "sats";}
  .sat-col{display:contents;}
  #map{height:clamp(300px,46vh,440px);}
}
@media (max-width:560px){
  .sat-panel{padding:14px;}
  .sat-table{min-width:0;font-size:.8rem;} .sat-table td{padding:9px 6px;} .sat-table th{padding:6px;}
  .c-dur{display:none;}
}
