/* Мінімалізм. Палітра «М'ята, крем і вогонь» (приглушена):
   М'ята #9DBDB8 · Крем #F0E7D6 · Теракота (замість #EA2E00) · Гірчичний для жовтої тривоги */

/* Світла тема: вершковий фон */
:root {
  --bg: #F0E7D6; --text: #22403C; --muted: #647F7A; --line: #E2D8C5;
  --state-on: #4A7D75; --red: #B8513A; --peach: #E6BBA8;
  --tl-on: #A7C2BD; --tl-off: #C9654C; --tl-maybe: #E6BBA8; --tl-unknown: #E2D8C5;
  --chip: #E2AE9D; --field: transparent; --dialog: #F8F2E7; --yellow: #C9A040; --yellow-text: #7A5F1F; --backdrop: rgba(34, 64, 60, .35);
  color-scheme: light;
}
/* Темна тема: глибокий зелено-сірий */
:root[data-theme="dark"] {
  --bg: #1E2C2A; --text: #EDE5D5; --muted: #98B3AE; --line: rgba(152, 179, 174, .2);
  --state-on: #A3C2BC; --red: #D77A62; --peach: #B98F7E;
  --tl-on: #5F8B84; --tl-off: #C4664E; --tl-maybe: #B98F7E; --tl-unknown: #2B3D3A;
  --chip: rgba(215, 122, 98, .5); --field: transparent; --dialog: #263634; --yellow: #D4B05A; --yellow-text: #D9B866; --backdrop: rgba(0, 0, 0, .55);
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #1E2C2A; --text: #EDE5D5; --muted: #98B3AE; --line: rgba(152, 179, 174, .2);
    --state-on: #A3C2BC; --red: #D77A62; --peach: #B98F7E;
    --tl-on: #5F8B84; --tl-off: #C4664E; --tl-maybe: #B98F7E; --tl-unknown: #2B3D3A;
    --chip: rgba(215, 122, 98, .5); --field: transparent; --dialog: #263634; --yellow: #D4B05A; --yellow-text: #D9B866; --backdrop: rgba(0, 0, 0, .55);
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--text); }
body {
  font: 16px/1.45 -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  -webkit-text-size-adjust: 100%;
  transition: background .2s, color .2s;
}
a { color: var(--red); }
.muted { color: var(--muted); font-weight: 400; }
.small { font-size: 13px; }

