html,body{margin:0;background:#02070c;color:#f7fbff;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}.app{min-height:100vh;background:linear-gradient(180deg,#06121b,#071923 55%,#031018);padding-bottom:82px}.topbar{height:84px;display:flex;align-items:center;background:linear-gradient(180deg,#071827,#020b12);border-bottom:1px solid #173040;position:sticky;top:0;z-index:1000;box-shadow:0 3px 20px rgba(0,0,0,.55)}.hamburger{font-size:32px;padding:0 18px}.brand{font-size:clamp(22px,2.6vw,40px);font-weight:900;white-space:nowrap}.brand span{color:#8cff35}.topnav{margin-left:auto;display:flex;height:100%}.topnav button{min-width:94px;background:transparent;color:#fff;border:0;border-left:1px solid #1d3848;font-size:28px;font-weight:800;cursor:pointer}.topnav small{display:block;font-size:13px}.topnav button.active{background:#06345c;color:#22a7ff}.clock{min-width:135px;text-align:center;border-left:1px solid #1d3848}.clock b{display:block;color:#8cff35;font-size:25px}.clock span{font-size:13px}.main-grid{display:grid;grid-template-columns:285px minmax(420px,1fr) 285px;gap:8px;padding:8px}.sidebar{display:flex;flex-direction:column;gap:10px}.card,.panel{background:rgba(2,12,17,.93);border:1px solid #183341;border-radius:8px;padding:14px;box-shadow:inset 0 0 18px rgba(75,216,255,.05),0 8px 18px rgba(0,0,0,.35)}h2{margin:0 0 12px;text-transform:uppercase;color:#fff;font-size:18px}h3{margin:0 0 8px;color:#51d8ff}.row{display:flex;justify-content:space-between;gap:10px;border-top:1px solid rgba(255,255,255,.08);padding:9px 0}.row b{color:#8cff35;text-align:right}.button-row{display:flex;gap:8px;margin-top:10px}button,select{background:#07457a;border:1px solid #165c99;border-radius:6px;color:#fff;font:inherit;font-weight:800;padding:8px 10px;cursor:pointer}.wide{width:100%}select{width:100%;margin-bottom:8px}input[type=range]{width:100%;accent-color:#149cf2}.map-wrap{position:relative;border:1px solid #173040;border-radius:5px;overflow:hidden;box-shadow:0 0 20px rgba(79,216,255,.17);min-height:680px}#map{width:100%;height:100%;min-height:680px}.radar-time{position:absolute;left:14px;bottom:12px;z-index:620;background:rgba(0,0,0,.72);border:1px solid #314653;border-radius:6px;padding:8px 12px;color:#8cff35;font-weight:900}.panel-area{padding:0 8px 8px}.panel{display:none}.panel.active{display:block}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}pre{white-space:pre-wrap;color:#8cff35;font:13px Consolas,monospace;line-height:1.35;margin:0}.data-grid{display:grid;grid-template-columns:1fr 2fr 1fr;gap:8px;padding:0 8px 8px}.info-line{border-top:1px solid rgba(255,255,255,.08);padding:7px 0}.info-line b{color:#51d8ff}.badge{display:inline-block;border:1px solid #314653;border-radius:999px;padding:3px 8px;margin:3px;color:#8cff35}.airport-label{background:rgba(0,0,0,.72);border:1px solid #51d8ff;border-radius:6px;color:#fff;padding:2px 5px;font-weight:900}.ownship{width:34px!important;height:34px!important;line-height:34px!important;text-align:center!important;font-size:34px!important;color:#d40016!important;text-shadow:0 0 2px #fff,0 0 8px #000!important}.ownship-label{background:rgba(0,0,0,.78);color:#fff;border:1px solid #314653;border-radius:5px;padding:6px 8px;font-weight:800;white-space:nowrap}.leaflet-radar-pane{mix-blend-mode:normal;}.nearby-item,.fav-item{display:flex;justify-content:space-between;gap:8px;border-top:1px solid rgba(255,255,255,.08);padding:7px 0}.nearby-item b{color:#8cff35}.forecast-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.wx-card{border:1px solid rgba(255,255,255,.1);border-radius:7px;padding:9px;background:rgba(5,22,30,.85)}.wx-card b{display:block;color:#8cff35;font-size:17px}.wx-card span{display:block;font-size:13px;line-height:1.35}.wx-card .rain{color:#51d8ff}.bottomnav{position:fixed;bottom:0;left:0;right:0;height:74px;background:linear-gradient(180deg,#061827,#020b12);border-top:1px solid #1d3848;display:grid;grid-template-columns:repeat(6,1fr);z-index:1000}.bottomnav button{background:transparent;border:0;border-left:1px solid #1d3848;border-radius:0;font-size:24px}.bottomnav span{display:block;font-size:13px}.bottomnav button.active{color:#159cff}.toast{position:fixed;right:18px;bottom:90px;background:rgba(0,0,0,.82);border:1px solid #314653;color:#8cff35;padding:10px 14px;border-radius:8px;z-index:2000;font-weight:900}label{display:block;margin:10px 0}@media(max-width:1150px){.topnav{display:none}.main-grid,.data-grid,.split{grid-template-columns:1fr}.map-wrap,#map{min-height:62vh}.brand{font-size:22px}.bottomnav{height:auto}.bottomnav button{font-size:20px;padding:8px}.app{padding-bottom:110px}.forecast-cards{grid-template-columns:1fr 1fr}}
/* V13.1 dew point */
#wxDewPoint,#selectedDewPoint{color:#51d8ff!important}

/* V13.2 range rings */
.range-label{
  color:#7cff46;
  background:rgba(0,0,0,.72);
  border:1px solid #314653;
  border-radius:5px;
  padding:2px 5px;
  font-size:12px;
  font-weight:900;
  text-align:center;
  white-space:nowrap;
}

/* V14.1 Weather Pro Core */
.weather-pro-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:12px}
.pro-tile{border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(5,22,30,.88);padding:10px;text-align:center}
.pro-tile span{display:block;color:#9fb3bf;font-size:12px;text-transform:uppercase}
.pro-tile b{display:block;font-size:22px;color:#8cff35;margin-top:4px}
.pro-tile.good b{color:#7cff46}.pro-tile.warn b{color:#ffd447}.pro-tile.bad b{color:#ff5151}
.decoded-box{margin-top:10px;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px;background:rgba(0,0,0,.25)}
.decode-row{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.08);padding:7px 0;gap:12px}
.decode-row:first-child{border-top:0}.decode-row b{color:#8cff35;text-align:right}
.alert-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0 12px}
.alert-card{border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:9px;background:rgba(5,22,30,.85);font-weight:800}
.alert-card.ok{color:#7cff46}.alert-card.warn{color:#ffd447}.alert-card.bad{color:#ff5151}
.runway-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.runway-card{border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(5,22,30,.85);padding:10px}
.runway-card.best{border-color:#7cff46;box-shadow:0 0 12px rgba(124,255,70,.18)}
.runway-card h4{margin:0 0 8px;color:#fff}.runway-card div{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.08);padding:6px 0}.runway-card b{color:#8cff35}
.taf-timeline{margin-top:10px;border-left:3px solid #51d8ff;padding-left:10px}
.taf-block{border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(5,22,30,.85);padding:8px;margin:8px 0}
.taf-block b{color:#8cff35}
@media(max-width:1200px){.weather-pro-grid{grid-template-columns:repeat(2,1fr)}.alert-grid,.runway-grid{grid-template-columns:1fr}}

/* V14.2 Weather Pro Plus */
.plus-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.plus-card{border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(5,22,30,.85);padding:10px}
.plus-card h4{margin:0 0 8px;color:#51d8ff}
.trend-bar{height:8px;border-radius:999px;background:#173040;margin:7px 0;overflow:hidden}
.trend-fill{height:100%;background:#8cff35}
.risk-low{color:#7cff46;font-weight:900}.risk-med{color:#ffd447;font-weight:900}.risk-high{color:#ff5151;font-weight:900}
.mini-table{width:100%;border-collapse:collapse;font-size:13px}.mini-table td{border-top:1px solid rgba(255,255,255,.08);padding:5px}.mini-table td:last-child{text-align:right;color:#8cff35;font-weight:900}
@media(max-width:1200px){.plus-grid{grid-template-columns:1fr}}

/* V19.1 Australian Weather Pro redesign */
.aus-weather-section{padding:0 8px 8px}
.aus-weather-header{display:flex;justify-content:space-between;align-items:center;gap:12px;background:rgba(2,12,17,.93);border:1px solid #183341;border-radius:8px;padding:14px;margin-bottom:8px}
.aus-weather-header h2{margin:0;color:#51d8ff}
.aus-weather-header p{margin:4px 0 0;color:#b5c4cc}
.aus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.aus-card{background:rgba(2,12,17,.93);border:1px solid #183341;border-radius:8px;padding:14px;box-shadow:inset 0 0 18px rgba(75,216,255,.05),0 8px 18px rgba(0,0,0,.35)}
.aus-card h3{margin:0 0 10px;color:#fff;text-transform:uppercase}
.wide-card{grid-column:1 / -1}
.link-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.link-grid.one{grid-template-columns:1fr;margin-top:8px}
.link-grid a{display:block;background:#07457a;border:1px solid #165c99;border-radius:6px;color:#fff;text-decoration:none;font-weight:800;padding:9px 10px;text-align:center}
.small-note{font-size:12px;color:#b5c4cc;line-height:1.35}
.status-line{border-top:1px solid rgba(255,255,255,.08);padding:7px 0;font-weight:800}
.status-line:first-child{border-top:0}
.status-line.ok{color:#7cff46}.status-line.warn{color:#ffd447}.status-line.bad{color:#ff5151}
.warn-item{border-top:1px solid rgba(255,255,255,.08);padding:8px 0}
.warn-item b{display:block;color:#ffd447}
.health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.health-tile{border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:9px;background:rgba(5,22,30,.85)}
.health-tile span{display:block;color:#b5c4cc;font-size:12px;text-transform:uppercase}
.health-tile b{display:block;margin-top:4px;color:#8cff35}
@media(max-width:1200px){.aus-grid{grid-template-columns:1fr}.health-grid{grid-template-columns:1fr 1fr}.aus-weather-header{flex-direction:column;align-items:flex-start}}

/* V19.2 integrated weather viewer */
.weather-viewer{position:fixed;inset:0;background:#02070c;z-index:5000;display:flex;flex-direction:column}
.weather-viewer.hidden{display:none}
.viewer-toolbar{height:62px;display:flex;align-items:center;gap:10px;padding:8px;background:linear-gradient(180deg,#071827,#020b12);border-bottom:1px solid #173040}
.viewer-toolbar button{background:#07457a;border:1px solid #165c99;border-radius:6px;color:#fff;font-weight:900;padding:10px 14px}
.viewer-title{flex:1;text-align:center;color:#8cff35;font-size:20px;font-weight:900}
.viewer-body{position:relative;flex:1;min-height:0}
#viewerFrame{width:100%;height:100%;border:0;background:#fff}
.viewer-fallback{position:absolute;inset:20px;z-index:2;display:none;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:rgba(2,12,17,.94);border:1px solid #183341;border-radius:10px;padding:30px}
.viewer-fallback h2{color:#51d8ff}.viewer-fallback button{margin:8px}
.viewer-history{max-height:112px;overflow:auto;border-top:1px solid #173040;background:#020b12;padding:8px 12px}
.viewer-history h3{margin:0 0 6px;color:#51d8ff}
.history-chip{display:inline-block;margin:3px;padding:6px 9px;border:1px solid #165c99;border-radius:999px;background:#07457a;color:#fff;font-weight:800;cursor:pointer}

/* Rebuilt V19.2 radar engine */
.leaflet-radar-pane .leaflet-tile-container{transition:none!important}
.leaflet-radar-pane .leaflet-tile{transition:none!important;image-rendering:auto}
