/* 浮层：顶部横幅通知、底部弹出面板、看大图、提示 */
.banner{position:absolute;left:9px;right:9px;top:calc(var(--top) - 4px);z-index:65;display:grid;grid-template-columns:40px 1fr;gap:11px;align-items:center;padding:12px 14px;border-radius:24px;background:var(--sys-glass);-webkit-backdrop-filter:blur(26px) saturate(1.6);backdrop-filter:blur(26px) saturate(1.6);box-shadow:0 12px 36px rgba(20,18,40,.22);transform:translateY(calc(-100% - var(--top) - 12px));transition:transform .36s cubic-bezier(.2,.85,.25,1);text-align:left;color:var(--sys-ink)}
.banner.on{transform:none}
.banner .note-av .mini-app{box-shadow:0 0 0 1.5px var(--sys-card)}
.banner .note-top time{opacity:.55}
.banner p{font-size:15px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.sheet{position:absolute;inset:0;z-index:70;visibility:hidden;transition:visibility 0s .32s}
.sheet.on{visibility:visible;transition:none}
.sheet-back{position:absolute;inset:0;background:rgba(0,0,0,.4);opacity:0;transition:opacity .25s}
.sheet.on .sheet-back{opacity:1}
.sheet-panel{position:absolute;left:0;right:0;bottom:0;max-height:92%;overflow:auto;background:var(--sys-bg);border-radius:14px 14px 0 0;padding:0 16px calc(var(--bottom) + 14px);transform:translateY(105%);transition:transform .34s cubic-bezier(.2,.85,.25,1);color:var(--sys-ink)}
.sheet.on .sheet-panel{transform:none}
.sheet-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:0 -16px;padding:14px 16px 10px;position:sticky;top:0;background:var(--sys-bg);z-index:2}
.sheet-head h3{font-size:17px;font-weight:600;text-align:center}
.sheet-head button{color:var(--sys-blue);font-size:17px}
.sheet-head button:last-child{justify-self:end;font-weight:600}
.sheet-panel .sub{font-size:13px;color:var(--sys-ink2);text-align:center;margin:-2px 0 12px;line-height:1.5}
.sheet-title{font-size:17px;font-weight:600;text-align:center;padding:18px 0 6px}
.sheet-panel .ios-group:first-of-type{margin-top:8px}
.sheet-panel .btnrow{margin-top:16px}
.act-list{background:var(--sys-card);border-radius:12px;overflow:hidden;margin-top:8px}
.act{display:flex;align-items:center;gap:12px;width:100%;padding:15px 16px;font-size:17px;position:relative;text-align:left}
.act+.act::before{content:"";position:absolute;top:0;left:16px;right:0;height:.5px;background:var(--sys-sep)}

.viewer{position:absolute;inset:0;z-index:80;background:#000;display:none;place-items:center}
.viewer.on{display:grid}
.viewer img{max-width:100%;max-height:100%;object-fit:contain}

.toast{position:absolute;left:50%;bottom:calc(var(--bottom) + 110px);transform:translate(-50%,16px);background:rgba(30,30,32,.92);color:#fff;font-size:14px;padding:10px 16px;border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:90;width:max-content;max-width:86%;text-align:center;line-height:1.5}
.toast.on{opacity:1;transform:translate(-50%,0)}
.sheet-panel .sub.small{font-size:12px;color:var(--sys-ink3);margin-top:14px;line-height:1.5}
.sheet-panel ol.steps{margin:4px 4px 14px;padding-left:22px;font-size:15px;line-height:1.55;color:var(--sys-ink)}
.sheet-panel ol.steps li{margin:6px 0}
.sheet-panel .acc-msg{margin:10px 4px 0;color:var(--sys-ink2)}
.sheet-panel > .btn{display:block;margin:10px auto 0}

/* 和 iPhone 一样的居中弹窗（问要不要开通知） */
.ios-alert-wrap{position:absolute;inset:0;z-index:90;display:grid;place-items:center;background:rgba(0,0,0,.28);opacity:0;transition:opacity .2s ease}
.ios-alert-wrap.on{opacity:1}
.ios-alert{width:270px;border-radius:14px;overflow:hidden;background:var(--sys-glass);-webkit-backdrop-filter:blur(30px) saturate(1.8);backdrop-filter:blur(30px) saturate(1.8);color:var(--sys-ink);text-align:center;transform:scale(1.08);transition:transform .22s cubic-bezier(.2,.85,.25,1)}
.ios-alert-wrap.on .ios-alert{transform:none}
.ios-alert-text{padding:19px 16px 16px}
.ios-alert h3{margin:0;font-size:17px;font-weight:600;line-height:1.3}
.ios-alert p{margin:5px 0 0;font-size:13px;line-height:1.4}
.ios-alert-btns{display:flex;border-top:.5px solid var(--sys-sep)}
.ios-alert-btns button{flex:1;min-height:44px;background:none;border:0;font:inherit;font-size:17px;color:var(--sys-blue);cursor:pointer}
.ios-alert-btns button+button{border-left:.5px solid var(--sys-sep)}
.ios-alert-btns button.bold{font-weight:600}
.ios-alert-btns.col{flex-direction:column}
.ios-alert-btns.col button+button{border-left:0;border-top:.5px solid var(--sys-sep)}

/* 第一次打开：你好 → 登录知己账户（js/ui/account.js），盖在锁屏上 */
.setup{position:absolute;inset:0;z-index:52;background:var(--sys-bg);color:var(--sys-ink);opacity:0;transition:opacity .45s ease;overflow:hidden}
.setup.on{opacity:1}
.setup-hello{position:absolute;inset:0;display:grid;place-items:center;width:100%;background:var(--sys-card);transition:opacity .45s ease}
.setup-hello.out{opacity:0;pointer-events:none}
.hello-word{grid-area:1/1;font-size:58px;font-weight:200;letter-spacing:.5px;opacity:0;transform:translateY(8px);transition:opacity 1s ease,transform 1s ease}
.hello-word.on{opacity:1;transform:none}
.setup-go{position:absolute;left:0;right:0;bottom:calc(var(--bottom) + 56px);text-align:center;font-size:15px;color:var(--sys-ink2);animation:setupPulse 2.4s ease-in-out infinite}
@keyframes setupPulse{50%{opacity:.35}}
.setup-auth{position:absolute;inset:0;overflow-y:auto;padding:calc(var(--top) + 34px) 22px calc(var(--bottom) + 28px);opacity:0;transform:translateX(30px);transition:opacity .4s ease,transform .4s ease}
.setup-auth.on{opacity:1;transform:none}
.setup-auth .app-mark{width:76px;height:76px;border-radius:18px;display:block;margin:0 auto 18px;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.in-setup .homebar{visibility:hidden}
.in-setup .statusbar{color:var(--sys-ink)!important}
.sheet-panel .acc-msg.bad{color:var(--sys-red)}
.sheet-panel .code-input{font-size:24px;letter-spacing:6px}
@media (prefers-reduced-motion:reduce){.hello-word,.setup-auth{transition:none}.setup-go{animation:none}}
/* 用户协议 / 隐私政策的卡片（js/ui/account.js 的 policySheet） */
.sheet-panel.tall{height:92%;display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
.sheet-panel.tall .sheet-head{flex:none}
.sheet-done{color:var(--sys-blue);font-weight:600}
.policy-frame{flex:1;width:calc(100% + 32px);margin:0 -16px;border:0;background:#fff;display:block}
