/* ============================================================
   NV Weather Widget — styles
   ============================================================ */

.nv-weather-wrap {
    border-radius: 20px;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: #fff;
    margin: 24px 0;
    box-shadow: 0 8px 32px rgba(0,0,0,.18);
    position: relative;
}

/* ---- BACKGROUNDS ---- */
.nv-bg-clear        { background: linear-gradient(135deg, #1e90ff 0%, #87ceeb 60%, #ffe066 100%); }
.nv-bg-clear-night  { background: linear-gradient(135deg, #0d1b3e 0%, #1a2a5e 50%, #2c3e70 100%); }
.nv-bg-partly       { background: linear-gradient(135deg, #4a90d9 0%, #87ceeb 50%, #c9e8f5 100%); }
.nv-bg-partly-night { background: linear-gradient(135deg, #1a2a4e 0%, #2c3e60 60%, #3d5275 100%); }
.nv-bg-cloudy       { background: linear-gradient(135deg, #7a8fa6 0%, #a0b4c5 50%, #c5d3dc 100%); }
.nv-bg-fog          { background: linear-gradient(135deg, #8e9eab 0%, #b0bec5 60%, #cfd8dc 100%); }
.nv-bg-drizzle      { background: linear-gradient(135deg, #4e7fa0 0%, #6b9fc0 60%, #9ac5dc 100%); }
.nv-bg-rain         { background: linear-gradient(135deg, #2c5364 0%, #203a43 50%, #0f2027 100%); }
.nv-bg-storm        { background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #2e3250 100%); }
.nv-bg-snow         { background: linear-gradient(135deg, #8ec5fc 0%, #b8d4f0 50%, #e0eafc 100%); color: #2c3e50; }

/* ---- CURRENT BLOCK ---- */
.nv-weather-current {
    padding: 32px 28px 20px;
}

.nv-weather-city {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .85;
    margin-bottom: 20px;
}

.nv-weather-main {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
}

.nv-weather-icon {
    font-size: 72px;
    line-height: 1;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,.2));
    flex-shrink: 0;
}

.nv-weather-temp {
    font-size: 72px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -2px;
}

.nv-weather-desc {
    font-size: 20px;
    font-weight: 500;
    margin-top: 4px;
    opacity: .9;
}

.nv-weather-feels {
    font-size: 13px;
    opacity: .7;
    margin-top: 4px;
}

/* ---- DETAILS GRID ---- */
.nv-weather-details {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    background: rgba(255,255,255,.12);
    border-radius: 14px;
    padding: 16px;
    backdrop-filter: blur(6px);
}

.nv-weather-detail-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 3px;
}

.nv-wd-icon   { font-size: 20px; }
.nv-wd-label  { font-size: 11px; opacity: .7; text-transform: uppercase; letter-spacing: .04em; }
.nv-wd-value  { font-size: 14px; font-weight: 600; }

/* ---- FORECAST ---- */
.nv-weather-forecast {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0;
    border-top: 1px solid rgba(255,255,255,.2);
}

.nv-weather-forecast-day {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 14px 6px;
    gap: 4px;
    border-right: 1px solid rgba(255,255,255,.1);
    transition: background .2s;
}

.nv-weather-forecast-day:last-child { border-right: none; }
.nv-weather-forecast-day:hover { background: rgba(255,255,255,.08); }

.nv-wf-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .9;
}

.nv-wf-date {
    font-size: 11px;
    opacity: .6;
}

.nv-wf-icon {
    font-size: 26px;
    line-height: 1;
    margin: 4px 0;
}

.nv-wf-desc {
    font-size: 10px;
    opacity: .7;
    text-align: center;
    line-height: 1.3;
    min-height: 26px;
}

.nv-wf-temps {
    display: flex;
    gap: 5px;
    align-items: baseline;
}

.nv-wf-max { font-size: 14px; font-weight: 700; }
.nv-wf-min { font-size: 12px; opacity: .6; }

/* ---- FOOTER ---- */
.nv-weather-footer {
    text-align: center;
    font-size: 11px;
    padding: 8px 16px 12px;
    opacity: .55;
    border-top: 1px solid rgba(255,255,255,.15);
}

/* ---- RESPONSIVE ---- */
@media (max-width: 640px) {
    .nv-weather-current { padding: 20px 16px 16px; }

    .nv-weather-icon { font-size: 52px; }
    .nv-weather-temp { font-size: 56px; }
    .nv-weather-desc { font-size: 16px; }

    .nv-weather-details { grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 12px 8px; }
    .nv-wd-value { font-size: 12px; }

    .nv-weather-forecast { grid-template-columns: repeat(4, 1fr); }
    .nv-weather-forecast-day:nth-child(n+5) { display: none; }

    .nv-wf-icon { font-size: 20px; }
    .nv-wf-max  { font-size: 13px; }
}

@media (max-width: 400px) {
    .nv-weather-forecast { grid-template-columns: repeat(3, 1fr); }
    .nv-weather-forecast-day:nth-child(n+4) { display: none; }
}

.nv-weather-error {
    padding: 16px;
    background: #fff3cd;
    border-left: 4px solid #ffc107;
    color: #856404;
    border-radius: 6px;
}
