/* Veille céleste — page layout overrides. Place and equipment live in the settings bar and the night
   window in the altitude chart, so the forecast panel spans the full width: Clear Outside image on
   the left, the reading of the sky taken from it on the right. */

.main-grid{grid-template-columns:1fr}
.weather-body{display:grid;grid-template-columns:minmax(0,760px) minmax(260px,1fr);gap:24px;align-items:start}
.weather-side .weather-state{flex-direction:column;align-items:stretch;gap:8px;margin-top:0}
.weather-side .weather-state label{font-weight:700;color:var(--ink-ui,#f0f7f1)}
.weather-side .weather-state select{max-width:none;width:100%;height:42px}

@media(max-width:900px){
  .weather-body{grid-template-columns:1fr;gap:18px}
}

/* Panel toolbar (js/layout.js): move up / down, fold down to the title. */
.panel.has-tools{position:relative}
.panel.has-tools > :first-child{padding-right:118px}
.sky-chart.has-tools > :first-child{padding-right:152px}
.panel-tools{position:absolute;z-index:4;top:14px;right:14px;display:flex;gap:4px}
.panel-tool{width:30px;height:30px;padding:0;border:1px solid var(--edge,#2e5040);border-radius:9px;background:rgba(2,12,8,.35);color:var(--muted-ui,#adbfaf);font:inherit;font-size:14px;line-height:1;cursor:pointer;transition:border-color .15s,color .15s,transform .25s}
.panel-tool:hover:not(:disabled){border-color:var(--mint,#69b9a5);color:var(--ink-ui,#f0f7f1)}
.panel-tool:disabled{opacity:.3;cursor:default}
.panel-tool[data-act="fold"][aria-expanded="false"]{transform:rotate(-90deg)}
.panel.is-collapsed > :not(:first-child):not(.panel-tools){display:none!important}
.panel.is-collapsed > :first-child{margin-bottom:0}
.panel.is-collapsed .sky-tools,.panel.is-collapsed .weather-head .button,.panel.is-collapsed .obj-count{display:none}

/* Large, tall screens (js/layout.js): three columns, using the whole width. */
.layout-large .shell{max-width:none}
.layout-large .workspace{column-gap:18px}

/* Brand links to the main site; footer with the legal texts. */
a.brand{color:inherit;text-decoration:none;border-radius:16px}
a.brand:hover .title{color:var(--mint-bright,#9cddc0)}
a.brand:focus-visible{outline:2px solid var(--mint,#69b9a5);outline-offset:6px}
.site-foot{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;margin-top:18px;font-size:13px;color:var(--muted-ui,#adbfaf)}
.site-foot a,.link-button{color:var(--mint,#69b9a5);font:inherit;font-weight:700;text-decoration:none}
.link-button{padding:0;border:0;background:none;cursor:pointer;justify-self:start}
.site-foot a:hover,.link-button:hover{text-decoration:underline}
.legal-dialog{width:min(640px,calc(100% - 32px))}
.legal-tabs{margin-bottom:12px}
.legal-body{max-height:62vh;overflow:auto;padding-right:6px;font-size:14px;line-height:1.6;color:var(--ink-ui,#f0f7f1)}
.legal-body h3{margin:14px 0 4px;font-size:15px}
.legal-body h3:first-child{margin-top:0}
.legal-body p{margin:0 0 8px;color:#d3e2da}
.legal-date{margin-top:14px!important;font-size:12px;color:var(--muted-ui,#adbfaf)!important}

/* Phones: nothing wider than the screen. Panels shrink to it (their widest rows wrap), the
   altitude table scrolls sideways inside its panel, and the header buttons get a smaller row of their
   own above the brand. */
@media(max-width:900px){
  .workspace > *{min-width:0;max-width:100%}
  .obj-dir{flex-wrap:wrap}
  #skyTable{overflow-x:auto}
}
@media(max-width:560px){
  header.top{flex-wrap:wrap;gap:10px}
  header.top .brand{min-width:0;flex:1 1 100%}
  .top-actions{order:-1;flex:1 1 100%;justify-content:flex-end;gap:6px}
  .top-actions .settings-open{width:36px;height:36px;border-radius:11px}
  .top-actions .settings-open svg{width:17px;height:17px}
}

/* "beta" next to the title, with a light sweeping across it now and then. */
.beta-badge{position:relative;display:inline-block;margin-left:10px;padding:2px 8px;overflow:hidden;border:1px solid #9cddc080;border-radius:999px;background:linear-gradient(135deg,#69b9a540,#f7bb8026);color:#d9f5e9;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;vertical-align:.55em;box-shadow:0 0 12px #69b9a540}
.beta-badge::after{content:"";position:absolute;inset:-2px;background:linear-gradient(100deg,transparent 30%,#ffffffa0 50%,transparent 70%);transform:translateX(-120%);animation:beta-flare 6s ease-in-out 1.5s infinite}
@keyframes beta-flare{0%,70%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
.no-effects .beta-badge::after{animation:none;display:none}
@media(prefers-reduced-motion:reduce){.beta-badge::after{animation:none;display:none}}
