/* Mok Weather — favorites manager sheet + toast */
.overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgba(8,14,40,.38);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}
.overlay.on{opacity:1;visibility:visible;transition:opacity .35s ease}
.sheet{width:min(540px,100%);max-height:min(760px,100%);display:flex;flex-direction:column;gap:12px;padding:22px;
  background:linear-gradient(145deg,rgba(255,255,255,.30),rgba(255,255,255,.08)),rgba(20,34,74,.42);
  transform:translateY(30px) scale(.95);transition:transform .55s var(--ease)}
.overlay.on .sheet{transform:none}
.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sheet-head h2{margin:0;font-size:20px;font-weight:700}
.sheet p.note{margin:0;color:var(--ink-2);font-size:13px}
.fav-list{list-style:none;margin:0;padding:2px;display:grid;gap:8px;overflow:auto;position:relative;scrollbar-width:thin;min-height:56px}
.fav{height:56px;display:flex;align-items:center;gap:8px;padding-inline:6px 10px;border-radius:18px;background:rgba(255,255,255,.12);
  box-shadow:inset 0 2px 6px rgba(10,20,50,.18),inset 0 -1px 0 rgba(255,255,255,.25);transition:transform .3s var(--ease),background .2s,box-shadow .3s}
.fav-list.enter .fav{animation:up .5s var(--ease) backwards;animation-delay:calc(var(--k,0)*40ms)}
.fav.dragging{z-index:3;transition:background .2s,box-shadow .3s;background:rgba(255,255,255,.34);box-shadow:0 18px 30px -10px var(--shadow),inset 0 1.5px 0 rgba(255,255,255,.6);user-select:none}
.fav-list{user-select:none;-webkit-user-select:none}
.fav.current .nm b::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#7df0b4;margin-inline-start:8px;box-shadow:0 0 8px #7df0b4}
.fav .handle{flex:none;touch-action:none;cursor:grab;width:34px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--ink-2)}
.fav .handle:hover{background:rgba(255,255,255,.14);color:#fff}.fav .handle:active{cursor:grabbing}
.fav .handle svg{width:18px;height:18px}
.fav .nm{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.fav .nm b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fav .nm small{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-btn{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);transition:background .2s,transform .3s var(--ease),opacity .2s}
.mini-btn:hover{background:rgba(255,255,255,.3);transform:scale(1.08)}
.mini-btn.del:hover{background:rgba(255,92,108,.55)}
.mini-btn[disabled]{opacity:.3;pointer-events:none}
.mini-btn svg{width:17px;height:17px}
.sheet-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}
.sheet-foot .btn{height:42px;font-size:14px}
.btn.primary{background:linear-gradient(160deg,rgba(255,255,255,.62),rgba(255,255,255,.3));color:#0e2a5c;text-shadow:none}
.empty-fav{padding:18px;text-align:center;color:var(--ink-2)}

.toast{position:fixed;inset-inline:0;bottom:max(20px,env(safe-area-inset-bottom,0px));margin-inline:auto;width:max-content;max-width:calc(100% - 32px);z-index:60;
  display:flex;align-items:center;gap:14px;padding:12px 14px 12px 20px;border-radius:999px;
  background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(255,255,255,.12)),rgba(20,34,74,.55);border:1px solid var(--line);
  -webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,.55),0 18px 36px -12px var(--shadow);
  opacity:0;transform:translateY(24px) scale(.96);pointer-events:none;transition:opacity .35s ease,transform .5s var(--ease)}
.toast.on{opacity:1;transform:none;pointer-events:auto}
.toast button{padding:6px 14px;border-radius:999px;font-weight:700;background:rgba(255,255,255,.28);transition:background .2s}
.toast button:hover{background:rgba(255,255,255,.45)}
.toast button[hidden]{display:none}