/* Шапка */
header {
  position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 14px 20px; background: var(--bg); border-bottom: 1px solid var(--line);
}
#place { font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
#place-sub { font-size: 13px; color: var(--muted); }
body.alarm #place-sub { color: var(--red); }
.actions { display: flex; flex-shrink: 0; }
.actions button {
  font-size: 18px; width: 40px; height: 40px; border-radius: 50%; margin-left: 8px;
  background: transparent; color: var(--text); border: 1.5px solid var(--muted);
}
body.alarm .actions button { border-color: var(--red); color: var(--red); }
.spin { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Розділи без карток */
main { padding: 0 20px 32px; display: grid; grid-template-columns: minmax(0, 1fr); max-width: 640px; margin: 0 auto; }
.card { min-width: 0; overflow: hidden; padding: 24px 0; border-bottom: 1px solid var(--line); }
.card:last-child { border-bottom: 0; }
.card h2 { margin: 0 0 12px; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--muted); }
.card h2 .muted { margin-left: 6px; opacity: .75; }
.card h3 { margin: 20px 0 8px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.card h3 .muted { text-transform: none; letter-spacing: 0; font-size: 13px; }
.card p { margin: 8px 0; }

/* Великий стан: лінія зліва + великий текст */
.big { margin: 6px 0 14px; padding: 2px 0 2px 14px; border-left: 4px solid var(--muted); }
.big-t { font-size: 34px; font-weight: 700; letter-spacing: -.03em; line-height: 1.1; }
.big-s { color: var(--muted); margin-top: 4px; }
.big.s-on, .big.calm { color: var(--state-on); border-color: var(--state-on); }
.big.s-off, .big.alert.red { color: var(--red); border-color: var(--red); }
.big.s-maybe { color: var(--red); border-color: var(--peach); }
.big.alert.yellow { color: var(--yellow-text); border-color: var(--yellow); }

/* Колір тривоги */
.lvl { display: flex; align-items: flex-start; gap: 8px; line-height: 1.35; margin-top: 8px; font-weight: 700; font-size: 15px; color: var(--muted); }
.lvl.red { color: var(--red); }
.lvl.yellow { color: var(--yellow-text); }
.dot { display: inline-block; width: 12px; height: 12px; margin-top: 4px; border-radius: 50%; background: var(--muted); flex-shrink: 0; }
.red .dot { background: var(--red); }
.yellow .dot { background: var(--yellow); }
.iv li.lvl-chip { display: inline-flex; align-items: center; gap: 7px; color: var(--text); border-color: var(--line); }
.iv li.lvl-chip.red { border-color: var(--red); }
.iv li.lvl-chip.yellow { border-color: var(--yellow); }
.big.s-unknown { color: var(--muted); }

.badge { display: inline-block; font-size: 13px; padding: 4px 12px; border-radius: 99px; border: 1px solid var(--chip); }
.warn { color: var(--red); border-left: 3px solid var(--red); padding: 2px 0 2px 10px; }
.warn-i { color: var(--red); }

.row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 14px 0 6px; font-weight: 600; }
select, input {
  font: inherit; color: var(--text); background: var(--field); border: 1.5px solid var(--muted);
  border-radius: 99px; padding: 7px 14px; max-width: 100%;
}
input { border-radius: 12px; }
select option { color: #00408C; }

/* Шкала доби */
.tl { position: relative; display: grid; grid-template-columns: repeat(48, 1fr); height: 10px; border-radius: 99px; overflow: hidden; }
.tl i.s-on { background: var(--tl-on); } .tl i.s-off { background: var(--tl-off); }
.tl i.s-maybe { background: var(--tl-maybe); } .tl i.s-unknown { background: var(--tl-unknown); }
.tl .now { position: absolute; top: 0; bottom: 0; width: 3px; margin-left: -1px; background: var(--text); box-shadow: 0 0 0 1.5px var(--bg); border-radius: 2px; }
.tl-axis { display: flex; justify-content: space-between; font-size: 11px; color: var(--muted); margin-top: 4px; }

/* Інтервали — контурні «пігулки» */
.iv { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.iv li { padding: 4px 12px; border-radius: 99px; border: 1px solid var(--chip); color: var(--red); font-variant-numeric: tabular-nums; font-size: 14px; font-weight: 600; }
.iv li.maybe { border-style: dashed; color: var(--muted); }

.foot { font-size: 12px; color: var(--muted); margin-top: 18px !important; }

/* Погода */
.wnow { display: flex; gap: 16px; align-items: center; }
.wico { font-size: 52px; }
.wt { font-size: 60px; font-weight: 300; line-height: 1; letter-spacing: -.03em; }
.hours { display: flex; gap: 6px; overflow-x: auto; padding: 16px 0 4px; scrollbar-width: none; }
.hours > div { min-width: 50px; display: flex; flex-direction: column; align-items: center; gap: 2px; font-variant-numeric: tabular-nums; }
.hours > div:first-child b { color: var(--red); }
.hours span { font-size: 22px; }
.rain { color: var(--muted); }
.days { list-style: none; padding: 0; margin: 12px 0 0; }
.days li { display: grid; grid-template-columns: 1fr 34px 46px 110px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.days li span:last-child { text-align: right; }

/* Кнопки */
.btn { display: inline-block; border: 1.5px solid var(--red); border-radius: 99px; padding: 9px 16px; background: var(--red); color: #F2EEE9; font: inherit; font-weight: 600; text-decoration: none; }
.btn.ghost { background: transparent; color: var(--text); border-color: var(--muted); }

/* Налаштування */
dialog { border: 0; border-radius: 20px; background: var(--dialog); color: var(--text); width: min(92vw, 460px); padding: 20px; }
dialog h2 { margin: 0 0 4px; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
dialog::backdrop { background: var(--backdrop); }
dialog label { display: grid; gap: 6px; margin: 14px 0; font-weight: 600; }
.seg { display: flex; border: 1.5px solid var(--muted); border-radius: 99px; overflow: hidden; }
.seg button { flex: 1; font: inherit; font-size: 14px; padding: 7px 0; border: 0; background: transparent; color: var(--text); }
.seg button.on { background: var(--text); color: var(--bg); font-weight: 600; }
.row-btns { display: flex; gap: 8px; justify-content: space-between; flex-wrap: wrap; margin-top: 8px; }
.iv li.lvl-chip .dot { margin-top: 0; }
