html[data-calculator-locked],html[data-calculator-locked] body{background:#17355f!important;overflow:hidden!important}
html[data-calculator-locked] body>*:not(#calculator-gate){visibility:hidden!important;pointer-events:none!important}
html:not([data-calculator-locked]) #calculator-gate{display:none!important}
#calculator-gate{position:fixed;inset:0;margin:0;border:0;box-sizing:border-box;inline-size:100%;block-size:100dvh;max-inline-size:none;max-block-size:none;padding:0;background:linear-gradient(160deg,#2b6195,#193960 62%,#102843);color:white;z-index:2147483647;font:16px/1.5 system-ui;overflow:auto;color-scheme:dark}
#calculator-gate::backdrop{background:#17355f}
#calculator-gate .weather-wrap{max-inline-size:640px;margin-inline:auto;padding:max(22px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));box-sizing:border-box}
#calculator-gate header{display:flex;align-items:center;justify-content:space-between;gap:12px}
#calculator-gate button{font:inherit;cursor:pointer;touch-action:manipulation;color:white;background:#ffffff15;border:1px solid #ffffff55;padding:10px 14px;border-radius:14px}
#calculator-gate button:focus-visible,#calculator-gate input:focus-visible{outline:3px solid #ffdc90;outline-offset:3px}
#calculator-gate button:disabled{opacity:.6}
#calculator-gate .weather-brand{font-size:15px;letter-spacing:.12em;color:#d3e7ff}
#calculator-gate .weather-hero{text-align:center;padding-block:32px 20px}
#calculator-gate #weather-city{font-size:30px;border:0;background:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;min-block-size:60px;min-inline-size:150px}
#calculator-gate .weather-brand{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
#calculator-gate #weather-temperature{font-size:88px;line-height:1.2;font-weight:200;letter-spacing:-4px;min-height:106px}
#calculator-gate #weather-symbol{font-size:44px;min-height:66px}
#calculator-gate .weather-muted{color:#ccdcf0;font-size:13px}
#calculator-gate .weather-card{background:#0b28404a;border:1px solid #ffffff20;border-radius:22px;padding:18px;margin-block:14px}
#calculator-gate h2{font-size:14px;font-weight:500;color:#ccdcf0;letter-spacing:.07em;margin:0 0 16px}
#calculator-gate #weather-hourly{display:flex;gap:18px;overflow:auto;padding-block-end:8px}
#calculator-gate .weather-hour{text-align:center;min-inline-size:50px;font-variant-numeric:tabular-nums}
#calculator-gate .weather-hour span{display:block;margin-block:6px}
#calculator-gate .weather-day{display:grid;grid-template-columns:1fr 36px 1fr;gap:12px;padding-block:10px;border-top:1px solid #ffffff18;align-items:center}
#calculator-gate .weather-day span:last-child{text-align:end;font-variant-numeric:tabular-nums}
#calculator-gate .weather-details{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:10px}
#calculator-gate .weather-details strong{display:block;font-size:21px;font-weight:500}
#calculator-gate footer{text-align:center;font-size:12px;color:#cbdced;line-height:1.8}
#calculator-gate a{color:#e4f0ff;text-decoration:underline}
#calculator-gate .weather-panel{position:fixed;inset:0;overflow:auto;background:#142e4d;z-index:3;padding:max(24px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));box-sizing:border-box}
#calculator-gate [hidden]{display:none!important}
#calculator-gate form{margin-block:20px}
#calculator-gate input{box-sizing:border-box;inline-size:100%;padding:14px;border:1px solid #8ea8c3;border-radius:12px;background:#0e2034;color:white;font:18px system-ui;margin-block:8px}
#calculator-gate #weather-results button,#calculator-gate #weather-saved button{display:block;inline-size:100%;text-align:start;margin-block:10px}
#calculator-gate .weather-row{display:flex;flex-wrap:wrap;gap:10px;margin-block:12px}
#calculator-gate #weather-auth-container{position:relative;min-height:0}
#calculator-gate #weather-auth-container>.passcode-lock-screen{position:relative;inset:auto;width:100%;height:auto;min-height:0;transition:none}
#calculator-gate .weather-passcode-content{height:auto;display:block;min-height:0}
#calculator-gate .weather-passcode-card{position:relative;box-sizing:border-box;width:100%;max-width:420px;padding:16px;margin-inline:auto}
#calculator-gate .weather-passcode-art{display:none}
#calculator-gate .weather-passcode-form{margin-block:0}
#calculator-gate button.weather-unlock-submit{position:relative;display:flex;align-items:center;justify-content:center;visibility:visible;opacity:1;width:100%;min-height:48px;height:auto;padding:12px 16px;margin-block:12px;background:#245e9b;color:#fff;border:1px solid #a2c9f0;border-radius:12px;font-size:18px;line-height:1.4;transform:none}
#calculator-gate button.weather-unlock-submit:disabled{opacity:.55}
#calculator-gate #weather-auth-container .stealthy{display:none!important}
#calculator-relock{position:fixed;inset-inline-start:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:2147482999;background:#17355f;color:white;border:1px solid #aaa;border-radius:10px;padding:10px 18px;font:14px system-ui}
@media(prefers-reduced-motion:reduce){#calculator-gate *{scroll-behavior:auto!important}}
