.weather-advice-card{margin:0 0 28px;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius,16px);background:var(--soft);color:var(--ink)}
.weather-occasion-field{margin:16px 0 10px;font-size:12px;color:var(--muted)}
.weather-occasions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:10px}
.weather-occasion-button{min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.weather-occasion-button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent,var(--surface));border-color:var(--accent)}
.weather-occasion-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.weather-advice-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.weather-advice-heading .eyebrow{margin:0 0 8px;font-size:9px;letter-spacing:1.6px;color:var(--muted)}
.weather-advice-heading h2{margin:0;font:500 22px/1.4 var(--serif,serif)}
.weather-temperature{font-size:34px;font-weight:500;white-space:nowrap}
.weather-temperature span{font-size:16px;margin-left:3px}
.weather-location,.weather-status{font-size:12px;color:var(--muted);line-height:1.7}
.weather-outfit-tip{font-size:14px;line-height:1.9;margin:12px 0}
.weather-personal-outfit{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.weather-outfit-title{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px}
.weather-outfit-title span{font-size:11px;color:var(--muted)}
.weather-personal-outfit{scroll-margin-top:20px}
.weather-outfit-pieces{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:12px}
.weather-outfit-piece{min-width:0;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;font-size:12px;background:var(--soft)}
.weather-piece-image,.weather-piece-placeholder{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:var(--surface)}
.weather-piece-placeholder{display:grid;place-items:center;color:var(--muted)}
.weather-outfit-piece figcaption{display:flex;flex-direction:column;gap:4px;padding:9px 10px;overflow-wrap:anywhere}
.weather-outfit-piece small{font-size:10px;color:var(--muted)}
.weather-occasion-tip,.weather-missing,.weather-closet-empty{font-size:12px;line-height:1.7;color:var(--muted)}
.weather-occasion-tip{margin:12px 0 0}
.weather-missing{margin:8px 0 0}
.weather-apply{min-height:42px;margin-top:12px}
.weather-apply:disabled{opacity:.5;cursor:not-allowed}
.weather-extra-tips{padding-left:18px;font-size:12px;line-height:1.9;margin:8px 0}
.weather-source{margin:12px 0 0;font-size:10px;color:var(--muted)}
.weather-source a{color:inherit;text-underline-offset:3px}
.weather-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.weather-actions button{min-height:44px}
.weather-actions button:disabled,.weather-city-form button:disabled,.weather-city-results button:disabled{opacity:.55;cursor:wait}
.weather-city-form{margin-top:14px}
.weather-city-form label{display:block;font-size:12px;margin-bottom:8px}
.weather-city-form>div{display:flex;gap:8px;max-width:420px}
.weather-city-form input{min-width:0;flex:1;width:100%;min-height:44px;box-sizing:border-box;padding:8px 12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;font:inherit}
.weather-city-results{display:grid;gap:8px;margin-top:12px;max-width:420px}
.weather-city-results .secondary{height:auto;display:flex;justify-content:space-between;gap:12px;text-align:left;white-space:normal}
.weather-city-results small{font-size:10px;color:var(--muted)}
body.mobile-app .weather-advice-card{padding:16px;margin-bottom:18px}
body.mobile-app .weather-advice-heading h2{font-size:18px}
body.mobile-app .weather-temperature{font-size:28px}
body.mobile-app .weather-outfit-tip{font-size:12px}
body.mobile-app .weather-personal-outfit{padding:13px}

body.mobile-app .weather-occasions{grid-template-columns:repeat(3,minmax(0,1fr))}
body.mobile-app .weather-occasion-button{font-size:10.5px}
body.mobile-app .weather-outfit-pieces{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:600px){.weather-occasions{grid-template-columns:repeat(3,minmax(0,1fr))}.weather-outfit-pieces{grid-template-columns:repeat(3,minmax(0,1fr))}}

.weather-piece-placeholder svg{width:85%;height:85%;fill:none}
