/* ── Loading ─────────────────────────────────────────────────────────────── */
.spinner {
  width: 20px; height: 20px; border-radius: 50%;
  border: 2px solid var(--border); border-top-color: var(--amber);
  animation: spin .7s linear infinite; display: inline-block;
}
@keyframes spin { to { transform: rotate(360deg); } }
.loading-row { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 14px; padding: 20px 0; }

/* ── Skeleton ─────────────────────────────────────────────────────────────── */
.skeleton { background: linear-gradient(90deg, var(--paper) 25%, var(--border) 50%, var(--paper) 75%); background-size: 200% 100%; animation: shimmer 1.4s infinite; border-radius: 6px; }
@keyframes shimmer { 0% { background-position: 200% 0 } 100% { background-position: -200% 0 } }

/* ── Utility classes ───────────────────────────────────────────────────────── */
.mt-1  { margin-top: 8px; }
.mt-2  { margin-top: 16px; }
.mb-1  { margin-bottom: 8px; }
.mb-2  { margin-bottom: 16px; }
.gap-1 { gap: 8px; }
.gap-2 { gap: 16px; }

/* ── Weather pulled-at stamp + manual refresh ───────────────────────────── */
.wx-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; padding-top:8px; border-top:1px solid var(--border); }
.wx-stamp { font-size:11px; color:var(--muted); letter-spacing:.02em; }
.wx-stamp--stale { color:var(--amber, #c8860a); font-weight:600; }
.wx-refresh { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; padding:0; border:1px solid var(--border); border-radius:50%; background:transparent; color:var(--muted); cursor:pointer; transition:color .15s, border-color .15s, background .15s; }
.wx-refresh:hover { color:var(--heading); border-color:var(--muted); }
.wx-refresh--stale { color:var(--amber, #c8860a); border-color:var(--amber, #c8860a); }
.wx-refresh--stale:hover { background:var(--amber-lt, rgba(200,134,10,.10)); }
.wx-refresh--spinning { pointer-events:none; }
.wx-refresh--spinning svg { animation:spin .7s linear infinite; transform-origin:50% 50%; }
