.panel {
    background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
    border:1px solid var(--line);
    border-radius:24px;
    box-shadow:var(--shadow);
    backdrop-filter: blur(6px);
  }

.side { padding:14px; position:sticky; top:12px; align-self:start; }

.main { padding:14px; }

.section-title {
    display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 10px;
  }

.section-title h2 { margin:0; font-size:17px; }

.mini { font-size:12px; color:var(--muted); }

.field { margin-bottom:12px; }

input[type="date"]{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    -webkit-appearance:none;
    appearance:none;
  }

.field input, .field select{
    width:100%;
    max-width:100%;
    min-width:0;
  }

.btn-primary {
    color:white; background:linear-gradient(180deg, #43b2ff, #1488ff); box-shadow:0 12px 24px rgba(20,136,255,.24);
  }

.btn-secondary {
    color:var(--text); background:#21324f; border:1px solid var(--line);
  }

.chip {
    border:1px solid var(--line); background:#15243b; color:var(--text); border-radius:999px;
    padding:9px 12px; font-size:13px; width:auto;
  }

.chip.active {
    background:linear-gradient(180deg, rgba(70,178,255,.25), rgba(70,178,255,.12));
    border-color:rgba(118,224,255,.35); color:#dcf5ff;
  }

.status {
    white-space:pre-wrap; margin-top:10px; background:rgba(70,178,255,.08); border:1px solid rgba(70,178,255,.18);
    color:#d9efff; border-radius:14px; padding:12px 14px; font-size:13px; line-height:1.55;
  }

.status.err {
    background:rgba(255,141,141,.08); border-color:rgba(255,141,141,.18); color:#ffd6d6;
  }

.next-tide-card { display:flex; flex-direction:column; gap:10px; }

.next-primary { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding-bottom:10px; border-bottom:1px solid var(--line); }

.next-primary-main { min-width:0; }

.next-event-line { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }

.next-event-type { font-size:clamp(22px,3vw,29px); font-weight:800; }

.next-event-time { font-size:18px; font-weight:800; color:var(--cyan); }

.next-event-date { margin-top:5px; color:var(--muted); font-size:12px; }

.next-mini { background:rgba(255,255,255,.035); border:1px solid var(--line); border-radius:14px; padding:10px 12px; }

.next-mini-label { color:var(--muted); font-size:12px; margin-bottom:5px; }

.next-mini-value { font-size:20px; font-weight:800; line-height:1.2; }

.next-mini-meta { margin-top:4px; color:var(--muted); font-size:11px; line-height:1.4; }

.card {
    background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.025));
    border:1px solid var(--line); border-radius:20px; padding:14px;
  }

.k { color:var(--muted); font-size:12px; margin-bottom:8px; }

.v { font-size:clamp(22px, 3vw, 29px); font-weight:800; line-height:1.18; }

.m { margin-top:8px; color:var(--muted); font-size:13px; line-height:1.55; }

.trend { display:flex; align-items:center; gap:10px; }

.trend-dot {
    width:12px; height:12px; border-radius:50%; background:var(--green); box-shadow:0 0 0 6px rgba(112,216,178,.12);
    flex:0 0 auto;
  }

.trend-dot.falling { background:var(--orange); box-shadow:0 0 0 6px rgba(255,179,92,.12); }

.trend-dot.flat { background:var(--cyan); box-shadow:0 0 0 6px rgba(118,224,255,.12); }

.chart-wrap { position:relative; height:320px; }

#map { height:320px; border-radius:16px; overflow:hidden; }

.pill {
    display:inline-flex; align-items:center; gap:8px; background:#15243b; border:1px solid var(--line);
    border-radius:999px; padding:8px 12px; color:var(--text); font-size:13px;
  }

.tag {
    display:inline-block; padding:5px 10px; border-radius:999px; font-size:12px;
    background:rgba(70,178,255,.12); color:#d7f1ff; border:1px solid rgba(118,224,255,.16);
  }

