/* ===== 页面与工具栏 ===== */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{background:radial-gradient(1200px 700px at 50% -10%,#2b303a,#14161a);color:#e9ecef;overflow:hidden;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue","Noto Sans CJK SC","Microsoft YaHei",sans-serif}
button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer}
#toolbar{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:13px}
.tb-title{font-weight:600;letter-spacing:.04em;opacity:.85}
.tb-right{display:flex;gap:10px;align-items:center}
.tb-btn{padding:5px 12px;border-radius:999px;background:#ffffff14;border:1px solid #ffffff1f}
.tb-btn b{font-weight:600;margin-left:4px}
#saveState{font-size:12px;opacity:.55}
.seg{display:inline-flex;border:1px solid #ffffff2a;border-radius:999px;overflow:hidden}
.seg button{padding:5px 14px}
.seg button.on{background:#e9ecef;color:#14161a}
html[data-start=play] .edit-only{display:none!important}
#main{display:flex;justify-content:center;align-items:flex-start;gap:28px;height:calc(100% - 44px);padding:4px 16px 0}
#stageCol{display:flex;flex-direction:column;align-items:center;gap:14px;flex:none}
#intro{max-width:380px;text-align:center;font-size:13px;line-height:1.6;color:#aab1b8}
#phoneBox{position:relative;flex:none;margin:12px}

/* ===== 手机本体 ===== */
.phone{position:absolute;left:0;top:0;width:393px;height:852px;transform-origin:0 0;border-radius:56px;
  box-shadow:0 0 0 10px #0b0c0e,0 0 0 11.5px #41454d,0 30px 90px rgba(0,0,0,.55)}
.screen{position:absolute;inset:0;border-radius:56px;overflow:hidden;background:#000;color:#111;--top:56px;--bot:34px;
  font-size:16px;line-height:1.35;user-select:none;-webkit-user-select:none}
.layer{position:absolute;inset:0}
#wall{position:absolute;inset:0;background:#222 center/cover no-repeat}
#layerHome{z-index:1;transition:transform .3s ease,filter .3s ease}
#layerHome.away{transform:scale(.94);filter:brightness(.7)}
#layerApp{z-index:2;pointer-events:none}
#layerApp>.appRoot{pointer-events:auto}
#layerLock{z-index:3}
#viewer{position:absolute;inset:0;z-index:4;background:#000;opacity:0;pointer-events:none;transition:opacity .2s}
#viewer.on{opacity:1;pointer-events:auto}
#status{position:absolute;z-index:5;top:0;left:0;right:0;height:54px;padding:19px 34px 0 52px;display:flex;justify-content:space-between;align-items:flex-start;
  color:#fff;font-weight:600;font-size:16px;pointer-events:none;transition:color .2s}
.screen.sdark #status{color:#000}
.st-time{letter-spacing:.01em}
.st-r{display:flex;gap:6px;align-items:center;margin-top:2px}
#island{position:absolute;z-index:6;top:11px;left:50%;width:124px;height:36px;margin-left:-62px;border-radius:20px;background:#000}
#homebar{position:absolute;z-index:9;left:50%;bottom:0;width:170px;height:30px;margin-left:-85px;cursor:pointer;touch-action:none}
#homebar::after{content:"";position:absolute;left:18px;right:18px;bottom:8px;height:5px;border-radius:3px;background:#fff;opacity:.9;transition:background .2s}
.screen.sdark #homebar::after{background:#000;opacity:.85}
#banner{position:absolute;z-index:7;top:0;left:10px;right:10px;transform:translateY(-130%);transition:transform .36s cubic-bezier(.3,.9,.3,1);pointer-events:none}
#banner.show{transform:translateY(54px);pointer-events:auto}
.bn{display:flex;gap:10px;align-items:center;padding:11px 14px;border-radius:22px;background:rgba(246,246,248,.94);backdrop-filter:blur(20px);box-shadow:0 8px 30px rgba(0,0,0,.28);color:#111;cursor:pointer}
.bn small{align-self:flex-start;color:#888;font-size:11px}
.bic{flex:none;width:38px;height:38px;border-radius:9px;overflow:hidden;display:grid;place-items:center;background:#ddd}
.bic img{width:100%;height:100%;display:block}
.bic.clue{background:linear-gradient(#8f7dff,#5a45e3)}
.bt{flex:1;min-width:0;display:flex;flex-direction:column}
.bt b{font-size:14px}
.bt span{font-size:14px;color:#333;line-height:1.3}
.bt em{font-size:12.5px;color:#6a55e0;font-style:italic;margin-top:2px}
.bn.clue{background:rgba(250,248,255,.96)}
#toast{position:absolute;z-index:8;left:50%;bottom:120px;transform:translate(-50%,10px);max-width:80%;background:rgba(20,20,22,.88);color:#fff;font-size:14px;padding:9px 16px;border-radius:12px;opacity:0;pointer-events:none;transition:.22s;text-align:center}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* ===== 手机：全屏（窄屏）模式 ===== */
body.full #main{padding:0;gap:0;display:block}
body.full #phoneBox{margin:0}
body.full .phone{width:100%;height:100%;border-radius:0;box-shadow:none}
body.full .screen{border-radius:0;--top:max(16px,env(safe-area-inset-top));--bot:max(10px,env(safe-area-inset-bottom))}
body.full #status,body.full #island{display:none}
body.full #banner.show{transform:translateY(calc(var(--top) + 6px))}
body.full #intro{display:none}

/* ===== 桌面 ===== */
.home{padding:calc(var(--top) + 8px) 22px 0;height:100%;color:#fff;position:relative}
.widget{display:flex;gap:14px;height:148px;margin-bottom:26px;padding:16px 18px;border-radius:24px;background:rgba(255,255,255,.2);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);cursor:pointer}
.w-l{display:flex;flex-direction:column;justify-content:space-between;min-width:70px}
.w-l small{color:#ff6b61;font-weight:600;font-size:15px}
.w-l b{font-size:64px;font-weight:300;line-height:1}
.w-r{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}
.w-r small{font-size:13px;opacity:.85}
.w-ev{display:flex;gap:8px}
.w-ev i{flex:none;width:4px;border-radius:2px;background:#ff6b61}
.w-ev b{display:block;font-size:15px}
.w-ev span,.w-none{font-size:13px;opacity:.85}
.hgrid{display:grid;grid-template-columns:repeat(4,60px);justify-content:space-between;row-gap:24px}
.app{display:flex;flex-direction:column;align-items:center;gap:6px;color:#fff;font-size:11.5px;text-shadow:0 1px 3px rgba(0,0,0,.4);position:relative}
.ic{width:60px;height:60px;border-radius:13.4px;overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.ic img{display:block;width:100%;height:100%;object-fit:cover}
.calic{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:5px;color:#111;text-shadow:none}
.calic b{font-size:10px;font-weight:600;color:#ff3b30;line-height:1.2}
.calic span{font-size:34px;font-weight:300;line-height:1.05}
.badge{position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#ff3b30;color:#fff;font:600 14px/22px sans-serif;font-style:normal;text-align:center;text-shadow:none;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.dots{position:absolute;left:0;right:0;bottom:calc(var(--bot) + 108px);display:flex;justify-content:center;gap:8px}
.dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.4)}
.dots i.on{background:#fff}
.dock{position:absolute;left:12px;right:12px;bottom:calc(var(--bot) - 14px);height:94px;border-radius:34px;background:rgba(255,255,255,.26);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);display:flex;justify-content:space-around;align-items:center;padding:0 12px}
body.full .dock{bottom:calc(var(--bot) + 6px)}
body.full .dots{bottom:calc(var(--bot) + 126px)}

/* ===== 锁屏 ===== */
.lock{position:absolute;inset:0;background:#222 center/cover;color:#fff;text-align:center;padding-top:calc(var(--top) + 18px);touch-action:none}
.l-date{font-size:19px;font-weight:600;opacity:.95;margin-top:6px}
.l-time{font-size:96px;font-weight:600;line-height:1.05;letter-spacing:-.02em;font-feature-settings:"tnum"}
.l-notes{padding:26px 14px 0;display:flex;flex-direction:column;gap:8px;text-align:left}
.notice{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:20px;background:rgba(255,255,255,.28);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);cursor:pointer}
.nic{flex:none;width:36px;height:36px;border-radius:8px;overflow:hidden;background:#ddd}
.nic img{width:100%;height:100%;display:block}
.notice .nb{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.notice .nb b{font-size:14.5px}
.notice .nb span{font-size:14px;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notice small{align-self:flex-start;opacity:.8;font-size:12px}
.l-btns{position:absolute;left:44px;right:44px;bottom:calc(var(--bot) + 40px);display:flex;justify-content:space-between}
.l-btns i{width:50px;height:50px;border-radius:50%;background:rgba(40,40,44,.45);backdrop-filter:blur(16px);display:grid;place-items:center}
.l-tip{position:absolute;left:0;right:0;bottom:calc(var(--bot) + 8px);font-size:13px;opacity:.8;cursor:pointer}

/* ===== App 通用 ===== */
.appRoot{position:absolute;inset:0;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.scroller{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.scroller::-webkit-scrollbar{display:none}
.empty{text-align:center;color:#999;padding:50px 20px;font-size:14px}
.page{display:flex;flex-direction:column;height:100%}
.page.push{animation:pushin .26s cubic-bezier(.3,.8,.3,1)}
@keyframes pushin{from{transform:translateX(34%);opacity:.4}to{transform:none;opacity:1}}
.av{--s:40px;flex:none;display:block;width:var(--s);height:var(--s);border-radius:calc(var(--s)*.12);overflow:hidden}
.av img{width:100%;height:100%;object-fit:cover;display:block}
.av.tx{display:grid;place-items:center;color:#fff;font-weight:500;font-size:calc(var(--s)*.44)}

/* ===== 微信 ===== */
.wx{background:#ededed;color:#111;position:relative}
.wx-nav{flex:none;height:calc(var(--top) + 44px);padding-top:var(--top);display:grid;grid-template-columns:96px 1fr 96px;align-items:center;background:#ededed;position:relative;z-index:2}
.wx-nav.plain{background:#fff}
.wx-nav.ghost{background:#fff;grid-template-columns:1fr}
.wx-nav.ghost>div:first-child,.wx-nav.ghost>div:nth-child(2){display:none}
.wx-title{text-align:center;font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wx-r{display:flex;justify-content:flex-end;padding-right:14px}
.wx-nav.ghost .wx-r{justify-content:flex-end}
.wx-back{display:flex;align-items:center;gap:5px;padding:8px 12px 8px 14px;color:#111;font-size:16px}
.wx-tab{flex:none;display:flex;height:calc(50px + var(--bot));padding-bottom:var(--bot);background:#f7f7f7;border-top:.5px solid #d6d6d6}
.wx-tab button{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:10.5px;color:#181818;padding-top:3px}
.wx-tab svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.wx-tab button.on{color:#07c160}
.wx-tab button.on svg{fill:currentColor}
.wx-tab .badge{top:0;right:calc(50% - 26px);min-width:18px;height:18px;line-height:18px;font-size:12px;padding:0 5px;border-radius:9px}
.wx-search{margin:0 8px 8px;height:36px;border-radius:6px;background:#fff;display:flex;align-items:center;justify-content:center;gap:6px;color:#8d8d8d;font-size:15px}
.wx-list{background:#fff}
.wx-row{display:flex;align-items:center;gap:12px;padding-left:16px;height:68px;background:#fff;cursor:pointer;position:relative}
.wx-row:active{background:#d9d9d9}
.wx-row.sm{height:56px}
.rav{position:relative;flex:none}
.rav .badge{top:-7px;right:-7px;min-width:20px;height:20px;line-height:20px;font-size:13px}
.rb{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:center;gap:3px;border-bottom:.5px solid #e5e5e5;padding-right:16px}
.wx-row.sm .rb{flex-direction:row;align-items:center}
.wx-row.sm .rb .l1{width:100%}
.l1{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.l1 .n{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.l1 .t{font-size:12px;color:#b2b2b2;flex:none}
.l2{font-size:14px;color:#9b9b9b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wx-grp{padding:6px 16px;font-size:13px;color:#7a7a7a;background:#ededed}
.wx-foot{text-align:center;color:#9b9b9b;font-size:14px;padding:18px 0 28px}
.gap{background:#ededed}
.gap .wx-list{margin-bottom:8px}
.gi{flex:none;width:30px;height:30px;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:15px;margin-right:2px}
.chv{padding-right:16px;display:flex;align-items:center}
.wx-row.sm .rb{border-bottom:.5px solid #e5e5e5}
.wx-row .chv{margin-left:-6px}
.mini{margin-right:6px}
.dot{width:9px;height:9px;border-radius:50%;background:#fa5151;margin-right:6px}
.wx-me{display:flex;align-items:center;gap:16px;background:#fff;padding:20px 16px 26px;margin-bottom:8px}
.mi{flex:1;display:flex;flex-direction:column;gap:6px}
.mi b{font-size:21px;font-weight:600}
.mi span{font-size:15px;color:#7a7a7a}
.wx-pro{display:flex;align-items:center;gap:16px;background:#fff;padding:18px 16px 24px;margin-bottom:8px}
.pi{display:flex;flex-direction:column;gap:4px}
.pi b{font-size:21px}
.pi span{font-size:14px;color:#7a7a7a}
.thumbs{display:flex;gap:4px;margin-right:6px}
.thumbs img{width:44px;height:44px;object-fit:cover;border-radius:2px}
.wx-btn{margin:10px 0 0;background:#fff;text-align:center;padding:16px;font-size:17px;font-weight:500;color:#576b95;cursor:pointer}
/* 聊天 */
.wx-msgs{background:#ededed;padding:12px 12px 14px}
.chip{text-align:center;color:#a0a0a0;font-size:13px;margin:6px 0 16px}
.chip.sys{margin:6px 30px 16px}
.msg{display:flex;gap:9px;align-items:flex-start;margin-bottom:18px}
.msg.me{flex-direction:row-reverse}
.bub{position:relative;max-width:calc(100% - 104px);padding:10px 12px;border-radius:6px;font-size:17px;line-height:1.4;background:#fff;word-break:break-word;white-space:pre-wrap;user-select:text;-webkit-user-select:text}
.me .bub{background:#95ec69}
.bub::before{content:"";position:absolute;top:15px;width:9px;height:9px;background:inherit;transform:rotate(45deg);border-radius:1.5px}
.you .bub::before{left:-3.5px}
.me .bub::before{right:-3.5px}
.bub.voice{display:flex;align-items:center;gap:6px;min-width:68px;white-space:nowrap}
.me .bub.voice{justify-content:flex-end}
.you .bub.voice svg{transform:none}
.me .bub.voice svg{transform:scaleX(-1)}
.mimg{display:block;max-width:190px;max-height:240px;border-radius:5px;object-fit:cover;cursor:pointer;background:#ddd}
.msticker{display:block;width:104px;height:auto}
.wx-input{flex:none;display:flex;align-items:center;gap:8px;padding:8px 10px;padding-bottom:calc(8px + var(--bot));background:#f7f7f7;border-top:.5px solid #d6d6d6}
.wx-input .field{flex:1;height:40px;border-radius:6px;background:#fff;display:flex;align-items:center;padding:0 12px;font-size:16px;color:#9a9a9a;cursor:default}
.wx-input .field.on{cursor:pointer;color:#555;animation:nudge 1.8s ease-in-out infinite}
@keyframes nudge{0%,100%{box-shadow:0 0 0 0 rgba(7,193,96,0)}50%{box-shadow:0 0 0 3px rgba(7,193,96,.4)}}
.tray{flex:none;background:#f7f7f7;border-top:.5px solid #d6d6d6;padding:10px 12px 6px;display:flex;flex-direction:column;gap:8px;animation:pushup .2s ease-out}
@keyframes pushup{from{transform:translateY(30%);opacity:.3}to{transform:none;opacity:1}}
.tray .tp{font-size:12.5px;color:#8d8d8d;text-align:center}
.tray button{background:#fff;border-radius:8px;padding:12px 14px;text-align:left;font-size:16px;color:#111;border:1px solid #e3e3e3}
.tray button:active{background:#95ec69}
/* 朋友圈 */
.mo-nav{position:absolute;z-index:4;top:0;left:0;right:0;height:calc(var(--top) + 44px);padding:var(--top) 14px 0;display:flex;justify-content:space-between;align-items:center;color:#fff;transition:background .2s,color .2s}
.mo-nav.solid{background:#ededed;color:#111;box-shadow:0 .5px 0 #d6d6d6}
.mo-t{font-size:17px;font-weight:600;opacity:0;transition:.2s}
.mo-nav.solid .mo-t{opacity:1}
.mo-nav button{padding:8px 4px;color:inherit}
#moscroll{position:absolute;inset:0;background:#fff}
.mo-cover{position:relative;height:340px;background:#444 center/cover;margin-bottom:34px}
.mo-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(#0006,#0000 30%,#0000 70%,#0003)}
.mo-cover>b{position:absolute;z-index:2;right:92px;bottom:10px;color:#fff;font-size:19px;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.mo-cover>.av{position:absolute;z-index:2;right:14px;bottom:-26px;border:2px solid #fff;border-radius:6px}
.mo-cover>.av,.mo-cover>.av img{border-radius:4px}
.mo-feed{padding:6px 0 0;background:#fff}
.mo{display:flex;gap:10px;padding:14px 16px;border-bottom:.5px solid #e8e8e8;cursor:pointer}
.mb{flex:1;min-width:0}
.mn{display:block;color:#576b95;font-size:16.5px;font-weight:600;line-height:1.3}
.mb p{margin:3px 0 7px;font-size:16.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word;color:#111}
.mgrid{display:grid;grid-template-columns:repeat(3,92px);gap:4px;margin-bottom:6px}
.mgrid.c2{grid-template-columns:repeat(2,92px)}
.mgrid img{width:92px;height:92px;object-fit:cover;display:block;background:#ddd}
.mgrid.c1{grid-template-columns:1fr}
.mgrid.c1 img{width:190px;height:auto;max-height:250px}
.mt{display:flex;justify-content:space-between;align-items:center;color:#9b9b9b;font-size:13px;margin-top:2px}
.mt button{background:#f2f2f2;color:#576b95;font-weight:700;letter-spacing:1px;padding:0 8px;border-radius:4px;line-height:18px;height:20px}
.mbox{position:relative;background:#f3f3f5;border-radius:4px;margin-top:8px;padding:6px 8px;font-size:15px;line-height:1.5}
.mbox::before{content:"";position:absolute;top:-5px;left:14px;width:10px;height:10px;background:#f3f3f5;transform:rotate(45deg)}
.mbox hr{border:0;border-top:.5px solid #e2e2e2;margin:4px -8px}
.mlk{display:flex;gap:6px;align-items:flex-start;color:#576b95}
.mlk svg{flex:none;margin-top:5px}
.mcm b{color:#576b95;font-weight:500}

/* ===== iOS 通用（照片/备忘录/日历/电话/信息）===== */
.ios{background:#fff;color:#111;height:100%;display:flex;flex-direction:column}
.ios h1{margin:0;font-size:34px;font-weight:700;padding:6px 18px 10px}
/* 照片 */
.ph-nav{flex:none;display:flex;justify-content:space-between;align-items:flex-end;padding:var(--top) 16px 6px}
.ph-nav h1{padding:0;font-size:26px}
.ph-nav button{background:#eee;padding:6px 14px;border-radius:999px;font-size:15px;color:#111;margin-bottom:3px}
.ph-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.ph-grid button{aspect-ratio:1;background:#eee;overflow:hidden;display:block}
.ph-grid img{width:100%;height:100%;object-fit:cover;display:block}
.ph-count{text-align:center;padding:18px 0 20px;font-size:15px;color:#111}
.ph-tabs{flex:none;display:flex;justify-content:space-around;padding:8px 0 calc(var(--bot) + 4px);background:#f8f8f8;border-top:.5px solid #d0d0d0;font-size:10.5px;color:#8a8a8e}
.ph-tabs span{display:flex;flex-direction:column;align-items:center;gap:3px}
.ph-tabs i{width:24px;height:24px;border-radius:7px;background:#c8c8cc}
.ph-tabs .on{color:#007aff}.ph-tabs .on i{background:#007aff}
/* 查看器 */
.v-top{position:absolute;z-index:2;top:0;left:0;right:0;height:calc(var(--top) + 44px);padding:var(--top) 10px 0;display:grid;grid-template-columns:60px 1fr 60px;align-items:center;color:#fff;background:linear-gradient(#000a,#0000);pointer-events:none}
.v-top button{font-size:34px;line-height:1;pointer-events:auto;text-align:left;padding:0 10px}
.v-t{text-align:center;display:flex;flex-direction:column;font-size:13px;line-height:1.25}
.v-t b{font-size:14px}
.v-t span{opacity:.8;font-size:12px}
.v-strip{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.v-strip::-webkit-scrollbar{display:none}
.v-slide{flex:none;width:100%;height:100%;scroll-snap-align:center;display:flex;align-items:center;justify-content:center}
.v-slide img{max-width:100%;max-height:100%;object-fit:contain}
/* 备忘录 */
.nt-app{background:#f2f2f7}
.nt-nav{flex:none;padding:var(--top) 12px 4px;display:flex;color:#e0a100;min-height:calc(var(--top) + 36px)}
.nt-nav button{display:flex;align-items:center;gap:4px;font-size:17px;color:#e0a100}
.nt-search{margin:0 16px 14px;height:36px;border-radius:10px;background:#e3e3e8;color:#8a8a8e;display:flex;align-items:center;padding:0 12px;font-size:16px}
.nt-grp{margin:0 16px;background:#fff;border-radius:12px;overflow:hidden}
.nt-row{display:block;width:100%;text-align:left;padding:10px 16px;position:relative}
.nt-row+.nt-row::before{content:"";position:absolute;top:0;left:16px;right:0;border-top:.5px solid #dcdce0}
.nt-row b{display:block;font-size:16px}
.nt-row span{display:block;font-size:14px;color:#8a8a8e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nt-row i{font-style:normal;color:#111;margin-right:10px}
.nt-foot{text-align:center;color:#8a8a8e;font-size:14px;padding:20px 0}
.nt-body{background:#fff;min-height:100%;padding:8px 20px 40px}
.nt-time{text-align:center;color:#8a8a8e;font-size:12.5px;margin:6px 0 14px}
.nt-body h2{margin:0 0 8px;font-size:26px}
.nt-text{white-space:pre-wrap;font-size:17px;line-height:1.55}
.nt-app:not(.list){background:#fff}
/* 日历 */
.cal-nav{flex:none;padding:var(--top) 14px 0;color:#ff3b30;min-height:calc(var(--top) + 30px)}
.cal-nav .red{display:flex;align-items:center;gap:4px;font-size:17px}
.cal-wk{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:12px;color:#8a8a8e;padding:0 8px 4px;border-bottom:.5px solid #ddd;margin-bottom:4px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:0 8px;row-gap:4px}
.cal-grid i{display:block}
.cal-grid button{height:46px;display:flex;flex-direction:column;align-items:center;gap:1px}
.cal-grid span{width:32px;height:32px;line-height:32px;border-radius:50%;font-size:19px}
.cal-grid .today span{color:#ff3b30;font-weight:600}
.cal-grid .sel span{background:#111;color:#fff}
.cal-grid .today.sel span{background:#ff3b30;color:#fff}
.cal-grid u{width:5px;height:5px;border-radius:50%;background:#8a8a8e}
.cal-grid u.x{background:transparent}
.cal-day{padding:14px 18px 8px;font-size:14px;color:#8a8a8e;border-top:.5px solid #ddd;margin-top:6px}
.cal-ev{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:10px 18px}
.cal-ev i{flex:none;width:4px;align-self:stretch;border-radius:2px;background:#ff3b30}
.cal-ev div{flex:1}.cal-ev b{display:block;font-size:16px}
.cal-ev span{font-size:13px;color:#8a8a8e}
.cal-ev em{font-style:normal;color:#8a8a8e;font-size:14px}
.cal-none{padding:20px 18px;color:#8a8a8e}
/* 电话 */
.p2-nav{flex:none;display:flex;padding:var(--top) 16px 0;min-height:calc(var(--top) + 34px);color:#007aff;font-size:17px}
.p2-seg{margin:0 70px 10px;display:flex;background:#eee;border-radius:9px;padding:2px;font-size:13px;text-align:center}
.p2-seg span{flex:1;padding:5px 0;border-radius:7px}.p2-seg .on{background:#fff;box-shadow:0 1px 3px #0002;font-weight:600}
.p2-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 14px 8px 28px;position:relative}
.p2-row::after{content:"";position:absolute;left:28px;right:0;bottom:0;border-bottom:.5px solid #e2e2e2}
.p2-row div{flex:1}.p2-row b{display:block;font-size:17px;font-weight:600}
.p2-row.miss b{color:#ff3b30}
.p2-row div span{font-size:13px;color:#8a8a8e}
.p2-row em{font-style:normal;color:#8a8a8e;font-size:15px}
.p2-row i{font-style:normal;color:#007aff;font-size:20px}
.p2-tabs{flex:none;display:flex;justify-content:space-around;padding:8px 0 calc(var(--bot) + 4px);background:#f8f8f8;border-top:.5px solid #d0d0d0;font-size:10px;color:#8a8a8e}
.p2-tabs span{display:flex;flex-direction:column;align-items:center;gap:3px}
.p2-tabs i{width:22px;height:22px;border-radius:6px;background:#c8c8cc}
.p2-tabs .on{color:#007aff}.p2-tabs .on i{background:#007aff}
/* 信息 */
.sm-app{background:#fff}
.sm-top{flex:none;min-height:calc(var(--top) + 26px)}
.sm-row{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:10px 16px}
.sm-row i,.sm-who i{flex:none;width:48px;height:48px;border-radius:50%;background:linear-gradient(#a6aab6,#80848f);color:#fff;font-style:normal;display:grid;place-items:center;font-size:20px}
.sm-row div{flex:1;min-width:0;border-bottom:.5px solid #e2e2e2;padding-bottom:10px}
.sm-row b{display:flex;justify-content:space-between;font-size:16px}
.sm-row b em{font-style:normal;font-weight:400;color:#8a8a8e;font-size:14px}
.sm-row div span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:14px;color:#8a8a8e}
.sm-nav{flex:none;display:grid;grid-template-columns:90px 1fr 90px;align-items:flex-end;padding:var(--top) 8px 6px;background:#f8f8f8;border-bottom:.5px solid #d0d0d0}
.sm-nav button{display:flex;align-items:center;gap:4px;color:#007aff;font-size:17px;padding-bottom:6px}
.sm-who{display:flex;flex-direction:column;align-items:center;font-size:11px;gap:2px}
.sm-who i{width:40px;height:40px;font-size:17px}
.sm-body{background:#fff;padding:14px 12px;display:flex;flex-direction:column;gap:6px}
.sb{display:flex}.sb.me{justify-content:flex-end}
.sb span{max-width:76%;padding:8px 13px;border-radius:18px;font-size:16.5px;line-height:1.35;background:#e9e9eb;white-space:pre-wrap;word-break:break-word}
.sb.me span{background:#34c759;color:#fff}
.sm-in{flex:none;padding:8px 12px calc(var(--bot) + 6px);background:#fff}
.sm-in span{display:block;border:1px solid #d8d8dc;border-radius:18px;padding:7px 14px;color:#b0b0b5;font-size:16px}

/* ===== 编辑器（页面右侧面板）===== */
#editor{width:430px;max-width:100%;height:100%;overflow:auto;background:#fff;color:#1d2430;border-radius:14px 14px 0 0;padding:14px 16px 40px;font-size:14px;line-height:1.5;user-select:text;-webkit-user-select:text}
#editor[hidden]{display:none}
#editor *{font-family:inherit}
.ed-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;position:sticky;top:-14px;background:#fff;padding:14px 0 8px;z-index:3}
.ed-tabs button{padding:4px 11px;border-radius:999px;border:1px solid #dfe3e8;font-size:13px;color:#1d2430}
.ed-tabs button.on{background:#1d2430;color:#fff;border-color:#1d2430}
.ed-list{display:flex;flex-direction:column;gap:4px;max-height:150px;overflow:auto;margin-bottom:8px}
.ed-list button{flex:none;text-align:left;padding:6px 10px;border-radius:8px;border:1px solid #dfe3e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1d2430}
.ed-list button.on{border-color:#1d2430;background:#eef1f5}
.ed-lb{display:block;margin:12px 0 4px;font-size:12.5px;color:#6b7683}
#editor input[type=text],#editor input[type=number],#editor input[type=date],#editor input[type=time],#editor select,#editor textarea{width:100%;border:1px solid #dfe3e8;border-radius:8px;padding:7px 10px;font-size:14px;color:#1d2430;background:#fff}
#editor textarea{min-height:76px;resize:vertical;line-height:1.55}
#editor input[type=range]{width:100%}
.ed-btn{display:inline-block;margin:10px 8px 0 0;padding:6px 12px;border-radius:8px;border:1px solid #dfe3e8;background:#fff;color:#1d2430;font-size:13px}
.ed-btn.pri{background:#1d2430;color:#fff;border-color:#1d2430}
.ed-btn.danger{color:#c4453a}
.ed-hint{color:#6b7683;font-size:12.5px;margin:6px 0}
.ed-img{display:flex;align-items:center;gap:10px}
.ed-img img{width:56px;height:56px;border-radius:8px;object-fit:cover;background:#eee}
.ed-imgs{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ed-imgs .th{position:relative}
.ed-imgs .th img{width:64px;height:64px;border-radius:8px;object-fit:cover;display:block}
.ed-imgs .th button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#c4453a;color:#fff;font-size:13px;line-height:20px}
.ed-card{border:1px solid #dfe3e8;border-radius:10px;padding:8px 10px;margin:8px 0;background:#fafbfc}
.ed-msg{display:grid;grid-template-columns:104px 1fr auto;gap:6px;align-items:start;padding:6px 0;border-bottom:1px dashed #e6e9ed}
.ed-msg select{padding:4px 6px}
.ed-msg .ops{display:flex;flex-direction:column;gap:2px}
.ed-msg .ops button{font-size:12px;padding:0 6px;border:1px solid #dfe3e8;border-radius:5px;color:#1d2430;background:#fff}
.ed-msg textarea{min-height:44px}
.ed-sub{font-weight:600;margin:16px 0 4px;font-size:14px}

/* ===== 线索簿弹层 ===== */
#sheet{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:16px}
#sheet[hidden]{display:none}
.sh-card{width:420px;max-width:100%;max-height:80vh;display:flex;flex-direction:column;background:#fff;color:#1d2430;border-radius:16px;overflow:hidden}
.sh-h{display:flex;justify-content:space-between;padding:16px 18px 8px;font-size:17px}
.sh-b{padding:4px 18px;overflow:auto}
.sh-i{padding:10px 0;border-bottom:1px solid #eceff2}
.sh-i b{display:block;font-weight:600}
.sh-i em{display:block;color:#6a55e0;font-size:13px;margin-top:2px}
.sh-n{color:#6b7683;padding:18px 0}
.sh-f{display:flex;justify-content:space-between;padding:12px 18px 16px}
.sh-f button{padding:7px 14px;border-radius:9px;border:1px solid #dfe3e8;color:#1d2430}

.wx-tab svg .nd{fill:none;stroke:currentColor;stroke-width:1.5}
.wx-tab button.on svg .nd{fill:#f7f7f7;stroke:none}

/* 微博：仍由全局 CSS 提供样式 */
.wb-app{height:100%;display:flex;flex-direction:column;background:#f3f4f6;color:#222;padding-top:var(--top);box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.wb-header{height:48px;background:#fff;flex:none;display:flex;justify-content:space-between;align-items:center;padding:0 15px;border-bottom:1px solid #eee}.wb-header b{font-size:18px}.wb-header button{font-size:25px;width:35px}.wb-tabs{height:44px;background:#fff;display:flex;justify-content:space-around;flex:none;border-bottom:1px solid #eee}.wb-tabs button{font-size:15px;padding:0 12px;position:relative}.wb-tabs button.on{font-weight:700}.wb-tabs button.on:after{content:"";position:absolute;bottom:0;left:27%;width:46%;height:3px;border-radius:3px;background:#ff8200}.wb-scroll{flex:1;min-height:0;overflow:auto}.wb-card{background:#fff;margin-bottom:9px;padding:15px 14px 0}.wb-author{display:flex;gap:10px;align-items:center}.wb-author>div{flex:1;min-width:0}.wb-author b{display:block;font-size:14px}.wb-v{color:#ff8200}.wb-author small{display:block;color:#999;font-size:11px;margin-top:3px}.wb-author button{font-size:20px;color:#aaa}.wb-avatar{width:38px;height:38px;border-radius:50%;background:#f9b332;display:grid;place-items:center;font-size:12px;color:white}.wb-text{font-size:15px;line-height:1.65;white-space:pre-wrap;padding:13px 0 18px}.wb-actions{display:flex;border-top:1px solid #f3f3f3;height:43px;justify-content:space-around;align-items:center}.wb-actions button{font-size:19px;color:#999;display:flex;align-items:center;gap:6px}.wb-actions button span{font-size:12px}.wb-actions button.liked{color:#ff8200}.wb-bottom{display:flex;justify-content:space-around;background:#fff;border-top:1px solid #eee;padding:8px 0 calc(var(--bot) + 6px);flex:none}.wb-bottom button{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:23px;color:#777}.wb-bottom button span{font-size:10px}.wb-bottom button.on{color:#ff8200}.wb-comments{border-top:8px solid #f5f5f5;padding:15px 0}.wb-comments h3{font-size:15px;margin:0 0 12px}.wb-comment{border-bottom:1px solid #f4f4f4;padding:10px 0}.wb-comment b{font-size:13px;color:#666}.wb-comment p{font-size:14px;margin:5px 0}.wb-input{display:flex;align-items:center;gap:9px;background:#fff;padding:9px 14px calc(var(--bot) + 10px)}.wb-input input{flex:1;min-width:0;border:1px solid #eee;border-radius:20px;background:#f7f7f7;padding:10px 14px;font-size:14px}.wb-input button{color:#ff8200;font-size:14px}.wb-trends{background:#fff;padding:18px 15px}.wb-trends h2{font-size:20px;margin:0 0 18px}.wb-trends div{padding:14px 0;border-bottom:1px solid #eee;font-size:14px}.wb-trends div b{color:#ff8200;margin-right:14px}.wb-trends div span{float:right;color:#ff8200;font-size:11px}

/* V4.4：可编辑输入框及微博独立头像 */
.wp-wx-compose{display:flex;align-items:center;gap:7px;padding:8px 9px;box-sizing:border-box}
.wp-wx-compose input{flex:1;min-width:0;background:#fff;border:1px solid #e5e5e5;border-radius:7px;padding:9px 8px;font-size:14px;outline:none;color:#222}
.wp-wx-compose button{flex:none;background:#07c160;color:white;border:0;border-radius:6px;padding:8px 9px;font-size:12px}
.wp-wx-compose button[data-a="tray"]{background:#e9e9e9;color:#555}
.wp-sms-compose{display:flex;align-items:center;gap:8px;padding:10px 13px 24px;background:#fff}
.wp-sms-compose input{min-width:0;flex:1;border:1px solid #d5d5d5;border-radius:22px;padding:10px 14px;font-size:14px;outline:none}
.wp-sms-compose button{border:0;border-radius:50%;background:#34c759;color:white;width:30px;height:30px;font-size:22px;font-weight:700}
.wb-avatar{display:inline-flex;align-items:center;justify-content:center;position:relative;width:38px;height:38px;flex:none;overflow:hidden;border-radius:50%;background:#f1e4d7;color:#777;font-size:15px}
.wb-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wp-compose-overlay{position:absolute;inset:0;background:#fff;z-index:12;display:flex;flex-direction:column}
.wp-compose-top{display:flex;align-items:center;justify-content:space-between;padding:15px;border-bottom:1px solid #eee}
.wp-compose-top button{border:0;background:transparent;color:#f60;font-size:14px}
.wp-compose-overlay textarea{flex:1;border:0;padding:18px;resize:none;outline:none;font-size:16px;line-height:1.6}

/* V4.5 微博个人主页、音乐 App */
.wb-v45 .wb-scroll{background:#f5f6f8}.wb-v45 .wb-header{height:48px}.wb-v45 .wb-header button{display:grid;place-items:center}
.wb-v45 .wb-post-body{display:block;width:100%;padding:13px 0 18px;white-space:pre-wrap;text-align:left;font-size:15px;line-height:1.65;color:#222}
.wb-v45 .wb-author>button:first-child{padding:0;flex:none}.wb-v45 .wb-author>div:nth-child(2){flex:1}
.wb-v45 .wb-bottom{padding:8px 0 calc(var(--bot) + 4px)}.wb-v45 .wb-bottom button{flex:1;font-size:20px;gap:3px}.wb-v45 .wb-bottom i{font-style:normal}.wb-v45 .wb-bottom button span{font-size:11px}
.wb-me-page{padding:14px 10px 22px;background:#f6f6f8;color:#222}.wb-me-top{display:flex;justify-content:flex-end;gap:22px;height:36px;padding:3px 10px}.wb-me-top button{font-size:22px;color:#555}
.wb-me-heading{display:flex;justify-content:space-between;align-items:center;padding:7px 10px 10px}.wb-me-heading>div{display:flex;gap:11px;align-items:center;min-width:0}.wb-me-identity{display:flex;flex-direction:column;gap:7px;min-width:0}.wb-me-identity strong{font-size:23px;white-space:nowrap}.wb-me-identity>span{font-size:11px;color:#969696;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:205px}.wb-crown{font-size:12px;color:#d49b3b;background:#fff7e6;padding:6px 8px;border-radius:16px;white-space:nowrap}
.wb-me-stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;padding:22px 4px 18px}.wb-me-stats button{display:flex;flex-direction:column;gap:5px}.wb-me-stats b{font-size:20px;font-weight:600}.wb-me-stats span{font-size:12px;color:#999}
.wb-me-grid{background:#fff;border-radius:13px;display:grid;grid-template-columns:repeat(4,1fr);row-gap:20px;padding:23px 7px 20px;margin-bottom:10px}.wb-me-grid button,.wb-me-mini button{min-width:0;display:flex;flex-direction:column;align-items:center;gap:10px}.wb-me-grid i,.wb-me-mini i{display:grid;place-items:center;font-size:26px;font-style:normal;color:#555;height:30px}.wb-me-grid span,.wb-me-mini span{font-size:12px;white-space:nowrap}
.wb-me-section{background:#fff;border-radius:13px;margin:10px 0;padding:17px 12px}.wb-me-section>b{font-size:16px}.wb-me-section>small{float:right;color:#aaa;font-size:11px}.wb-me-mini{display:grid;grid-template-columns:repeat(4,1fr);padding-top:27px}.wb-me-posts-head{display:flex;justify-content:space-between;align-items:center}.wb-me-posts-head button{color:#999;font-size:12px}.wb-post-filters{display:flex;gap:26px;margin-top:18px;border-bottom:1px solid #f2f2f2}.wb-post-filters button{padding:8px 3px;font-size:13px;color:#777}.wb-post-filters button.on{color:#ff8200;font-weight:700;border-bottom:2px solid #ff8200}.wb-my-posts .wb-card{padding:15px 0 0}.wb-my-posts .wb-card:last-child{margin-bottom:0}.wb-empty-small{text-align:center;color:#999;padding:40px 15px;font-size:13px}.wb-my-all-title{padding:16px;background:#fff;font-size:17px;font-weight:700}.wb-avatar{width:var(--sz,38px);height:var(--sz,38px);background:#f1e4d7;color:#777}.wb-avatar>span{position:relative;z-index:0}.wb-avatar img{z-index:1}

/* ChatGPT 和 Apple Music 的新版组件样式已移至各自 JS 文件内。 */
