/* ContestProp balanced presentation refinements. */
.logo{background:transparent!important}

/* TropoScout-style application header. */
.site-header{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;grid-template-areas:"brand status actions";align-items:center;column-gap:10px;row-gap:4px;min-height:64px;padding:5px 14px;background:#0b1015;border-bottom:1px solid #2d3946;color:#e8edf3;font-family:Segoe UI,Arial,sans-serif}
.main-brand{grid-area:brand;display:flex;align-items:center;min-width:0;white-space:nowrap}
.brand-logo{display:block;width:auto;height:52px;max-width:250px;object-fit:contain}
.version-badge{display:inline-flex;align-items:center;height:19px;padding:0 6px;margin-left:6px;border:1px solid #395064;border-radius:10px;background:#132332;color:#8fcdf4;font-size:9px;font-weight:700;line-height:1;white-space:nowrap}
.header-model-state{grid-area:status;justify-self:center;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;border:1px solid #2d3946;border-radius:18px;padding:7px 11px;font-size:12px;color:#d9e4ec;background:#101820}
.header-model-state.good{border-color:#277b58;color:#71f2c8;background:#103126}
.header-model-state.stale,.header-model-state.warming-up{border-color:#8d6b2d;color:#ffe08a;background:#30250d}
.header-model-state.error,.header-model-state.degraded{border-color:#8b3c42;color:#ff9aa8;background:#35151a}
.header-actions{grid-area:actions;display:flex;align-items:center;gap:7px;justify-self:end}
.help-button,.support-button{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 10px;border:1px solid #3b4d60;border-radius:14px;background:#253343;color:#fff;text-decoration:none;font-size:10px;font-weight:700;letter-spacing:.03em;cursor:pointer;white-space:nowrap}
.help-button:hover{background:#14699b;border-color:#42a7df}.support-button{background:#f2c744;border-color:#ffe27a;color:#111820}.support-button:hover{background:#ffe06a;border-color:#fff0a6;color:#111820}

/* Compact operator help: detail lives in /help, not permanent prose blocks. */
.section-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.info-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid #40516d;border-radius:50%;background:#132332;color:#8fcdf4;font-size:12px;font-weight:800;line-height:1;cursor:help;user-select:none;flex:0 0 auto}
.info-dot:hover{background:#19415b;border-color:#5ebcf2;color:#fff}
.operator-note-hidden{display:none!important}

/* Hourly strategy: compact enough to fit, but large enough to scan quickly. */
.heat{width:max-content;min-width:0;border-spacing:3px}
.heat th{padding:4px 5px;font-size:12px;line-height:1.1;white-space:nowrap}
.heat td{min-width:48px;padding:6px 5px;font-size:12px;line-height:1.1;border-radius:6px;white-space:nowrap}
.heat th:first-child{min-width:58px}

/* Regional outlook: keep one-line cells, but restore comfortable reading size. */
.regional{width:max-content;min-width:1120px}
.regional th,.regional td{padding:5px 8px;font-size:12px;line-height:1.12;white-space:nowrap}
.regional th{padding-top:6px;padding-bottom:6px}
.regional td:first-child,.regional th:first-child{min-width:220px}
.regional .group td{padding-top:5px;padding-bottom:5px;font-size:11px;line-height:1.05}
.regional .best{min-width:92px}
.cellconf{display:none}
.leaders{padding:8px 10px;margin:7px 0 10px;font-size:13px;line-height:1.25}

/* World contest-propagation map. */
.world-map-panel .section-title{margin-bottom:10px}
.map-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}
.map-time-controls,.map-band-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.map-time-label{min-width:122px;text-align:center;font-size:12px;font-weight:800;color:#eaf4ff;padding:6px 10px;border:1px solid #344763;border-radius:14px;background:#0d1524}
.map-button,.map-band-button{border:1px solid #3b4d60;border-radius:14px;background:#253343;color:#fff;padding:6px 10px;font-size:11px;font-weight:800;cursor:pointer}
.map-button:hover,.map-band-button:hover{background:#14699b;border-color:#42a7df}
.map-band-button.active{background:#14699b;border-color:#68c7ff;box-shadow:0 0 0 1px #68c7ff33 inset}
/* Taller aspect plus renderWorldCopies:false in JS keeps one complete world visible. */
#propagation-map{position:relative;width:100%;height:clamp(560px,48vw,760px);min-height:560px;border:1px solid #2a3850;border-radius:10px;overflow:hidden;background:#07101a}
#propagation-map .maplibregl-canvas{outline:none}
#propagation-map .maplibregl-marker{z-index:5}
.map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px;padding:8px 10px;background:#0d1524;border:1px solid #263652;border-radius:8px;font-size:11px;color:#cbd8e7}
.map-legend-title{font-weight:800;color:#fff;margin-right:2px}.map-prob-ramp{width:min(360px,65vw);height:11px;border-radius:7px;background:linear-gradient(90deg,hsl(8 72% 24%),hsl(42 72% 31%),hsl(74 72% 35%),hsl(104 72% 39%),hsl(126 72% 41%))}
.map-legend-labels{display:flex;justify-content:space-between;width:min(360px,65vw);font-size:9px;color:#9fb0c5}.map-band-key{display:flex;gap:8px;flex-wrap:wrap}.map-key-item{display:inline-flex;align-items:center;gap:4px}.map-key-swatch{width:11px;height:11px;border-radius:3px;border:1px solid #ffffff44}
.maplibregl-popup-content{background:#0d1524!important;color:#f7f9fc!important;border:1px solid #40516d;border-radius:8px!important;padding:9px 11px!important}.maplibregl-popup-tip{border-top-color:#0d1524!important}.map-popup-title{font-weight:900;font-size:13px;margin-bottom:4px}.map-popup-row{font-size:11px;color:#c2cede;line-height:1.4}.map-popup-row b{color:#fff}

/* Ranked contest plan: every band is visible, best at the left, worst at the right. */
.band-plan-panel .section-title{margin-bottom:10px}
.bandplan{border-collapse:separate;border-spacing:4px;width:max-content;min-width:820px;max-width:none}
.bandplan th,.bandplan td{padding:7px 12px;text-align:center;font-size:13px;line-height:1.1;border-radius:7px;white-space:nowrap}
.bandplan th{background:#15243d;color:#fff;font-weight:800}
.bandplan td:first-child,.bandplan th:first-child{text-align:left;min-width:78px;background:#0d1524}
.ranked-band-cell{min-width:94px;color:#fff;text-shadow:0 1px 2px #000b}
.ranked-band-cell.rank-best{outline:2px solid #ffffff66;outline-offset:-2px}
.ranked-band{display:block;font-size:15px;font-weight:900;line-height:1.05}
.ranked-score{display:block;margin-top:3px;font-size:11px;font-weight:800;color:#fff}

/* Make both PDF controls visibly colour actions rather than grey secondary buttons. */
.btn.colour-pdf,#pdf.colour-pdf{background:linear-gradient(90deg,#2376ff,#8c3cff);border:1px solid #5b7cff;color:#fff}

/* Standalone help page, matching the main header. */
.help-page{margin:0;min-height:100vh;background:#0d1319;color:#dfe8ef;font-family:Segoe UI,Arial,sans-serif;overflow:auto}
.help-site-header{position:sticky;top:0;z-index:30;box-shadow:0 2px 12px #0006}
.help-layout{display:grid;grid-template-columns:220px minmax(0,900px);justify-content:center;gap:22px;padding:22px 18px 50px}
.help-nav{position:sticky;top:82px;align-self:start;display:flex;flex-direction:column;gap:4px;padding:12px;background:#111820;border:1px solid #2d3946;border-radius:8px}
.help-nav strong{padding:4px 7px 7px;color:#fff}.help-nav a{padding:7px;border-radius:5px;color:#a9c8dc;text-decoration:none;font-size:12px}.help-nav a:hover{background:#172534;color:#fff}
.help-content section{scroll-margin-top:82px;background:#151e28;border:1px solid #2d3946;border-radius:8px;padding:18px 20px;margin-bottom:14px;line-height:1.55}.help-content h1{margin:0 0 10px;font-size:28px}.help-content h2{margin:0 0 10px;font-size:21px}.help-content h3{margin:0 0 5px;font-size:14px}.help-content p{color:#c2ced8}.help-note{padding:10px 12px;border-left:3px solid #42a7df;background:#101820;border-radius:4px;color:#dce8ef}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.help-grid article{padding:10px 11px;background:#101820;border:1px solid #273642;border-radius:6px}.help-grid article p{margin:0;font-size:12px}.help-dl{display:grid;grid-template-columns:160px 1fr;gap:8px 13px;margin:0}.help-dl dt{font-size:12px;font-weight:700;color:#fff}.help-dl dd{margin:0;color:#c2ced8;font-size:12px}.help-scale{display:grid;grid-template-columns:repeat(5,1fr);margin:12px 0;border-radius:6px;overflow:hidden;background:linear-gradient(90deg,hsl(8 72% 24%),hsl(42 72% 31%),hsl(74 72% 35%),hsl(104 72% 39%),hsl(126 72% 41%));padding:9px 7px}.help-scale span{font-size:9px;text-align:center;color:#fff;text-shadow:0 1px 2px #000}.help-scale b{display:block;font-size:10px}.help-support{width:max-content}.help-footer{text-align:center;padding:14px;color:#758594;font-size:10px}

@media(max-width:1000px){
  .heat td{min-width:46px;padding:6px 4px}
  .regional{min-width:1000px}
  .regional td:first-child,.regional th:first-child{min-width:190px}
}

@media(max-width:900px){
  .site-header{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "status status";align-items:center;min-height:78px;padding:5px 9px 6px;column-gap:7px;row-gap:3px}
  .brand-logo{height:46px;max-width:min(230px,46vw)}
  .version-badge{height:17px;padding:0 5px;margin-left:4px;font-size:8px}
  .header-model-state{justify-self:stretch;width:100%;max-width:none;padding:4px 8px;font-size:9px;line-height:1.2;white-space:normal;overflow:visible;text-overflow:clip}
  .header-actions{gap:4px}
  .help-button,.support-button{height:26px;padding:0 8px;font-size:9px}
}

@media(max-width:800px){
  .help-layout{display:block;padding:12px 8px 30px}.help-nav{position:static;display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:10px}.help-nav strong{grid-column:1/-1}.help-content section{padding:14px 13px}.help-grid{grid-template-columns:1fr}.help-dl{grid-template-columns:1fr}.help-dl dd{margin:0 0 6px}.help-scale{grid-template-columns:1fr}.help-scale span{padding:3px}
}

@media(max-width:600px){
  .heat td{min-width:44px;padding:6px 4px;font-size:11px}
  .heat th{font-size:11px}
  .regional{min-width:900px}
  .regional th,.regional td{padding:5px 6px;font-size:11px}
  .regional td:first-child,.regional th:first-child{min-width:165px}
  .bandplan{min-width:720px}
  .bandplan th,.bandplan td{padding:6px 9px;font-size:12px}
  .ranked-band-cell{min-width:82px}
  .ranked-band{font-size:14px}
  #propagation-map{height:520px;min-height:480px}
  .map-toolbar{align-items:stretch}.map-time-controls,.map-band-controls{width:100%;justify-content:center}.map-band-button{flex:1 0 52px;padding:7px 5px}.map-time-label{flex:1}.map-prob-ramp,.map-legend-labels{width:100%;max-width:none}
  .section-actions{width:100%;justify-content:space-between}
}

@media(max-width:430px){
  .site-header{min-height:76px;padding-left:7px;padding-right:7px;column-gap:5px}.brand-logo{height:42px;max-width:min(195px,45vw)}.version-badge{height:16px;padding:0 4px;margin-left:3px;font-size:7px}.header-actions{gap:3px}.support-button,.help-button{height:24px;padding:0 6px;font-size:8px}
}