/* RadioMeteo /meteo/ — coherent navy surfaces and readable text.
   Loaded after dashboard.css. Does not change sensors, data or scripts. */
:root {
  --rm-navy: #0b2638;
  --rm-surface: #17384a;
  --rm-line: #345565;
  --rm-text: #edf5f6;
  --rm-muted: #c9dce1;
}
body { background: #102e40 !important; color: var(--rm-text); font-size: 16px; line-height: 1.5; }
.site-top, .tabs { background: var(--rm-navy) !important; border-color: var(--rm-line) !important; }
.rm-brand, .rm-brand-name, .station-title strong, .station-title span,
.header-right, .hdr-val { color: var(--rm-text) !important; }
.rm-brand-name span { color: #88d1d2 !important; }
.rm-brand-tagline, .header-right { font-size: 14px !important; color: var(--rm-muted) !important; }
.station-title strong { font-size: clamp(18px, 1.5vw, 22px) !important; }
.station-title span, .sensor-warn { font-size: 14px !important; }
.tabs .tab, .tabs button.tab { font-size: 16px !important; color: var(--rm-muted); min-height: 48px; }
.tabs .tab.active, .tabs button.tab.active { color: #fff !important; background: #19445a; border-bottom-color: #7fd4d0 !important; }
.tabs .tab:hover { color: #fff !important; }

/* One surface for cards. Data series and warning colors still convey their meaning. */
.gf-panel, .gf-stat-tile, .gf-stat, .gf-stat.blue, .gf-date-controls,
.gf-windy-panel, .rm-day-card, .ag-metrics article, .ag-soil article,
.console-panel, .stat-card, .chart-card, .rec-card {
  background: var(--rm-surface) !important;
  border-color: var(--rm-line) !important;
  color: var(--rm-text);
}
.gf-monthly, .gf-monthly tbody tr:nth-child(n),
.rm-hour-table tbody tr:nth-child(n) { background: var(--rm-surface) !important; }
.gf-monthly tbody tr:hover, .rm-hour-table tbody tr:hover { background: #205067 !important; }

/* Section headers match the dark bars used on WordPress pages. */
.gf-toolbar, .stat-header, .gf-row > summary, .gf-panel > h2,
.gf-chart > h2, .gf-hist-chart > h2, .gf-stat-tile > h2,
.gf-stat > h2, .gf-records .gf-panel > h2,
.console-title, .wc-hdr, .chart-card > h3,
.rm-fc-chart > h2, .rm-stream > h2,
.ag-section > h2, .ag-station-head h2 {
  background: var(--rm-navy) !important;
  color: #fff !important;
  border-color: var(--rm-line) !important;
}
.gf-toolbar, .stat-header { border: 1px solid var(--rm-line); border-radius: 8px; padding: 14px 18px; margin-bottom: 14px; }
.gf-toolbar h1, .stat-header h2 { color: #fff !important; font-size: clamp(22px, 2vw, 28px) !important; line-height: 1.3; }
.gf-row > summary { font-size: 18px !important; }
.gf-panel > h2, .gf-chart > h2, .gf-hist-chart > h2,
.gf-stat-tile > h2, .gf-stat > h2, .gf-records .gf-panel > h2,
.console-title h2, .chart-card > h3, .rm-fc-chart > h2 {
  font-size: 17px !important;
  line-height: 1.35 !important;
}
.gf-panel > h2, .gf-chart > h2, .gf-hist-chart > h2,
.gf-stat-tile > h2, .gf-stat > h2, .gf-records .gf-panel > h2 {
  padding: 9px 12px !important;
  margin: 0 0 10px !important;
}
.console-title { min-height: 46px; height: auto; padding: 8px 12px; }
.console-title h2 { padding: 0 66px 0 0; }
.wc-hdr, .chart-card > h3, .ag-section > h2, .ag-station-head h2 { padding: 10px 14px; }
.gf-subtitle, .gf-status, .gf-stat-tile p,
.gf-windy-panel p, .gf-records p { color: var(--rm-muted) !important; }

/* Readable labels in live observations, forecasts, statistics and charts. */
.gf-toolbar, .gf-subtitle, .gf-status, .gf-gauge .gf-reading,
.gf-stat small, .gf-stat-tile p, .gf-hist-note, .gf-legend,
.gf-legend table td, .gf-rose-legend, .gf-rose-note,
.gf-date-controls, .gf-date-controls :is(label,input,button),
.gf-history-controls :is(select,button), .gf-windy-panel :is(p,a),
.gf-monthly :is(th,td), .gf-records p, .gf-tooltip,
.rm-day-sun, .rm-stream-status,
.panel-live, .instrument-foot, .instrument-foot button,
.console-statusbar, .console-statusbar button,
.wc-ftr{ font-size: 14px !important; line-height: 1.45 !important; }
.gf-stat-tile p, .gf-hist-note, .gf-rose-note,
.gf-stat small, .gf-legend, .gf-windy-panel p,
.rm-day-head p, .rm-day-metrics span, .rm-day-sun,
.rm-forecast-source, .instrument-foot, .console-statusbar,
.wc-ftr { color: var(--rm-muted) !important; }
.gf-controls :is(select,button), .gf-date-controls :is(input,button),
.gf-history-controls :is(select,button), .gf-monthly{ font-size: 15px !important; }
.gf-legend { overflow-x: auto !important; }
.gf-legend table td { white-space: normal; }
.gf-gauge svg text, .gf-chart svg text, .gf-rose text { font-size: 14px !important; }
.gf-monthly th, .rm-hour-table th { background: var(--rm-navy) !important; color: #fff !important; }
.gf-stat-tile { min-height: 170px; }
.gf-stat { min-height: 125px; }
.gf-windy-panel a, .rm-forecast-source a { color: #9ddde0 !important; }

/* Controls and legal text are part of the same public interface. */
.rm-static-legal :is(a,button), footer, .footer-inner,
.disc-title{ font-size: 14px !important; line-height: 1.5 !important; }
footer, .instrument-foot { background: var(--rm-navy) !important; border-color: var(--rm-line) !important; }
.rm-consent-card h2, .rm-consent-dialog h2, .rm-legal-dialog-head h2 {
  background: var(--rm-navy);
  color: #fff;
  padding: 10px 14px;
  border-radius: 8px;
}
.rm-consent-kicker, .rm-consent-copy p:last-child,
.rm-pref-row :is(strong,span), .rm-consent-btn {
  font-size: 15px !important;
  line-height: 1.5 !important;
}
.rm-consent-btn { min-height: 44px; }

@media (max-width: 760px) {
  .site-top { gap: 8px; padding: 12px !important; }
  .header-right { justify-content: center; }
  .tabs .tab, .tabs button.tab { font-size: 15px !important; }
  .gf-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gf-stats { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gf-stat { min-height: 145px; }
  .gf-stat-tile { min-height: 185px; }
  .gf-gauge h2 { font-size: 15px !important; }
  .gf-gauge .gf-reading { font-size: 14px !important; }
  .console-title { white-space: normal; }
}
@media (max-width: 420px) {
  .gf-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gf-stats { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gf-stat-grid { grid-template-columns: 1fr; }
  .gf-records { grid-template-columns: 1fr 1fr; }
  .gf-toolbar, .stat-header { padding: 12px; }
}

/* Coloured instrument bands and wider observation cards. */
@media (min-width: 1101px) {
  .gf-top { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 3.8fr); }
  .gf-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.gf-gauge { padding: 0 8px 10px; }
.gf-gauge svg { max-width: 230px; max-height: 230px; }
.gf-gauge svg .gf-scale-label { fill: #d4e8eb; font-size: 14px !important; font-weight: 600; }
.gf-gauge svg .gf-unit-label { fill: #c9dce1; font-size: 14px !important; }
.gf-gauge svg .gf-dial-value { fill: #fff; font-size: 29px !important; font-weight: 750; paint-order: stroke; stroke: #173849; stroke-width: 2px; }
.gf-gauge .gf-reading { color: #d4e8eb !important; font-size: 14px !important; }
.gf-stat { min-height: 100px; }
.gf-stat > h2 { display: flex; align-items: center; justify-content: center; min-height: 52px; margin-bottom: 5px !important; font-size: 16px !important; overflow-wrap: normal; }
.gf-stat strong { color: #fff; font-size: 25px !important; line-height: 1.15; overflow-wrap: anywhere; }
.gf-stat small { color: #d4e8eb !important; font-size: 14px !important; padding-bottom: 10px; }
@media (max-width: 760px) { .gf-stat { min-height: 145px; } }

/* Keep the three gauges together, with observations using the full width below. */
.gf-top { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.gf-gauge svg { max-width: 300px; max-height: 300px; }
.gf-stats { grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); }
#gf-extra[hidden] { display: none !important; }
@media (max-width: 760px) {
  .gf-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gf-top > .gf-gauge:nth-child(3) { grid-column: 1 / -1; width: min(100%, 360px); justify-self: center; }
  .gf-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Values belong immediately below their corresponding plot. */
.gf-chart-today { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 155px), 1fr)); gap: 8px; padding: 10px 12px 14px; border-top: 1px solid var(--rm-line); }
.gf-chart-today[hidden] { display: none; }
.gf-chart-rain { grid-template-columns: repeat(auto-fit, minmax(min(100%, 155px), 1fr)); }
.gf-chart-today > span { display: flex; flex-direction: column; gap: 5px; text-align: center; min-width: 0; padding: 8px; border: 1px solid var(--rm-line); border-radius: 5px; }
.gf-chart-today b { color: var(--rm-muted); font-size: 15px; font-weight: 600; }
.gf-chart-today strong { color: #fff; font-size: clamp(17px, 1.3vw, 22px); line-height: 1.3; overflow-wrap: anywhere; }
.gf-stat { justify-content: flex-start; gap: 6px; min-height: 105px; }
.gf-stat strong { padding: 0 8px 15px; font-size: clamp(20px, 2vw, 27px) !important; white-space: nowrap; }
.gf-stat strong em { font-size: 16px; font-style: normal; font-weight: 500; color: var(--rm-muted); }
.gf-stat > h2 { min-height: 0; margin-bottom: 8px !important; }

/* Graphs keep enough width for axes and summaries. */
.gf-charts { grid-template-columns: minmax(0, 1fr) !important; max-width: 1100px; margin-inline: auto; }
.gf-charts .gf-chart { min-height: 0; }
.gf-charts .gf-plot { min-height: 245px; }
.gf-charts .gf-plot > svg { height: 245px; }
.gf-chart .gf-legend { min-height: 0; padding: 7px 4px 10px; }
.gf-chart .gf-legend-caption { color: var(--rm-muted); font-size: 14px; padding: 2px 8px 7px; }
.gf-instant-wind { margin: 8px 8px 4px; padding: 9px 12px; color: var(--rm-muted); font-size: 15px; border-top: 1px solid var(--rm-line); }
.gf-instant-wind strong { color: #fff; font-size: 19px; }
.gf-chart .gf-legend table { width: 100%; table-layout: auto; }
.gf-chart .gf-legend table :is(th,td) { color: var(--rm-text); font-size: 15px !important; line-height: 1.45 !important; padding: 6px 8px !important; text-align: right; white-space: nowrap; }
.gf-chart .gf-legend table th:first-child { text-align: left; }
.gf-chart .gf-legend thead th { color: #a8dbe2; font-weight: 600; }
.gf-chart svg text { font-size: 15px !important; fill: #e5f2f4 !important; }
.gf-chart .gf-expand { font-size: 22px; color: #fff; padding: 4px 8px; }
@media (max-width: 900px) {
  .gf-chart .gf-legend { overflow-x: auto !important; }
}
@media (max-width: 520px) {
  .gf-chart-today { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
  .gf-chart .gf-legend table :is(th,td) { font-size: 14px !important; }
}

/* Current lunar phase and the eight steps of its cycle. */
.gf-moon { margin: 12px 0; padding-bottom: 14px; }
.gf-moon-current { display: flex; align-items: center; gap: 18px; padding: 10px 22px 16px; }
#gf-moon-icon { font-size: 58px; line-height: 1; }
.gf-moon-current strong { display: block; color: #fff; font-size: 22px; }
.gf-moon-current p { margin: 3px 0; color: #dcecef; font-size: 17px; }
.gf-moon-current small { color: var(--rm-muted); font-size: 14px; }
.gf-moon-sequence { display: grid; grid-template-columns: repeat(8,minmax(0,1fr)); gap: 5px; padding: 0 14px; }
.gf-moon-sequence > span { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 7px 2px; border: 1px solid var(--rm-line); border-radius: 5px; text-align: center; }
.gf-moon-sequence > span.active { background: #24566a; outline: 2px solid #83d4dc; }
.gf-moon-sequence > span > span { font-size: 27px; }
.gf-moon-sequence small { color: var(--rm-muted); font-size: 15px; line-height: 1.25; }

/* Each forecast day is a full-width horizontal row. */
.panel-forecast .fc-pro-grid { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 8px !important; }
.panel-forecast .fc-card { display: grid; grid-template-columns: minmax(160px,1fr) minmax(130px,1fr) minmax(130px,.8fr) minmax(290px,2fr); gap: 16px; align-items: center; min-height: 0 !important; padding: 14px 18px !important; }
.panel-forecast .fc-top { flex-direction: row; align-items: center; justify-content: space-between; }
.panel-forecast .fc-card :is(.fc-cond,.fc-temp,.fc-details) { margin: 0; min-height: 0; }
.panel-forecast .fc-details { min-width: 0; }
.panel-forecast .fc-detail { align-items: flex-start; }
.rm-days-grid { grid-template-columns: minmax(0,1fr) !important; }
.rm-day-card { display: grid; grid-template-columns: minmax(180px,1fr) minmax(280px,1.3fr) minmax(260px,1.6fr); gap: 16px; align-items: start; min-height: 0; }
.rm-day-card :is(.rm-day-metrics,.rm-day-description) { margin: 0; }
.rm-day-card .rm-day-sun { grid-column: 1 / -1; margin: 0; }
@media (max-width: 900px) {
  .panel-forecast .fc-card { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .panel-forecast .fc-details { grid-column: 1 / -1; }
  .rm-day-card { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rm-day-card .rm-day-description { grid-column: 1 / -1; }
  .gf-moon-sequence { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .panel-forecast .fc-card, .rm-day-card { grid-template-columns: minmax(0,1fr); }
  .panel-forecast .fc-details, .rm-day-card :is(.rm-day-description,.rm-day-sun) { grid-column: auto; }
  .gf-moon-current { padding-inline: 14px; }
  .gf-moon-sequence { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Agroclima: dashboard leggibile su telefono, ispirata alla scheda fornita. */
#page-agro { max-width: 1460px; margin: 0 auto; color: #edf5f6; }
#page-agro .ag-toolbar { margin: 12px 0 18px; }
#page-agro .ag-toolbar h1 { font-size: clamp(24px, 3vw, 34px); }
#page-agro .ag-hero, #page-agro .ag-card { background: #17384a !important; border: 1px solid #466574 !important; border-radius: 17px; box-shadow: 0 8px 22px #061b2a36; }
#page-agro .ag-hero { padding: clamp(18px, 3vw, 36px); margin: 0 0 18px; }
#page-agro .ag-eyebrow { color: #a8ddc5; font-size: 15px; font-weight: 750; letter-spacing: .08em; }
#page-agro .ag-balance-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 15px; }
#page-agro .ag-balance-head h2 { background: none !important; padding: 0 !important; border: 0 !important; margin: 0; color: #fff !important; font: 750 clamp(21px, 2.4vw, 30px)/1.2 Arial !important; }
#page-agro .ag-balance-head strong { color: #f6c45b; font-size: clamp(22px, 2.4vw, 30px); white-space: nowrap; }
#page-agro .ag-balance-scale { height: 13px; margin: 22px 5px 13px; position: relative; border-radius: 20px; background: linear-gradient(90deg,#bb9150,#d8ba67 47%,#75b8b4 52%,#3b9ac2); }
#page-agro .ag-balance-scale span { position: absolute; top: 50%; left: 50%; width: 24px; height: 24px; border: 3px solid #fff; border-radius: 50%; background: #f1bc46; box-shadow: 0 2px 8px #091b2b; transform: translate(-50%,-50%); }
#page-agro .ag-balance-note { font-size: 17px; color: #e9f0ef; margin: 0 0 22px; }
#page-agro .ag-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin: 0; }
#page-agro .ag-metrics article { min-width: 0; padding: 16px; border: 1px solid #5c7785; border-radius: 16px; background: #244656 !important; }
#page-agro .ag-metrics article > span:not(.ag-metric-icon) { color: #dbe8e9; font-size: 15px; line-height: 1.35; }
#page-agro .ag-metric-icon { font-size: 28px !important; display: block; margin-bottom: 7px; }
#page-agro .ag-metrics strong { color: #fff; font: 750 clamp(25px,2.6vw,37px)/1.15 Arial; margin-top: 9px; white-space: nowrap; }
#page-agro .ag-metrics strong small { font-size: 16px; color: #cfe0e3; font-weight: 500; }
#page-agro .ag-hero-foot, #page-agro .ag-card-note { color: #d0dfe2; font-size: 15px; line-height: 1.5; }
#page-agro .ag-hero-foot { margin: 16px 0 0; }
#page-agro .ag-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 18px; }
#page-agro .ag-card { padding: clamp(18px,2.2vw,26px); margin: 0 0 18px; }
#page-agro .ag-two-col .ag-card { margin: 0; }
#page-agro .ag-card > h2 { background: #0b2638 !important; border-radius: 8px; color: #fff !important; font: 750 22px/1.35 Arial !important; text-align: left !important; padding: 10px 14px !important; margin: 0 0 18px !important; }
#page-agro .ag-moon-layout { display: flex; align-items: center; gap: 22px; }
#page-agro #ag-moon-disc { width: 158px; height: 158px; flex: 0 0 158px; border-radius: 50%; background: #0b2638; filter: drop-shadow(0 0 12px #c1dcdd48); }
#page-agro .ag-moon-copy { display: grid; gap: 7px; font-size: 16px; color: #d8e8ea; }
#page-agro .ag-moon-copy strong { color: #fff; font-size: 23px; }
#page-agro .ag-outlook { display: grid; gap: 10px; }
#page-agro .ag-outlook > div { display: flex; align-items: center; gap: 13px; border: 1px solid #4b6978; border-radius: 10px; padding: 10px 13px; }
#page-agro .ag-outlook > div > span { font-size: 26px; }
#page-agro .ag-outlook strong, #page-agro .ag-outlook small { display: block; }
#page-agro .ag-outlook small { color: #d2e1e4; font-size: 15px; }
#page-agro .ag-day-list { display: grid; gap: 10px; }
#page-agro .ag-day { display: grid; grid-template-columns: minmax(130px,1.2fr) repeat(5,minmax(110px,1fr)); gap: 10px; align-items: center; border: 1px solid #486777; background: #214456; border-radius: 11px; padding: 13px 15px; }
#page-agro .ag-day h3 { color: #fff; margin: 0; font: 750 18px Arial; text-transform: capitalize; }
#page-agro .ag-day div span, #page-agro .ag-day div strong { display: block; }
#page-agro .ag-day div span { color: #c9dfe2; font-size: 14px; }
#page-agro .ag-day div strong { color: #fff; font-size: 17px; margin-top: 3px; white-space: nowrap; }
#page-agro .ag-explain { margin-top: 20px; }
#page-agro .ag-explain summary { color: #b6e3ef; font-size: 16px; }
#page-agro .ag-explain p { color: #d6e4e7; font-size: 16px; line-height: 1.55; }
#page-agro .ag-stations { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
#page-agro .ag-station { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 15px; border: 1px solid #4c6b7b; background: #214456; border-radius: 12px; }
#page-agro .ag-station-pin { font-size: 27px; color: #8ed5d2; }
#page-agro .ag-station > div { min-width: 0; flex: 1; }
#page-agro .ag-station strong, #page-agro .ag-station small { display: block; }
#page-agro .ag-station strong { font-size: 17px; color: #fff; }
#page-agro .ag-station small { font-size: 14px; color: #cfdee3; }
#page-agro .ag-station a { display: inline-block; color: #b8eafa !important; font-size: 15px; font-weight: 700; white-space: nowrap; text-decoration: underline; }
#page-agro .rm-forecast-source { margin: 14px 0 30px; }
@media(max-width:960px){#page-agro .ag-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }#page-agro .ag-day { grid-template-columns: repeat(3,minmax(0,1fr)); }#page-agro .ag-day h3 { grid-column: 1 / -1; }#page-agro .ag-stations { grid-template-columns: 1fr; }}
@media(max-width:700px){#page-agro .ag-two-col { grid-template-columns: 1fr; gap: 12px; }#page-agro .ag-hero,#page-agro .ag-card { margin-bottom: 12px; }#page-agro .ag-balance-head { display: block; }#page-agro .ag-balance-head strong { display: block; margin-top: 7px; }#page-agro .ag-metrics { gap: 10px; }#page-agro .ag-metrics article { padding: 12px; }#page-agro .ag-moon-layout { gap: 14px; }#page-agro #ag-moon-disc { width: 118px; height: 118px; flex-basis: 118px; }#page-agro .ag-moon-copy strong { font-size: 20px; }#page-agro .ag-day { grid-template-columns: repeat(2,minmax(0,1fr)); }#page-agro .ag-day h3 { grid-column: 1 / -1; }#page-agro .ag-day div strong { font-size: 16px; white-space: normal; }#page-agro .ag-hero-foot,#page-agro .ag-card-note { font-size: 15px; }}
@media(max-width:370px){#page-agro .ag-metrics strong { font-size: 23px; }#page-agro .ag-station { flex-wrap: wrap; }#page-agro .ag-station a { margin-left: 37px; }}
/* Texture lunare realistica nella Home e in Agroclima. */
#gf-moon-icon { width: 150px; height: 150px; flex: 0 0 150px; display: block; border-radius: 50%; background: #0b2638; filter: drop-shadow(0 0 10px #a6c9d642); }
.gf-moon-sequence canvas { display: block; width: min(100%,76px); height: auto; aspect-ratio: 1; margin: 0 auto; border-radius: 50%; }
@media(max-width:570px){#gf-moon-icon { width: 112px; height: 112px; flex-basis: 112px; }.gf-moon-sequence canvas { width: min(100%,70px); }}
/* Grafici con scala regolare e fasi lunari datate. */
.gf-chart .gf-plot > svg { height: 245px; }
.gf-chart svg text { font-size: 12px !important; }
.gf-chart .gf-legend-caption { font-size: 15px; }
.gf-moon-sequence time { color: #e6c989; font-size: 14px; font-weight: 700; line-height: 1.2; }
@media(max-width:520px){.gf-chart .gf-plot { overflow-x: auto; }.gf-chart .gf-plot > svg { min-width: 460px; }}
/* Pannelli dei grafici e colonne dei riepiloghi allineati alla sezione. */
#gf-dashboard .gf-charts { width: 100%; max-width: none; margin: 0; grid-template-columns: minmax(0,1fr) !important; }
#gf-dashboard .gf-charts .gf-chart { width: 100%; min-width: 0; }
#gf-dashboard .gf-chart .gf-legend table { width: 100%; table-layout: fixed; border-collapse: collapse; }
#gf-dashboard .gf-chart .gf-legend table :is(th,td) { width: 18%; text-align: right; }
#gf-dashboard .gf-chart .gf-legend table :is(th,td):first-child { width: 28%; text-align: left; }
@media(max-width:760px){#gf-dashboard .gf-chart .gf-legend { overflow-x: auto !important; }#gf-dashboard .gf-chart .gf-legend table { min-width: 650px; }}
/* Luna e webcam: due schede sopra i grafici, senza duplicare la webcam. */
#gf-dashboard .gf-feature-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; align-items: stretch; margin: 14px 0; }
#gf-dashboard .gf-feature-row > * { min-width: 0; }
#gf-dashboard .gf-feature-row .gf-moon { margin: 0; }
#gf-dashboard .gf-feature-row #gf-webcam-slot { display: flex; }
#gf-dashboard .gf-feature-row .panel-webcam { display: flex; flex-direction: column; width: 100%; height: auto !important; min-height: 0; margin: 0; }
#gf-dashboard .gf-feature-row .panel-webcam[hidden] { display: none !important; }
#gf-dashboard .gf-feature-row #gf-webcam-slot:has(.panel-webcam[hidden]) { display: none; }
#gf-dashboard .gf-feature-row:has(.panel-webcam[hidden]) { grid-template-columns: minmax(0,1fr); }
#gf-dashboard .gf-feature-row .console-webcam { height: auto !important; aspect-ratio: 16/9; max-height: none; margin: 6px; }
#gf-dashboard .gf-feature-row .console-webcam img { width: 100%; height: 100%; object-fit: contain; }
#gf-dashboard .gf-feature-row .panel-webcam .instrument-foot { margin-top: auto; }
#gf-dashboard .gf-feature-row .gf-moon-sequence { grid-template-columns: repeat(4,minmax(0,1fr)); }
#gf-dashboard #gf-bottom { grid-template-columns: minmax(0,1fr); }
@media(max-width:850px){#gf-dashboard .gf-feature-row { grid-template-columns: minmax(0,1fr); }#gf-dashboard .gf-feature-row .gf-moon-sequence { grid-template-columns: repeat(4,minmax(0,1fr)); }}
@media(max-width:520px){#gf-dashboard .gf-feature-row .gf-moon-sequence { grid-template-columns: repeat(2,minmax(0,1fr)); }}
