/* Shared membership controls and lightweight dashboard presentation. */
.met-button{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid var(--met-blue);border-radius:8px;background:var(--met-navy);color:white;padding:11px 16px;font:600 14px/1.35 var(--apc-font,system-ui);cursor:pointer}
.met-button:disabled{opacity:.5;cursor:wait}
.met-text-button{background:none;color:var(--met-blue);border:0;padding:8px 0;font:600 13px/1.4 var(--apc-font,system-ui);cursor:pointer;text-align:left}
.met-account-dialog{width:min(540px,calc(100vw - 28px));box-sizing:border-box;max-height:calc(100dvh - 30px);padding:0;border:1px solid var(--line);border-radius:14px;background:var(--apc-white,#fff);color:var(--ink);font:400 14px/1.5 var(--apc-font,system-ui);box-shadow:0 16px 80px #032b6155}
.met-account-dialog::backdrop{background:#032b6166;backdrop-filter:blur(7px)}
.met-account-dialog>header{position:sticky;top:0;z-index:3;background:var(--met-surface,#fff);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 24px;border-bottom:3px solid var(--met-cyan)}
.met-account-dialog h2{font-size:22px;margin:0}
.met-account-dialog>header>button{font:28px/1 system-ui;border:0;background:none;color:inherit;cursor:pointer;width:38px;height:38px}
.met-account-body{padding:20px 24px}
.met-account-dialog form,.met-account-dialog label{display:grid;gap:8px}
.met-account-dialog form{gap:16px}
.met-account-dialog :is(input,select){font:inherit;box-sizing:border-box;width:100%;padding:10px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--apc-white,#fff);min-height:42px}
.met-account-dialog input[type=checkbox]{width:17px;min-height:17px;margin:2px 0;accent-color:var(--met-blue)}
.met-account-dialog .met-checkbox{display:flex;align-items:start;gap:9px}
.met-account-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.met-account-dialog [data-member-status]{margin:0;padding:0 24px 20px;color:var(--met-blue)}
.met-account-dialog .is-error{color:#b33434}
.met-account-actions{display:flex;gap:18px;margin-top:24px}
.met-honeypot{position:absolute!important;left:-99999px;opacity:0}
.met-personal-tile{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;margin:8px 0;padding:10px}
.met-personal-tile strong{flex:1}
.met-personal-tile button{min-width:32px;min-height:34px;border:1px solid var(--line);border-radius:4px;background:var(--apc-white,#fff);color:var(--ink);cursor:pointer}
.met-personal-tile select{flex-basis:100%}
.met-favorite-row{position:relative;display:flex;min-width:0;align-items:stretch;padding-right:27px}
.met-favorite-row>button:not(.met-favorite-star),.met-favorite-row>div{flex:1;min-width:0}
.met-favorite-row>.met-favorite-star{position:absolute;right:0;top:8px;background:none!important;border:0!important;color:var(--met-blue)!important;width:26px!important;padding:0!important;min-height:32px;font-size:23px!important;cursor:pointer}
.met-favorite-group{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}
.met-favorite-group h4{margin:0 0 8px!important}
.met-offline-banner{position:fixed;z-index:99999;top:0;left:50%;transform:translateX(-50%);max-width:95vw;background:#fff1d5;color:#604009;padding:6px 14px;border-radius:0 0 7px 7px;font:12px/1.4 system-ui}
@media(max-width:700px){
.met-account-dialog .met-account-columns{grid-template-columns:1fr}
.met-account-dialog>header,.met-account-body{padding:18px}}
.met-weather-tools{margin:0;padding:0;border-top:1px solid var(--line);padding-top:12px}
.met-weather-tools summary{font-size:13px;font-weight:650;cursor:pointer}
.met-weather-tools details>label{display:grid;gap:5px;margin:12px 0;font-size:12px}
.met-editor-help{font-size:11px;line-height:1.4;color:var(--muted)}
.met-editor-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.met-editor-pair label{display:grid;gap:5px;font-size:12px}
.met-editor-buttons{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.met-editor-buttons button{font-size:11px!important;background:var(--apc-white,#fff);border:1px solid var(--line);border-radius:5px;padding:6px;color:var(--ink)}
.met-weather-tools [data-editor-status]{font-size:11px;line-height:1.4;color:var(--met-blue)}
.met-weather-scene{position:absolute;inset:0;width:100%;height:100%;z-index:15;pointer-events:none}
.met-weather-scene.is-editing{pointer-events:auto;touch-action:none;cursor:crosshair}
.met-weather-tools [hidden]{display:none!important}
.met-account-dialog [hidden]{display:none!important}
.met-avatar-editor{display:flex;flex-direction:column;gap:14px}
.met-avatar-preview{display:flex;align-items:center;gap:14px;font-weight:650}
.met-avatar-preview img{border-radius:50%;border:2px solid var(--met-mint);object-fit:cover}
.met-avatar-pool{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;max-height:280px;overflow-y:auto;padding:8px 0}
.met-avatar-pool button{padding:2px;border:2px solid transparent;border-radius:50%;background:none;cursor:pointer}
.met-avatar-pool button[aria-pressed=true]{border-color:var(--met-blue)}
.met-avatar-pool img{display:block;width:100%;height:auto}
.met-avatar-crop canvas{max-width:100%;border-radius:50%;border:2px solid var(--met-mint);cursor:move;display:block;margin:0 auto 12px}
.met-avatar-crop{border:1px solid var(--line);border-radius:9px;padding:14px}
.met-avatar-crop label{display:flex;gap:8px}
.met-account-body details{border-top:1px solid var(--line);padding:12px 0}
.met-account-body details summary{cursor:pointer;font-weight:650}
.met-account-body details>form{margin-top:16px}
.met-account-links{display:flex;flex-wrap:wrap;gap:12px}
.met-password-strength{display:grid;gap:6px}
.met-password-strength meter{width:100%;height:10px}
.met-password-strength meter::-webkit-meter-bar{background:#e5edf0;border:0}
.met-password-strength meter::-webkit-meter-optimum-value{background:#ca6a31}
.met-password-strength[data-score="4"] meter::-webkit-meter-optimum-value{background:#128670}
.met-password-strength[data-score="3"] meter::-webkit-meter-optimum-value{background:#54a879}
.met-password-strength small{color:var(--muted);font-size:12px}
.met-login-history{font-size:12px;line-height:1.8}


/* Dashboard cards: one owner for each component and responsive state. */
.met-home{max-width:1600px;margin:auto;padding:0 0 38px;color:var(--ink);font:400 15px/1.5 var(--apc-font,system-ui)}
.met-home [hidden]{display:none!important}
.met-home-welcome{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 0 22px}
.met-home-welcome h1{font-size:clamp(28px,3vw,46px);letter-spacing:-.03em;line-height:1.15;color:var(--ink);margin:8px 0 14px}
.met-home-welcome p{margin:0}
.met-home-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:var(--met-blue)}
.met-home-sectors{display:flex;justify-content:space-between;gap:12px;margin:8px 0 22px;padding:9px;border:1px solid var(--line);border-radius:14px;background:var(--met-surface,#fff)}
.met-home-sectors a{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;flex:1;color:var(--met-blue);border-radius:8px}
.met-home-sectors svg{width:34px;height:34px;transition:transform .18s}
.met-home-sectors span{position:absolute;top:100%;z-index:5;display:none;white-space:nowrap;padding:6px 12px;background:var(--met-navy);border-radius:5px;color:white;font-size:12px;box-shadow:0 4px 14px #032b6122}
.met-home-sectors a:hover,.met-home-sectors a:focus-visible{background:var(--met-surface-soft)}
.met-home-sectors a:hover span,.met-home-sectors a:focus-visible span{display:block}
.met-home-sectors a:first-child span{left:0}.met-home-sectors a:last-child span{right:0}
.met-home-section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:26px 0 18px}
.met-home-section-head h2{font-size:21px;margin:0;color:var(--ink)}
.met-home-section-head a{color:var(--met-blue);font-size:13px}
.met-home-region{max-width:300px;display:grid;gap:4px}.met-home-region select{width:100%;font:inherit;min-height:40px;border:1px solid var(--line);border-radius:7px;padding:8px;background:var(--met-surface,#fff);color:var(--ink)}
.met-home-region small{font-size:11px;color:var(--muted)}
.met-home-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.met-home-tile{min-width:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--met-surface,#fff);box-shadow:0 8px 28px #032b6109;transition:box-shadow .2s}
.met-home-tile:hover{box-shadow:0 12px 30px #032b6114}
.met-home-tile>h3{padding:var(--met-card-padding,14px);padding-bottom:0;margin:0;border:0;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.met-home-tile-body{padding:var(--met-card-padding,14px);min-height:230px;display:flex;flex-direction:column;gap:10px;box-sizing:border-box}
.met-home-tile-body h4{margin:0;font-size:17px}
.met-home-tile-body>img,.met-home-tile-body>canvas{width:100%;height:210px;object-fit:cover;display:block;min-width:0}
.met-home-tile-body>canvas{object-fit:contain;background:#fff;color-scheme:light}
.met-home-tile-body>small{font-size:11px;line-height:1.45;color:var(--muted)}
.met-home-tile-body .met-home-credit{margin-top:auto}
.met-home-tile table{width:100%;border-collapse:collapse;font-size:12px}.met-home-tile th,.met-home-tile td{padding:7px 5px;text-align:right;border-bottom:1px solid var(--line)}
.met-home-tile th:first-child{text-align:left;font-weight:500;max-width:150px}.met-home-tile thead th{font-size:10px;color:var(--muted)}
.met-home-tile[data-home-tile=station]{background:radial-gradient(ellipse at 95% 0%,#086e88 0%,transparent 58%),linear-gradient(145deg,#082d61,#0c4764);color:white;border-color:#16546e;--line:#ffffff25;--ink:#fff;--muted:#b8d3df;--met-cyan:#16dccb;--met-blue:#13d4d1}
.met-home-tile[data-home-tile=station] h3{color:#adcfdc}.met-home-tile[data-home-tile=station] h4{font-size:18px;font-weight:600;color:white}
.met-home-tile[data-home-tile=station] .met-home-tile-body{gap:8px}
.met-station-summary{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:90px}
.met-station-temperature{display:grid;gap:8px}
.met-station-temperature>strong{font-size:clamp(33px,3.5vw,52px);font-weight:650;line-height:1.15;letter-spacing:-.04em;color:inherit}
.met-station-temperature>small{font-size:10px;line-height:1.5;color:var(--muted)}
.met-station-wind{display:grid;justify-items:center;max-width:110px}
.met-station-wind small{font-size:9px;text-align:center;line-height:1.3}
.met-wind-gauge{height:94px;width:94px;max-width:100%;color:inherit}.met-wind-gauge text{fill:currentColor;font-family:inherit}
.met-station-metric-tabs{display:flex;gap:14px;border-bottom:1px solid var(--line)}
.met-station-metric-tabs button{font:600 11px/1.3 var(--apc-font,system-ui);padding:6px 0;border:0;background:none;color:var(--muted);cursor:pointer}
.met-station-metric-tabs button[aria-pressed=true]{color:var(--ink);box-shadow:0 2px var(--met-cyan)}
.met-station-plot{min-width:0;height:124px}
.met-station-trend{display:block;width:100%;height:124px;touch-action:pan-y}
.met-station-trend text{font:11px var(--apc-font,system-ui);fill:var(--muted)}
.met-trend-grid{stroke:var(--line);fill:none;stroke-width:1}
.met-trend-line{fill:none;stroke:var(--met-cyan);stroke-width:2.5;stroke-linejoin:round}
.met-station-readout{font-size:10px;line-height:1.3;min-height:26px;color:var(--muted)}
.met-station-solar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:7px 0;justify-content:space-between;border-top:1px solid var(--line);font-size:10px;color:var(--ink)}
.met-home-tile[data-home-tile=station] .met-home-credit{font-size:9px;margin:0;line-height:1.2}.met-home-tile[data-home-tile=station] .met-text-button{padding:5px 0;color:#64e6da}
.met-home-news{padding:14px;box-sizing:border-box}.met-home-news .met-home-section-head{margin:0 0 12px}.met-home-news .met-home-section-head h2{font-size:17px}
.met-home-news-grid{display:flex;flex-direction:column;gap:14px}
.met-home-news-grid article{padding:0 0 14px;border:0;border-bottom:1px solid var(--line)}.met-home-news-grid article:last-child{border:0;padding-bottom:0}
.met-home-news-grid time{font-size:11px;color:var(--muted)}.met-home-news-grid h4{font-size:16px;line-height:1.35;margin:5px 0}.met-home-news-grid a{color:var(--ink);text-decoration:none}.met-home-news-grid p{font-size:12px;margin:0}
.met-home-join{background:linear-gradient(145deg,#06336a,#075869);border-color:#09677a;color:#fff;position:relative}
.met-join-illustration{height:120px;overflow:hidden}.met-join-illustration svg{width:100%;height:100%;display:block}
.met-join-copy{padding:0 18px 18px}.met-join-copy .met-home-eyebrow{color:#75dfd7;font-size:10px;margin:0 0 6px}
.met-home-join h3{font-size:23px;line-height:1.15;letter-spacing:-.02em;color:white;margin:0 0 10px}
.met-join-copy p{font-size:12px;margin:6px 0}.met-join-copy ul{padding:0;margin:10px 0;list-style:none}.met-join-copy li{font-size:11px;line-height:1.4;padding:4px 0 4px 18px;position:relative}.met-join-copy li::before{content:'✓';position:absolute;left:0;color:#61e4d5}
.met-join-roadmap{margin:10px 0 14px;font-size:11px;color:#c0e0e5}.met-join-roadmap summary{cursor:pointer}.met-join-roadmap li::before{content:'○'}
.met-join-copy .met-button{background:#70ecdb;color:#073655;border:0;padding:10px 14px;font-weight:650}
.met-home-profile{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--met-surface,#fff);margin-top:14px;max-width:540px}
.met-home-profile>div{display:grid;gap:3px;flex:1;min-width:0}.met-home-profile small{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.met-home-profile>button{margin-left:auto;flex-shrink:0}.met-home-profile img{border-radius:50%;object-fit:cover;width:54px;height:54px}
@media(max-width:1150px){.met-home-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.met-home{padding-top:10px}.met-home-tiles{grid-template-columns:minmax(0,1fr)}.met-home-welcome{align-items:flex-start;flex-direction:column;gap:12px}.met-home-welcome h1{font-size:30px}.met-home-sectors{gap:3px;padding:7px}.met-home-sectors a{min-width:0;min-height:38px}.met-home-sectors svg{width:26px;height:26px}.met-home-section-head h2{font-size:18px}.met-home-region{max-width:180px}.met-home-tile-body>img,.met-home-tile-body>canvas{height:190px}.met-station-temperature>strong{font-size:46px}}
@media(prefers-reduced-motion:reduce){.met-home-tile,.met-home-sectors svg{transition:none}}

/* Opening motion is cosmetic; the server-delivered greeting remains readable throughout. */
.met-home-greeting{position:relative;width:fit-content;animation:met-greeting-arrive .65s cubic-bezier(.2,.7,.2,1) both}
.met-home-greeting::after{content:"";display:block;position:absolute;left:0;bottom:-7px;width:62%;height:3px;border-radius:4px;background:linear-gradient(90deg,var(--met-mint),var(--met-blue),transparent);transform-origin:left;animation:met-greeting-trail .85s cubic-bezier(.2,.7,.2,1) both}
html.met-loading-page .met-home-greeting,html.met-loading-page .met-home-greeting::after{animation-play-state:paused}
@keyframes met-greeting-arrive{from{transform:translateY(9px);filter:blur(1px)}to{transform:translateY(0);filter:none}}
@keyframes met-greeting-trail{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.met-home-greeting,.met-home-greeting::after{animation:none;filter:none;transform:none}}
@media(max-width:600px){body.metexplorer-site .met-home>.met-home-title{display:none}}