.table-wrap { overflow:auto; border-radius:18px; }

.legend {
    display:flex; gap:12px; flex-wrap:wrap; color:var(--muted); font-size:12px; margin-top:8px;
  }

.legend span { display:inline-flex; align-items:center; gap:6px; }

.line-mark { width:18px; height:3px; border-radius:3px; background:var(--blue); }

.dot-mark { width:9px; height:9px; border-radius:50%; background:var(--orange); }

.footer-note { margin-top:12px; color:var(--muted); font-size:12px; line-height:1.65; }

.golden-zone-mark {
    width:18px; height:10px; border-radius:3px;
    background:rgba(255,213,106,.28); border:1px solid rgba(255,213,106,.85);
  }

.hero-info { margin-bottom:0; }

.hero-info .toolbar-left { width:100%; }

.footer-brand { color:var(--text); font-size:16px; font-weight:800; margin-bottom:12px; }

.footer-contact { margin:10px 0 7px; font-size:13px; }

.footer-contact a { color:#9edcff; text-decoration:none; }

.footer-contact a:hover { text-decoration:underline; }

.shareyouniq-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:4px auto 8px;
  padding:10px 16px;
  border:1px solid rgba(47,115,124,.25);
  border-radius:999px;
  color:var(--ink);
  background:var(--brand);
  font-size:13px;
  font-weight:800;
  text-decoration:none;
}

