/* AR WEATHERS by Araf Studio — iOS liquid glass */
:root{
  --font:"Plus Jakarta Sans",system-ui,-apple-system,"SF Pro Display","Segoe UI",Roboto,sans-serif;
  --sky1:#ff9a5c; --sky2:#ffd09a; --ground:#e2833d; --accent:#f7952f; --ink-a:#b85509;
  --txt:#fff; --txt2:rgba(255,255,255,.72);
}
[data-theme="cloudy"]{--sky1:#3a74ee; --sky2:#9bbcf8; --ground:#3560c0; --accent:#3a6cf0; --ink-a:#2751d0}
[data-theme="night"]{--sky1:#091842; --sky2:#2a4684; --ground:#081535; --accent:#4a68ff; --ink-a:#2a43c8}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:var(--font);color:var(--txt);background:#0f1424;display:flex;justify-content:center;
  background-image:radial-gradient(circle at 15% 15%,#26325a,transparent 55%),radial-gradient(circle at 85% 85%,#3a2a4a,transparent 55%)}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
button:focus-visible,input:focus-visible{outline:3px solid #fff;outline-offset:2px}
ul{list-style:none}
[hidden]{display:none!important}

.app{position:relative;width:100%;max-width:430px;min-height:100dvh;overflow:hidden;display:flex;flex-direction:column;isolation:isolate;
  background:var(--ground);transition:background .6s}
@media(min-width:480px){
  body{align-items:center;padding:24px}
  .app{min-height:0;height:min(900px,calc(100dvh - 48px));border-radius:46px;
    box-shadow:0 0 0 1px rgba(255,255,255,.25),0 0 0 8px rgba(255,255,255,.05),0 40px 100px rgba(0,0,0,.5)}
}

/* ---------- Liquid glass ---------- */
.glass{position:relative;
  background:linear-gradient(135deg,rgba(255,255,255,.30),rgba(255,255,255,.08) 55%,rgba(255,255,255,.16));
  -webkit-backdrop-filter:blur(24px) saturate(190%) brightness(1.05);
  backdrop-filter:blur(24px) saturate(190%) brightness(1.05);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,.65),
    inset 1.5px 0 0 rgba(255,255,255,.22),
    inset 0 -1.5px 0 rgba(255,255,255,.12),
    inset 0 0 18px rgba(255,255,255,.06),
    0 10px 34px rgba(0,0,0,.16);}
.glass::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.9;
  background:radial-gradient(160px circle at var(--mx,20%) var(--my,0%),rgba(255,255,255,.34),transparent 62%);
  transition:opacity .3s;mix-blend-mode:soft-light}

/* ---------- Background ---------- */
.bg{position:absolute;left:0;right:0;top:0;bottom:-1400px;z-index:-1;will-change:transform;background:linear-gradient(180deg,var(--sky1),var(--sky2) 400px,var(--ground) 490px);transition:background .6s}
.scene{position:absolute;left:0;right:0;top:236px;height:252px;overflow:hidden}
.scene svg{display:block;width:100%;height:100%}
.scene .gr{fill:var(--ground);transition:fill .6s}
.ground{position:absolute;left:0;right:0;top:486px;bottom:0;background:var(--ground);transition:background .6s}
.fx{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.fx.rain,.fx.rain::after{background-image:linear-gradient(105deg,transparent 47%,rgba(255,255,255,.4) 50%,transparent 53%);
  background-size:16px 70px;animation:rain .55s linear infinite;opacity:.5}
.fx.rain::after{content:"";position:absolute;inset:0;background-size:27px 110px;animation-duration:.8s;opacity:.7}
@keyframes rain{to{background-position:-16px 70px}}
.fx.snow{background-image:radial-gradient(circle,#fff 1.6px,transparent 2.4px),radial-gradient(circle,#fff 1px,transparent 1.8px);
  background-size:60px 60px,37px 37px;animation:snow 6s linear infinite;opacity:.8}
@keyframes snow{to{background-position:20px 60px,-10px 37px}}

/* ---------- Hero ---------- */
.hero{position:relative;flex:0 0 auto;padding-bottom:88px}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(16px + env(safe-area-inset-top,0px)) 18px 0}

.pill-btn{display:grid;place-items:center;min-width:38px;height:34px;padding:0 13px;border-radius:17px;font-size:12px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,rgba(255,255,255,.3),rgba(255,255,255,.1));border:1px solid rgba(255,255,255,.3);
  -webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 4px 14px rgba(0,0,0,.12);transition:transform .15s}
.pill-btn:active{transform:scale(.94)}
.pill-btn.spin svg{animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.hero-text{text-align:center;padding:10px 20px 0}
.city{font-size:22px;font-weight:700;letter-spacing:.005em;text-shadow:0 2px 12px rgba(0,0,0,.14)}
.desc{font-size:13.5px;font-weight:500;color:var(--txt2);margin-top:2px;text-transform:capitalize}
.temp{font-size:96px;font-weight:600;line-height:1;margin-top:4px;letter-spacing:-.05em;display:inline-flex;align-items:flex-start;
  text-shadow:0 8px 30px rgba(0,0,0,.18)}
.temp sup{font-size:34px;font-weight:500;margin:11px 0 0 4px;letter-spacing:0}
.date{font-size:12px;font-weight:500;color:var(--txt2);margin-top:4px}
.feel{display:inline-block;margin-top:12px;padding:7px 14px;border-radius:20px;font-size:12px;font-weight:600}

/* ---------- Sheet ---------- */
.scroll{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.scroll::-webkit-scrollbar{display:none}
.hero{will-change:transform,opacity}
.sheet{position:relative;padding:14px 14px 0;display:flex;flex-direction:column;gap:12px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:16px 6px;border-radius:28px;flex:0 0 auto}
.stat{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;min-width:0}
.stat svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-bottom:3px}
.stat b{font-size:13px;font-weight:700;white-space:nowrap}
.stat small{font-size:10.5px;color:var(--txt2);font-weight:500}

.panel{border-radius:30px;padding:2px 14px 4px;flex:0 0 auto}
.view{display:none}
.view.is-active{display:block;animation:in .35s cubic-bezier(.2,.8,.2,1)}
@keyframes in{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}

.tabs{display:flex;align-items:center;justify-content:space-between;margin:14px 2px 12px}
.tab-group{display:flex;gap:16px}
.tab{font-size:15px;font-weight:700;color:var(--txt2);position:relative;padding-bottom:6px;transition:color .2s}
.tab.is-active{color:#fff}
.tab.is-active::after{content:"";position:absolute;left:0;bottom:0;width:20px;height:3px;border-radius:2px;background:#fff}
.link{font-size:12px;font-weight:700;color:#fff;opacity:.9}
.vt{font-size:16px;font-weight:700}

.hours{display:flex;gap:9px;overflow-x:auto;padding:6px 0 16px;scroll-snap-type:x proximity;scrollbar-width:none;align-items:center;margin:0 -14px;padding-left:14px;padding-right:14px}
.hours::-webkit-scrollbar{display:none}
.chip{flex:0 0 58px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 0;border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.07));border:1px solid rgba(255,255,255,.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);font-size:12px;font-weight:600;color:var(--txt2)}
.chip b{font-size:13px;color:#fff;font-weight:700}
.chip svg{width:26px;height:26px}
.chip.is-active{flex-basis:66px;padding:20px 0;gap:14px;color:var(--ink-a);border-color:rgba(255,255,255,.9);
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.72));
  box-shadow:inset 0 2px 0 #fff,0 14px 28px rgba(0,0,0,.2),0 0 26px rgba(255,255,255,.35)}
.chip.is-active b{color:var(--ink-a)}
.empty{padding:22px 4px;color:var(--txt2);font-size:13px}

.days{display:flex;flex-direction:column;gap:9px;padding:0 0 14px}
.day{display:grid;grid-template-columns:62px 34px 1fr auto;align-items:center;gap:10px;padding:12px 14px;border-radius:20px;
  background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.day:first-child{background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(255,255,255,.7));color:var(--ink-a);box-shadow:inset 0 2px 0 #fff,0 12px 26px rgba(0,0,0,.18)}
.day .dn{font-weight:700;font-size:13px}
.day .dd{font-size:11px;color:var(--txt2);font-weight:500}
.day:first-child .dd,.day:first-child .dm,.day:first-child .dt i{color:var(--ink-a);opacity:.7}
.day svg{width:28px;height:28px}
.day .dm{font-size:12px;color:var(--txt2);text-transform:capitalize}
.day .dt{font-weight:700;font-size:14px;white-space:nowrap}
.day .dt i{font-style:normal;color:var(--txt2);font-weight:500;margin-left:6px}

.places{display:flex;flex-direction:column;gap:9px;padding-bottom:14px}
.place{display:flex;align-items:center;gap:8px;padding:5px 6px 5px 16px;border-radius:20px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2)}
.place button.go{flex:1;text-align:left;padding:10px 0;font-weight:700;font-size:14px}
.place small{display:block;color:var(--txt2);font-weight:500;font-size:11px}
.place .rm{width:34px;height:34px;border-radius:12px;color:var(--txt2);font-size:16px}
.place .rm:hover{background:rgba(255,255,255,.18)}
.about{padding:0 2px 16px;font-size:13.5px;line-height:1.65;display:flex;flex-direction:column;gap:10px}
.muted{color:var(--txt2)}
.dock-space{flex:0 0 112px}

/* ---------- Dock: sliding water-drop lens ---------- */
.dock{position:absolute;z-index:6;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));display:flex;align-items:stretch;
  padding:6px;border-radius:36px;touch-action:none;user-select:none;-webkit-user-select:none;
  background:linear-gradient(135deg,rgba(255,255,255,.26),rgba(255,255,255,.07));
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.7),inset 0 -1px 0 rgba(255,255,255,.15),0 18px 40px rgba(0,0,0,.28)}
.dock::after{display:none}
.dock-btn{position:relative;z-index:1;flex:1 1 0;min-width:0;height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  border-radius:30px;color:rgba(255,255,255,.78);font-size:10.5px;font-weight:600;letter-spacing:.01em;transition:color .25s}
.dock-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s cubic-bezier(.3,1.5,.5,1)}
.dock-btn.is-active{color:#fff}
.dock-btn.is-active svg{transform:scale(1.14)}
.lens{position:absolute;z-index:7;left:0;top:0;height:60px;width:70px;transform:translate(var(--lx,0px),var(--ly,0px));pointer-events:none;
  transition:transform .55s cubic-bezier(.3,1.35,.45,1),width .4s cubic-bezier(.3,1.2,.5,1)}
.lens.drag{transition:none}
.lens i{font-style:normal;position:absolute;inset:0;border-radius:30px;display:block;
  background:radial-gradient(110% 80% at 30% 12%,rgba(255,255,255,.28),rgba(255,255,255,.05) 55%,rgba(255,255,255,0) 75%);
  -webkit-backdrop-filter:blur(5px) saturate(150%) brightness(1.14);backdrop-filter:blur(5px) saturate(150%) brightness(1.14);overflow:hidden;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),inset 1.5px 3px 5px rgba(255,255,255,.55),inset -2px -4px 8px rgba(255,255,255,.2),
    0 12px 26px rgba(0,0,0,.22),0 3px 8px rgba(0,0,0,.12);
  transition:transform .3s cubic-bezier(.3,1.5,.5,1)}
