
*,
*::before,
*::after { box-sizing: border-box; }

:root{
  
  --radius: 22px;
  --space-1: clamp(8px, 1.8vw, 14px);
  --space-2: clamp(14px, 2.6vw, 22px);
  --space-3: clamp(18px, 3.5vw, 28px);

  --title: clamp(22px, 6vw, 52px);
  --city: clamp(18px, 3.8vw, 36px);
  --meta: clamp(12px, 2.6vw, 16px);

  --card-w: min(94vw, 420px);
  --shadow: 0 14px 30px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);
  --bg-grad: linear-gradient(160deg, #00f5a0 0%, #00d9f5 45%, #3f5efb 100%);
  --ink: #0d1321;
  --ink-soft:#ffffff;
}

html, body {
  height: 100%;
  margin: 0;
  color: var(--ink-soft);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  background: #111418;
}


.page{
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: var(--space-2);
}


.card{
  width: var(--card-w);
  border-radius: var(--radius);
  background: var(--bg-grad);
  box-shadow: var(--shadow);
  padding: clamp(18px, 4.5vw, 28px);
}


.search{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-1);
  align-items: center;
  margin-bottom: var(--space-3);
}

.search input{
  width: 100%;
  border: 0;
  outline: 0;
  border-radius: 999px;
  padding: clamp(10px, 2.8vw, 16px) clamp(14px, 3.2vw, 18px);
  font-size: clamp(14px, 3.6vw, 16px);
  background: rgba(255,255,255,.9);
  color: #0f172a;
}

.search button{
  border: 0;
  outline: 0;
  border-radius: 999px;
  width: clamp(42px, 12vw, 54px);
  height: clamp(42px, 12vw, 54px);
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.92);
  cursor: pointer;
  transition: transform .15s ease, background .2s ease;
}

.search button:hover{ transform: translateY(-1px) scale(1.02); }
.search button:active{ transform: scale(.98); }
.search button img{
  width: 55%;
  height: 55%;
  object-fit: contain;
  display: block;
}

.weather{
  text-align: center;
}

.weather-icon{
  width: clamp(84px, 26vw, 120px);
  height: auto;
  margin: 0 auto var(--space-2);
  display: block;
}

.temp{
  font-size: var(--title);
  line-height: 1.1;
  margin: 0 0 var(--space-1);
  font-weight: 800;
}

.city{
  font-size: var(--city);
  margin: 0 0 var(--space-2);
  font-weight: 700;
}


.details{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2);
}

.col{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-1);
  align-items: center;
  padding: var(--space-1) var(--space-2);
  border-radius: calc(var(--radius) - 8px);
  background: rgba(0,0,0,.12);
  backdrop-filter: blur(2px);
}

.col img{
  width: clamp(28px, 8vw, 40px);
  height: clamp(28px, 8vw, 40px);
  object-fit: contain;
}

.col p{
  margin: 0;
  line-height: 1.35;
  font-size: var(--meta);
}


@media (min-width: 480px){
  .details{
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 768px){
  :root{
    --card-w: min(92vw, 520px);
  }
  .card{ padding: 32px; }
}

@media (prefers-color-scheme: light){
  body{ background: #eef2f7; }
}