.shareyouniq-link:hover,.shareyouniq-link:focus-visible{background:#8fcfd8;border-color:var(--brand-deep)}

.visitor-privacy{max-width:620px;margin:2px auto 10px;color:var(--muted);font-size:10px;line-height:1.55}

.footer-copy { font-size:12px; }

.version-details { max-width:620px; margin:10px auto 0; text-align:left; }

.version-details summary {
    cursor:pointer; list-style:none; text-align:center; color:#bcdcff; font-size:12px;
  }

.version-details summary::-webkit-details-marker { display:none; }

.version-log {
    margin-top:10px; padding:13px 15px; border-radius:14px;
    background:rgba(0,0,0,.16); border:1px solid var(--line);
    font-size:12px; line-height:1.75;
  }

.version-log strong { color:#eef6ff; }

.insight-grid { display:grid; grid-template-columns:1fr 1fr 1.35fr; gap:12px; margin-top:12px; }

.sea-item{background:#15243b;border:1px solid var(--line);border-radius:14px;padding:10px}

.sea-item b{display:block;font-size:18px;margin-top:4px}

.sea-item span{font-size:11px;color:var(--muted)}

.install-row{display:flex;gap:8px;justify-content:center;margin-top:12px}

.install-row button{width:auto}

.data-source-note{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.5}

.offline-banner{display:none;position:sticky;top:0;z-index:9999;margin:0 auto 10px;max-width:1180px;padding:10px 14px;border-radius:14px;background:#7a4c00;color:#fff4cf;border:1px solid rgba(255,213,106,.45);font-size:13px;line-height:1.5;box-shadow:var(--shadow)}

.offline-banner.show{display:block}

.freshness{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px}

.freshness .cache-badge{display:none;padding:3px 8px;border-radius:999px;background:rgba(255,213,106,.12);border:1px solid rgba(255,213,106,.25);color:#ffe6a3}

.freshness.cached .cache-badge{display:inline-flex}

.info-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}

.info-tile{background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:16px;padding:12px}

.info-tile-label{font-size:12px;color:var(--muted);margin-bottom:5px}

.info-tile-value{font-size:18px;font-weight:800}

.info-tile-meta{font-size:11px;color:var(--muted);margin-top:4px}

.safety-box{max-width:900px;margin:14px auto 0;padding:12px 14px;border-radius:14px;background:rgba(255,179,92,.08);border:1px solid rgba(255,179,92,.22);color:#f7d9ad;font-size:12px;line-height:1.7;text-align:left}

.update-toast{display:none;position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:9999;width:min(92vw,520px);padding:12px 14px;border-radius:16px;background:#16314f;border:1px solid rgba(118,224,255,.28);box-shadow:var(--shadow);align-items:center;gap:10px}

.update-toast.show{display:flex}

.update-toast span{flex:1;font-size:13px}

.update-toast button{width:auto;padding:8px 12px}

.app-header{position:sticky;top:0;z-index:800;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin:0 -2px 12px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(7,16,28,.82);backdrop-filter:blur(18px);box-shadow:0 12px 28px rgba(0,0,0,.22)}

.brand-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#2bb8ff,#1778ff);box-shadow:0 10px 20px rgba(23,120,255,.28);font-size:22px}

.brand-title{font-weight:900;font-size:17px;line-height:1.1}

.brand-sub{font-size:11px;color:var(--muted);margin-top:4px}

.hero{padding:4px 2px 12px}

.hero-info{margin:0!important}

.hero-info .toolbar-left{display:grid;grid-template-columns:1.4fr 1fr 1fr;width:100%;gap:9px}

.hero-info .pill{justify-content:flex-start;min-height:44px;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));border-radius:15px;font-weight:700}

.location-trigger{
  width:100%;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}

.location-trigger:hover,
.location-trigger:focus-visible{
  border-color:rgba(118,224,255,.38);
  background:linear-gradient(180deg,rgba(70,178,255,.14),rgba(255,255,255,.025));
}

.location-picker{
  width:min(92vw,560px);
  max-height:min(80vh,680px);
  margin:auto;
  padding:16px;
  color:var(--text);
  background:#101d31;
  border:1px solid rgba(118,224,255,.24);
  border-radius:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.55);
}

.location-picker::backdrop{
  background:rgba(2,8,16,.72);
  backdrop-filter:blur(5px);
}

.location-picker-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
}

.location-picker-head h2{margin:0;font-size:20px}

.location-picker-close{
  width:42px;
  height:42px;
  flex:0 0 42px;
  padding:0;
  color:var(--text);
  background:#21324f;
  border:1px solid var(--line);
  font-size:25px;
}

.location-picker input{
  width:100%;
  margin-bottom:10px;
  font-size:16px;
}

.location-picker-list{
  max-height:48vh;
  overflow-y:auto;
  overscroll-behavior:contain;
}

.location-group{
  display:grid;
  gap:7px;
}

.location-group + .location-group{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
}

.location-group h3{
  margin:0 0 2px;
  color:var(--muted);
  font-size:12px;
}

.location-option-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  gap:7px;
}

.location-option{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:11px 12px;
  color:var(--text);
  background:#15243b;
  border:1px solid var(--line);
  text-align:left;
  box-shadow:none;
}

.location-favorite{
  width:44px;
  padding:0;
  color:var(--muted);
  background:#15243b;
  border:1px solid var(--line);
  box-shadow:none;
  font-size:20px;
}

.location-favorite.active{
  color:var(--yellow);
  background:rgba(255,213,106,.10);
  border-color:rgba(255,213,106,.42);
}

.location-option strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.location-option small{color:var(--cyan)}

.location-option:hover,
.location-option:focus-visible{
  border-color:rgba(118,224,255,.38);
  background:#1b3150;
}

.location-option.active{
  border-color:rgba(255,213,106,.48);
  background:rgba(255,213,106,.10);
}

.location-picker-empty{
  padding:22px 12px;
  color:var(--muted);
  text-align:center;
}

.settings-details{overflow:hidden;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));box-shadow:var(--shadow)}

.settings-details>summary{cursor:pointer;list-style:none;padding:15px 16px;font-weight:850;display:flex;align-items:center;justify-content:space-between}

.settings-details>summary::-webkit-details-marker{display:none}

.settings-details>summary:after{content:'展開';font-size:12px;color:var(--muted);font-weight:600}