.mag{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;
  transition:transform .55s cubic-bezier(.3,1.35,.45,1);
  filter:drop-shadow(.7px 0 0 rgba(255,70,130,.5)) drop-shadow(-.7px 0 0 rgba(70,170,255,.5))}
.lens.drag .mag{transition:none}
.magrow{display:flex;align-items:stretch;padding:6px}
.lens i::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:2;pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,255,255,0) 62%,rgba(255,255,255,.18) 100%)}
.lens i::after{z-index:3;content:"";position:absolute;left:16%;right:16%;top:6%;height:24%;border-radius:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0))}
.lens.go i{animation:drop .55s cubic-bezier(.3,1.3,.5,1)}
.lens.press i{transform:scale(1.16,1.12)}
@keyframes drop{0%{transform:scale(1,1)}30%{transform:scale(1.32,.86)}65%{transform:scale(.94,1.06)}100%{transform:scale(1,1)}}
.brand{font-family:"Syne",var(--font);font-weight:800;font-size:13px;letter-spacing:.16em}

/* ---------- Search ---------- */
.search{position:absolute;inset:0;z-index:10;background:rgba(10,16,34,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  display:flex;align-items:flex-end;animation:fade .25s}
@keyframes fade{from{opacity:0}}
.search-card{width:100%;max-height:84%;overflow:auto;border-radius:34px 34px 0 0;padding:20px 18px calc(22px + env(safe-area-inset-bottom,0px));
  background:linear-gradient(160deg,rgba(255,255,255,.34),rgba(255,255,255,.12));-webkit-backdrop-filter:blur(40px) saturate(200%);backdrop-filter:blur(40px) saturate(200%);
  animation:up .35s cubic-bezier(.2,.8,.2,1)}
@keyframes up{from{transform:translateY(60px);opacity:0}}
.search-row{display:flex;gap:10px;align-items:center}
.search-row input{flex:1;height:48px;border-radius:18px;border:1px solid rgba(255,255,255,.35);padding:0 16px;font:inherit;font-size:15px;font-weight:500;
  background:rgba(255,255,255,.18);color:#fff;box-shadow:inset 0 1px 3px rgba(0,0,0,.12)}
.search-row input::placeholder{color:rgba(255,255,255,.65)}
.search-row input:focus{outline:0;border-color:#fff;background:rgba(255,255,255,.26)}
.search-row .pill-btn{height:48px;border-radius:18px;padding:0 16px}
.locate{display:flex;align-items:center;gap:8px;margin:14px 2px 6px;font-weight:700;font-size:13px;color:#fff}
.results li button{width:100%;text-align:left;padding:13px 6px;border-bottom:1px solid rgba(255,255,255,.18);font-weight:600;font-size:14px}
.results li small{display:block;color:var(--txt2);font-weight:500;font-size:12px}
.results .none{padding:14px 6px;color:var(--txt2);font-size:13px}

.toast{position:absolute;z-index:20;left:50%;top:16px;transform:translate(-50%,-100px);max-width:88%;padding:12px 18px;border-radius:20px;
  background:rgba(20,28,50,.55);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 12px 30px rgba(0,0,0,.25);color:#fff;font-size:12.5px;font-weight:600;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);text-align:center}
.toast.show{transform:translate(-50%,0)}

.app.loading .temp,.app.loading .city{opacity:.6}

@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .glass,.dock,.search-card{background:rgba(40,60,110,.55)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- Details ---------- */
.view.stack.is-active{display:flex;flex-direction:column;gap:12px}
.sec{display:flex;align-items:center;gap:12px;margin:10px 4px 0;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--txt2)}
.sec::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.45),transparent)}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{border-radius:26px;padding:15px 15px 16px;min-height:140px;display:flex;flex-direction:column;overflow:hidden}
.tile.wide{grid-column:1/-1}
.tile header{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--txt2);position:relative;z-index:1}
.tile header svg{width:20px;height:20px;flex:none;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.92}
.tile .val{font-size:30px;font-weight:600;letter-spacing:-.02em;margin-top:10px;line-height:1.1;position:relative;z-index:1}
.tile .val small{font-size:13px;font-weight:600;color:var(--txt2);margin-left:4px;letter-spacing:0}
.tile p{font-size:12px;color:var(--txt2);margin:4px 0 12px;font-weight:500;position:relative;z-index:1}
.tile p:empty{display:none}
.tile .bar{margin-top:auto;position:relative;height:6px;border-radius:3px;background:rgba(255,255,255,.2);z-index:1}
.bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,.5),#fff);box-shadow:0 0 10px rgba(255,255,255,.55)}
.dots{display:flex;gap:5px;margin-top:auto;position:relative;z-index:1}
.dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.22)}
.dots i.on{background:#fff;box-shadow:0 0 6px rgba(255,255,255,.7)}
.compass{display:flex;align-items:center;gap:12px;margin-top:auto;position:relative;z-index:1}
.compass svg{width:58px;height:58px}
.compass b{font-size:20px;font-weight:700}
.pollut{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px;position:relative;z-index:1}
.pollut div{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:10px 6px;text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.pollut b{display:block;font-size:15px;font-weight:700}
.pollut small{font-size:10.5px;color:var(--txt2);font-weight:600}

.sunmoon{border-radius:28px;padding:16px 16px 4px}
.arc{width:100%;height:auto;display:block;overflow:visible}
.sm-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:4px}
.sm-cell{padding:14px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
.sm-cell:nth-child(odd){border-right:1px solid rgba(255,255,255,.2)}
.sm-cell:nth-child(n+3){border-top:1px solid rgba(255,255,255,.2)}
.sm-cell small{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--txt2)}
.sm-cell b{font-size:18px;font-weight:700}
.sm-cell em{font-style:normal;font-size:11.5px;color:var(--txt2);font-weight:500;margin-top:-2px}
.sm-cell svg{width:30px;height:30px}
