/* =====================================================
   WEATHER WIDGET CORE — SKY SYSTEM
===================================================== */
.weather-widget {
  font-family: 'Inter', sans-serif;
  border-radius: 20px;
  transition: background .4s ease, color .4s ease, border-color .4s ease;
  position: relative;
  overflow: hidden;
}
.weather-widget[data-theme="dark"] {
  --pp-bg: #151a29;
  --pp-surface: #1b2032;
  --pp-border: #2b3247;
  --pp-text: #eef0f7;
  --pp-text-dim: #8a92a8;
}
.weather-widget[data-theme="light"] {
  --pp-bg: #ffffff;
  --pp-surface: #f6f7fb;
  --pp-border: #e6e8f2;
  --pp-text: #171b29;
  --pp-text-dim: #6c7488;
}
.weather-widget[data-period="day"] {
  --pp-accent: #e08a1e;
  --pp-accent-soft: rgba(224, 138, 30, .14);
  --pp-sky-a: #8ecbfb;
  --pp-sky-b: #ffe3ab;
}
.weather-widget[data-period="night"] {
  --pp-accent: #8b7cf6;
  --pp-accent-soft: rgba(139, 124, 246, .18);
  --pp-sky-a: #1b1c3f;
  --pp-sky-b: #4a3f80;
}
.weather-widget {
  background: var(--pp-bg);
  color: var(--pp-text);
  border: 1px solid var(--pp-border);
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 8px 24px -14px rgba(0,0,0,.3);
}

/* Utilities */
.pp-surface {
  background: var(--pp-surface);
  border: 1px solid var(--pp-border);
}
.pp-dim { color: var(--pp-text-dim); }
.pp-accent { color: var(--pp-accent); }
.pp-icon { color: var(--pp-accent); width: 1em; height: 1em; }
.pp-weather-icon {
  display: block;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.08));
}
.pp-mono { font-family: 'JetBrains Mono', monospace; }
.pp-display { font-family: 'Fraunces', serif; font-weight: 550; }
.pp-badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: .03em;
  padding: 3px 10px;
  border-radius: 99px;
  background: var(--pp-accent-soft);
  color: var(--pp-accent);
  border: 1px solid var(--pp-accent-soft);
  display: inline-block;
}
.pp-icon-chip {
  background: linear-gradient(150deg, var(--pp-sky-a), var(--pp-sky-b));
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .4s ease;
  box-shadow: inset 0 1px 1px rgba(255,255,255,.25);
}

/* Specific Layout Helpers (Tailwind-like logic converted to standard CSS) */
.pp-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--pp-text-dim);
}

/* Flex & Layout Utilities used in templates */
.pp-flex { display: flex; }
.pp-items-center { align-items: center; }
.pp-items-start { align-items: flex-start; }
.pp-justify-between { justify-content: space-between; }
.pp-justify-center { justify-content: center; }
.pp-flex-col { flex-direction: column; }
.pp-flex-1 { flex: 1; }
.pp-shrink-0 { flex-shrink: 0; }
.pp-gap-1 { gap: 0.25rem; }
.pp-gap-2 { gap: 0.5rem; }
.pp-gap-3 { gap: 0.75rem; }
.pp-gap-4 { gap: 1rem; }
.pp-gap-6 { gap: 1.5rem; }

/* Paddings & Margins */
.pp-p-5 { padding: 1.25rem; }
.pp-p-6 { padding: 1.5rem; }
.pp-px-4 { padding-left: 1rem; padding-right: 1rem; }
.pp-py-2-5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.pp-px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.pp-py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.pp-mb-1-5 { margin-bottom: 0.375rem; }
.pp-mb-2 { margin-bottom: 0.5rem; }
.pp-mt-1 { margin-top: 0.25rem; }
.pp-mt-1-5 { margin-top: 0.375rem; }
.pp-mt-3 { margin-top: 0.75rem; }
.pp-mt-4 { margin-top: 1rem; }
.pp-mt-5 { margin-top: 1.25rem; }
.pp-pt-5 { padding-top: 1.25rem; }

/* Sizing */
.pp-w-6 { width: 1.5rem; }
.pp-h-6 { height: 1.5rem; }
.pp-w-3-5 { width: 0.875rem; }
.pp-h-3-5 { height: 0.875rem; }
.pp-w-7 { width: 1.75rem; }
.pp-h-7 { height: 1.75rem; }
.pp-w-8 { width: 2rem; }
.pp-h-8 { height: 2rem; }
.pp-w-9 { width: 2.25rem; }
.pp-h-9 { height: 2.25rem; }
.pp-w-10 { width: 2.5rem; }
.pp-h-10 { height: 2.5rem; }
.pp-w-12 { width: 3rem; }
.pp-h-12 { height: 3rem; }
.pp-w-14 { width: 3.5rem; }
.pp-h-14 { height: 3.5rem; }
.pp-w-52 { width: 13rem; }
.pp-h-52 { height: 13rem; }
.pp-w-full { width: 100%; }
.pp-min-w-0 { min-width: 0; }

/* Border Radius */
.pp-rounded-full { border-radius: 9999px; }
.pp-rounded-xl { border-radius: 0.75rem; }
.pp-rounded-2xl { border-radius: 1rem; }

/* Typography */
.pp-text-xs { font-size: 0.75rem; line-height: 1rem; }
.pp-text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.pp-text-11px { font-size: 11px; }
.pp-text-2xl { font-size: 1.5rem; line-height: 2rem; }
.pp-text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.pp-text-6xl { font-size: 3.75rem; line-height: 1; }
.pp-font-medium { font-weight: 500; }
.pp-font-semibold { font-weight: 600; }
.pp-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-text-center { text-align: center; }
.pp-text-right { text-align: right; }
.pp-leading-none { line-height: 1; }
.pp-leading-tight { line-height: 1.25; }

/* Grid */
.pp-grid { display: grid; }
.pp-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Relative/Absolute */
.pp-relative { position: relative; }
.pp-absolute { position: absolute; }
.pp-inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.pp-m-auto { margin: auto; }
.pp-inline-flex { display: inline-flex; }

/* Ticker Specific */
.ppw-ticker-container {
    overflow: hidden;
    white-space: nowrap;
}
