:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#22352f;background:#f5f6f2;font-synthesis:none;line-height:1.5;--green:#205042;--muted:#6a756f;--line:#e2e7df}

*{box-sizing:border-box}
body{margin:0}
button,input{font:inherit}
a{color:inherit;text-underline-offset:4px}
button,a,input{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #9db96c;outline-offset:4px}
.wrap{max-width:1180px;margin:auto;padding:0 32px}
.masthead{display:flex;align-items:center;gap:32px;min-height:105px;border-bottom:1px solid var(--line)}
.brand{text-decoration:none;font-size:29px;font-weight:800;letter-spacing:-1.4px;display:flex;align-items:center}
.brand-mark{display:inline-grid;place-items:center;background:var(--green);color:#d9ee92;width:36px;height:36px;border-radius:12px;margin-right:11px;font-size:30px}
.brand-dot{color:#739043}
.edition{font-size:10px;letter-spacing:2px;color:var(--muted)}
#today{margin-left:auto;color:var(--muted);font-size:13px}
.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:50px 0 33px}
.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#627462;margin:0 0 12px}
h1{font-size:clamp(30px,3.5vw,43px);letter-spacing:-1.8px;line-height:1.15;margin:0 0 14px;font-weight:650}
.lede{color:var(--muted);margin:0;font-size:15px}
.button{border:0;border-radius:9px;background:var(--green);color:white;font-weight:600;font-size:13px;padding:12px 17px;cursor:pointer;white-space:nowrap}
.button:hover{filter:brightness(1.12)}
.button:disabled{opacity:.55;cursor:wait}
.secondary{background:white;color:var(--green);border:1px solid var(--line)}
.overview{display:grid;grid-template-columns:.9fr 1.3fr;gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px}
.weather{background:#eaf0df;border-color:#e0e8d4}
.section-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
h2{font-size:21px;letter-spacing:-.5px;margin:0}
h3{margin:0;font-size:15px}
.pill{font-size:9px;letter-spacing:1px;font-weight:700;padding:5px 9px;border-radius:20px;background:#dce8cc;color:#476134}
.neutral{background:#f0f3ee;color:#697465}
#city-name{font-size:24px;margin-top:22px;font-weight:550}
.weather-main{display:flex;align-items:center;justify-content:space-between;height:100px}
#temperature{font-size:70px;letter-spacing:-4px;font-weight:500}
.sun{font-size:75px;color:#8d9f43;line-height:1}
#weather-description{margin:0 0 15px}
.weather-details{display:flex;gap:22px;font-size:12px;color:#52634f;padding-bottom:20px;border-bottom:1px solid #d5dec9}
.weather-details b{display:block;font-size:16px;margin-top:4px;color:#263f2d;font-weight:550}
#city-form{margin-top:18px}
label{display:block;font-size:12px;margin-bottom:7px}
.search-row{display:flex;gap:8px}
input{width:100%;min-width:0;border:1px solid #cdd9c2;border-radius:9px;background:#ffffffa6;padding:10px 12px;font-size:13px}
.small{font-size:12px;line-height:1.6;margin:12px 0}
.muted{color:var(--muted)}
.source{font-size:11px;color:#56634c}
.rates>.muted{font-size:13px;margin:8px 0 16px}
.rate{display:flex;align-items:center;gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}
.currency-icon{width:44px;height:44px;display:grid;place-items:center;background:#f3f5ef;border-radius:50%;font-size:25px;color:#50683c}
.currency-name span{font-size:11px;color:var(--muted);letter-spacing:.5px}
.quote{margin-left:auto;text-align:right}
.quote strong{display:block;font-size:27px;font-weight:550;letter-spacing:-.6px}
.quote span{display:block;font-size:11px;color:var(--muted)}
.quote .up{color:#23744d}
.quote .down{color:#b24742}
.market-section{padding-top:37px}
.market-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}
.market-title h2{font-size:29px}
.market-title .eyebrow{margin-bottom:5px}
.market-title>.muted{font-size:12px}
.market-card{padding:20px 24px}
.tradingview-widget-container{width:100%;min-height:490px}
.tradingview-widget-container__widget{height:460px}
.tradingview-widget-copyright{font-size:12px;color:var(--muted);padding-top:8px}
.city-results{list-style:none;padding:0;margin:0}
.city-results button{width:100%;text-align:left;border:1px solid #cfdbc3;background:#f7faf3;border-radius:7px;padding:9px;margin:3px 0;color:var(--green);cursor:pointer;font-size:12px}
.error{color:#99372f}
footer{display:flex;gap:25px;align-items:center;border-top:1px solid var(--line);margin-top:40px;padding:25px 0 35px;color:var(--muted);font-size:11px}
.footer-brand{font-size:21px;font-weight:700;color:#60715f;letter-spacing:-1px}
footer>span:last-child{margin-left:auto;text-align:right;font-size:10px}
.skip{position:absolute;top:-100px;background:white;padding:12px;z-index:10}
.skip:focus{top:0}
.notice{padding:16px;background:#fff4d5;border-radius:10px}

@media(max-width:760px){.wrap{padding:0 20px}
.masthead{min-height:80px;gap:12px}
.edition{display:none}
.brand{font-size:25px}
#today{font-size:11px}
.intro{padding:32px 0 25px;align-items:start;flex-direction:column;gap:18px}
h1{letter-spacing:-1px}
.overview{grid-template-columns:1fr}
.card{padding:22px}
.market-title{align-items:start;gap:12px}
.market-title>.muted{max-width:100px;text-align:right}
.market-card{padding:16px 10px}
.rate{gap:12px}
.quote strong{font-size:24px}
footer{flex-wrap:wrap;gap:8px 18px}
footer p{margin:0}
footer>span:last-child{margin-left:0;text-align:left;width:100%}
.currency-name h3{font-size:14px}
}

.market-frame{display:block;width:100%;height:530px;border:0}

@media(max-width:400px){.rate{display:grid;grid-template-columns:36px 1fr;gap:8px 12px}
.currency-icon{width:36px;height:36px}
.quote{grid-column:2;margin-left:0;text-align:left}
.brand{font-size:22px}
.brand-mark{width:30px;height:30px}
#today{max-width:100px;text-align:right}
}

@media(prefers-reduced-motion:no-preference){.button{transition:filter .15s}
}