.settings-details[open]>summary:after{content:'收合'}

.settings-body{padding:0 14px 14px}

.card{border-radius:22px;padding:16px;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));box-shadow:0 14px 32px rgba(0,0,0,.20)}

.chart-card{padding:14px}

.chart-wrap{height:390px}

.chart-card .section-title h2{font-size:20px}

.chart-card .section-title:after{content:'滑動查看潮高';font-size:12px;color:var(--muted)}

.date-navigator{
  min-width:0;
  margin:0 0 12px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(7,16,28,.38);
}

.data-status{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  padding:9px 11px;
  border:1px solid rgba(118,224,255,.22);
  border-radius:13px;
  color:#d9efff;
  background:rgba(70,178,255,.08);
  font-size:12px;
}

.data-status[hidden]{display:none}

.data-status.loading::before{
  content:'';
  width:12px;
  height:12px;
  flex:0 0 12px;
  border:2px solid rgba(118,224,255,.28);
  border-top-color:var(--cyan);
  border-radius:50%;
  animation:data-status-spin .8s linear infinite;
}

.data-status.cached{
  color:#ffe8aa;
  background:rgba(255,213,106,.09);
  border-color:rgba(255,213,106,.25);
}

.data-status.cached::before{content:'↻';font-weight:900}

.data-status.error{
  color:#ffd6d6;
  background:rgba(255,141,141,.09);
  border-color:rgba(255,141,141,.25);
}

.data-status.error::before{content:'!';font-weight:900}

.data-loading .chart-wrap{opacity:.62}

@keyframes data-status-spin{to{transform:rotate(360deg)}}

.date-stepper{
  display:grid;
  grid-template-columns:minmax(92px,1fr) minmax(0,1.4fr) minmax(92px,1fr);
  gap:8px;
  align-items:stretch;
  min-width:0;
}

.date-step-button,
.date-calendar-control,
.date-chip{
  border:1px solid var(--line);
  color:var(--text);
  background:#15243b;
  box-shadow:none;
}

.date-step-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 12px;
  font-size:14px;
}

.date-calendar-control{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:6px 10px;
  border-radius:14px;
  background:linear-gradient(180deg,rgba(70,178,255,.22),rgba(70,178,255,.10));
  border-color:rgba(118,224,255,.28);
  cursor:pointer;
  min-width:0;
  overflow:hidden;
}

.date-calendar-control span{
  color:var(--cyan);
  font-size:11px;
}

.date-calendar-control input{
  width:100%;
  min-width:0;
  padding:2px 4px;
  color:var(--text);
  background:transparent;
  border:0;
  border-radius:0;
  font-size:16px;
  font-weight:800;
  text-align:center;
  cursor:pointer;
}

.date-step-button:disabled,
.date-calendar-control:has(input:disabled){
  opacity:.48;
  cursor:default;
}

.date-today-shortcut{
  width:auto;
  margin:8px auto 0;
  padding:6px 12px;
  display:block;
  color:var(--cyan);
  background:transparent;
  border:1px solid rgba(118,224,255,.24);
  border-radius:999px;
  box-shadow:none;
  font-size:12px;
}

.date-today-shortcut[hidden]{display:none}

.date-quick-list{
  display:grid;
  grid-template-columns:repeat(7,minmax(72px,1fr));
  gap:7px;
  margin-top:9px;
  overflow-x:auto;
  scrollbar-width:none;
}

.date-quick-list::-webkit-scrollbar{display:none}

.date-chip{
  min-width:72px;
  padding:8px 6px;
  border-radius:13px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  font-size:11px;
  color:var(--muted);
}

.date-chip strong{
  color:var(--text);
  font-size:13px;
}

.date-chip.active{
  color:#fff4c7;
  background:linear-gradient(180deg,rgba(255,213,106,.22),rgba(255,179,92,.10));
  border-color:rgba(255,213,106,.55);
}

.date-chip.active strong{color:#fff4c7}

.wind-card,.next-tide-card{margin:0!important}

.risk-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:850;background:rgba(112,216,178,.12);border:1px solid rgba(112,216,178,.25);color:#bff7e2}

.risk-badge.caution{background:rgba(255,213,106,.12);border-color:rgba(255,213,106,.30);color:#ffe59a}

.risk-badge.danger{background:rgba(255,141,141,.12);border-color:rgba(255,141,141,.28);color:#ffc3c3}

.sea-item{min-height:76px;display:flex;flex-direction:column;justify-content:center;background:rgba(255,255,255,.038);border-radius:15px}

.sea-item b{font-size:18px}

.astro-tile{padding:11px;border-radius:15px;background:rgba(255,255,255,.035);border:1px solid var(--line)}

.astro-label{font-size:11px;color:var(--muted)}

.astro-value{margin-top:5px;font-size:16px;font-weight:850}

.astro-meta{font-size:10px;color:var(--muted);margin-top:4px}

.map-card{margin-top:12px!important}

#map{height:390px}

/* NEXSOAR Marine visual system */
body{
  color:var(--ink);
  background:radial-gradient(circle at 8% -5%,rgba(164,222,229,.55),transparent 27%),linear-gradient(180deg,#fbfefe 0%,#eef7f7 54%,#f8fbfb 100%);
}

button{transition:transform .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
button:active{transform:scale(.97)}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid rgba(164,222,229,.65);outline-offset:2px}

.app-header{
  border-color:rgba(24,50,58,.12);
  background:rgba(255,255,255,.90);
  box-shadow:0 10px 28px rgba(24,50,58,.10);
}

.brand-icon{
  color:var(--ink);
  background:var(--brand);
  box-shadow:0 9px 20px rgba(47,115,124,.18);
}

.brand-title,.section-title h2,.condition-title,.location-picker-head h2{font-family:"Noto Serif TC","Songti TC",serif;color:var(--ink)}
.brand-sub{color:var(--muted)}

.btn-primary{
  color:var(--ink);
  background:var(--brand);
  border:1px solid #8dcfd8;
  box-shadow:0 9px 20px rgba(47,115,124,.14);
}
.btn-primary:hover,.btn-primary:focus-visible{background:#8fcfd8;border-color:var(--brand-deep)}
.btn-secondary{color:var(--ink);background:#fff;border:1px solid var(--line)}
.btn-secondary:hover,.btn-secondary:focus-visible{background:var(--brand-soft);border-color:rgba(47,115,124,.38)}

.hero-info .pill{
  color:var(--ink);
  background:rgba(255,255,255,.82);
  border-color:rgba(24,50,58,.12);
  box-shadow:0 7px 20px rgba(24,50,58,.06);
}
.hero-info .pill:not(.location-trigger){background:var(--brand-soft)}
.location-trigger{font-size:15px;font-weight:850}
.location-trigger:hover,.location-trigger:focus-visible{background:var(--brand);border-color:#8dcfd8}

.card{
  border:1px solid rgba(24,50,58,.12);
  border-radius:18px;
  background:rgba(255,255,255,.94);
  box-shadow:0 12px 32px rgba(24,50,58,.075);
}

.chart-card{border-top:5px solid var(--brand)}
.chart-card .section-title:after{color:var(--brand-deep)}
.date-navigator{border-color:rgba(47,115,124,.16);background:var(--brand-soft)}
.date-step-button,.date-calendar-control,.date-chip{color:var(--ink);background:#fff;border-color:rgba(24,50,58,.14)}
.date-step-button:hover:not(:disabled){background:var(--brand);border-color:#8dcfd8}
.date-calendar-control{background:#fff;border-color:rgba(47,115,124,.28)}
.date-calendar-control span{color:var(--brand-deep);font-weight:750}
.date-calendar-control input{color:var(--ink)}
.date-today-shortcut{color:var(--brand-deep);border-color:rgba(47,115,124,.30)}
.date-today-shortcut:hover{background:var(--brand);color:var(--ink)}
.date-chip{color:var(--muted)}
.date-chip strong{color:var(--ink)}
.date-chip:hover{background:#f7fbfb;border-color:rgba(47,115,124,.32)}
.date-chip.active,.date-chip.active:hover{color:var(--ink);background:var(--brand);border-color:#76c6d0;box-shadow:0 7px 15px rgba(47,115,124,.14)}
.date-chip.active strong{color:var(--ink)}

.data-status{color:var(--ink);background:var(--brand-soft);border-color:rgba(47,115,124,.22)}
.data-status.loading::before{border-color:rgba(47,115,124,.20);border-top-color:var(--brand-deep)}
.data-status.error{color:#842d2d;background:#fff0f0;border-color:#e7b4b4}

.next-tide-card{background:linear-gradient(145deg,var(--brand-soft),#fff 56%);border-color:rgba(47,115,124,.20)}
.next-event-time{color:var(--brand-deep);font-size:clamp(24px,3.2vw,32px)}
.next-event-type{color:var(--ink)}
.next-mini{background:#fff;border-color:rgba(24,50,58,.12)}
.next-mini:first-child{border-top:3px solid var(--brand)}
.next-mini:last-child{border-top:3px solid var(--brand-deep)}

.sea-item{background:var(--brand-soft);border-color:rgba(47,115,124,.12)}
.sea-item b{color:var(--ink);font-variant-numeric:tabular-nums}
.astro-tile{background:#fbfefe;border-color:rgba(24,50,58,.10)}
.risk-badge{color:#23604f;background:#e6f7ef;border-color:#adddcc}
.risk-badge.caution{color:#76560d;background:#fff8df;border-color:#ead58a}
.risk-badge.danger{color:#8c3030;background:#fff0f0;border-color:#e8b5b5}

.location-picker{color:var(--ink);background:#fff;border-color:rgba(47,115,124,.24);box-shadow:0 24px 70px rgba(24,50,58,.25)}
.location-picker::backdrop{background:rgba(24,50,58,.42)}
.location-picker-close,.location-option,.location-favorite{color:var(--ink);background:#fff;border-color:var(--line)}
.location-option:hover,.location-option:focus-visible{background:var(--brand-soft);border-color:rgba(47,115,124,.38)}
.location-option.active{color:var(--ink);background:var(--brand);border-color:#76c6d0}
.location-option small{color:var(--brand-deep)}
.location-favorite.active{color:#9b7f50;background:var(--sand);border-color:#d8c39f}

.settings-details{background:#fff;border-color:rgba(24,50,58,.12);box-shadow:0 10px 28px rgba(24,50,58,.07)}
.status{color:var(--ink);background:var(--brand-soft);border-color:rgba(47,115,124,.18)}
.safety-box{color:#604c28;background:var(--sand);border-color:#ddc9a8}
.footer-contact a,.version-details summary{color:var(--brand-deep)}
.version-log{color:var(--muted);background:#fff;border-color:var(--line)}
.version-log strong,.footer-brand{color:var(--ink)}
.footer-stat{background:rgba(255,255,255,.72);border-color:var(--line)}
.freshness .cache-badge{color:#76560d;background:#fff8df;border-color:#ead58a}
.update-toast{color:var(--ink);background:#fff;border-color:rgba(47,115,124,.25);box-shadow:var(--shadow)}

/* Keep every primary section aligned with the full-width hero banner. */
.main{padding:0}

#map{border:1px solid rgba(24,50,58,.12)}

.share-note{font-size:11px;color:var(--muted);margin-top:8px}
.current-dot{background:#76e0ff}
.condition-title{margin:0;font-size:20px}
.locate-button{margin-top:10px}
.install-button{display:none}
