/* ── 查手机 主屏 widgets (js/apps/phone-peek-home.js) ──
   Every widget fills the grid cells it was placed in. Colours come from the voice palette (--pk-*) and the 痕迹色
   (--pk-you): text is currentColor-based so the same widget reads on glass, on a solid block, on paper or on the bare wall. */
#peek-app-root .pkw{position:relative;min-width:0;min-height:0;border-radius:22px;padding:14px 15px;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;
  color:var(--pk-t1);cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;transition:transform .3s cubic-bezier(.3,1.2,.5,1)}
#peek-app-root .pkw:active{transform:scale(.97);transition-duration:.08s}
#peek-app-root .pkw-own{min-width:0;min-height:0}
.pkw .mt-auto{margin-top:auto}
.pkw .you,.pkw1 .you{color:var(--pk-you)}
.pkw-k{font-size:12px;font-weight:600;opacity:.62;letter-spacing:.02em}
.pkw-big{font-size:44px;line-height:1;font-weight:400}
.pkw-big small{font-family:var(--font-body);font-size:13px;margin-left:4px;opacity:.62}
.pkw-t{font-size:15px;font-weight:600;margin-top:8px;line-height:1.3}
.pkw-s{font-size:12px;opacity:.68;margin-top:4px;line-height:1.45}
.pkw-s.you,.pkw-s .you{opacity:1}
.pkw-empty{margin-top:auto;font-size:13px;opacity:.62;line-height:1.5}
.pkw-center{text-align:center}
.pkw-mid{font-size:22px;font-weight:300}
.pkw-hd2{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pkw-head{display:flex;align-items:baseline;gap:10px}.pkw-head b{font-size:16px}.pkw-head span{font-size:12px;opacity:.62}
.pkw-pill{margin-left:auto;font-size:12px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,currentColor 10%,transparent);opacity:.8;white-space:nowrap}
.pkw-tag{font-size:11px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,currentColor 10%,transparent);opacity:.8}
.pkw-tag.you{background:color-mix(in srgb,var(--pk-you) 20%,transparent);opacity:1}
.pkw-prog{height:4px;border-radius:4px;background:color-mix(in srgb,currentColor 14%,transparent);margin-top:9px;position:relative;overflow:hidden}
.pkw-prog i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:currentColor}
.pkw-prog.you i{background:var(--pk-you)}

/* materials (picked per widget by the voice's weights) */
#peek-app-root .pkw.m-line{background:none;border:1.5px solid color-mix(in srgb,var(--pk-t1) 30%,transparent)}
#peek-app-root .pkw.m-solid,#peek-app-root .pkw1-ic.m-solid{background:color-mix(in srgb,var(--pk-mid) 80%,var(--pk-deep));color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.14)}
#peek-app-root:not([data-mode="dark"]) .pkw.m-solid,#peek-app-root:not([data-mode="dark"]) .pkw1-ic.m-solid{background:color-mix(in srgb,var(--pk-mid) 78%,var(--pk-pale))}
#peek-app-root .pkw.m-solid .you{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
#peek-app-root .pkw.m-clear{background:none;text-shadow:0 1px 10px rgba(0,0,0,.28)}
/* day: the wall runs from the deep palette colour (top) to pale, so a bare widget with dark text is unreadable at the top -
   line and clear get a light frost in day mode (line keeps its outline, clear stays the faintest) */
#peek-app-root:not([data-mode="dark"]) .pkw.m-line{background:rgba(255,255,255,.42);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-color:rgba(255,255,255,.7)}
#peek-app-root:not([data-mode="dark"]) .pkw.m-clear{background:rgba(255,255,255,.26);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-shadow:none}
#peek-app-root .pkw.m-paper{--pkw-paper:color-mix(in srgb,var(--pk-mid) 38%,var(--pk-deep));background:var(--pkw-paper);color:#f1eef0;border:1px solid rgba(255,255,255,.06);box-shadow:0 10px 22px rgba(0,0,0,.18)}
#peek-app-root:not([data-mode="dark"]) .pkw.m-paper{--pkw-paper:color-mix(in srgb,var(--pk-acc-d) 22%,#fff);color:color-mix(in srgb,var(--pk-deep) 92%,#000);border-color:rgba(0,0,0,.05)}

/* ── 1×1: an icon-sized widget with a label, like an app ── */
#peek-app-root .pkw1{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;cursor:pointer;color:inherit;font-size:12px}
.pk-wall .pkw1{color:#1a2533}
#peek-app-root[data-mode="dark"] .pk-wall .pkw1{color:#eef2f7}
.pkw1-ic{position:relative;width:60px;height:60px;border-radius:17px;display:grid;place-items:center;overflow:hidden;transition:transform .3s cubic-bezier(.3,1.2,.5,1)}
.pkw1:active .pkw1-ic{transform:scale(.9);transition-duration:.08s}
.pkw1-ic .pkw-ring{position:absolute;inset:0;width:100%;height:100%}
.pkw1-stack{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1}
.pkw1-stack .pk-num{font-size:20px}
.pkw1-stack .pkw1-sm{font-size:15px}
.pkw1-stack i{font-style:normal;font-size:9.5px;opacity:.7}
.pkw1-stack i.you{opacity:1}
.pkw-dot{position:absolute;top:7px;right:7px;width:9px;height:9px;border-radius:50%;background:var(--pk-you);box-shadow:0 0 0 2px color-mix(in srgb,var(--pk-deep) 60%,transparent)}

/* rings */
.pkw-ring{transform:rotate(-90deg)}
.pkw-ring circle{fill:none;stroke-linecap:round}
.pkw-ring .bg{stroke:color-mix(in srgb,currentColor 13%,transparent)}
.pkw-ring .fg{stroke:currentColor}
.pkw-ring.r1 .fg{stroke:var(--pk-you)}.pkw-ring.r2 .fg{stroke:var(--pk-acc)}
.pkw-rings{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto}
.pkw-rings-svg{position:relative;width:84px;height:84px}
.pkw-rings-svg .pkw-ring{position:absolute;inset:0;width:84px;height:84px}
.pkw-rings-v{font-size:11.5px;opacity:.75;text-align:right;line-height:1.5}
.pkw-rings-v b{display:block;font-size:20px;font-weight:300;opacity:1}

/* 日程 */
.pkw-list{display:flex;flex-direction:column;gap:7px;margin-top:10px;min-width:0}
.pkw-list.mt-auto{margin-top:auto}
.pkw-li{display:flex;gap:10px;align-items:baseline;font-size:13.5px;min-width:0}
.pkw-li span:first-child.pk-num{font-size:12.5px;opacity:.6;flex-shrink:0;width:38px}
.pkw-li span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pkw-list.split .pkw-li{justify-content:space-between}
.pkw-li.done{opacity:.45;text-decoration:line-through}
.pkw-live{display:flex;align-items:center;gap:7px;font-size:12px;opacity:.72}
.pkw-live svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.pkw-now{font-size:26px;font-weight:700;line-height:1.15;margin-top:auto;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pkw-next{font-size:12px;margin-top:9px;padding-top:8px;border-top:1px solid color-mix(in srgb,currentColor 14%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pkw-next .pk-num{opacity:.6;margin-right:6px}
#peek-app-root .pkw-4x1{flex-direction:row;align-items:center;gap:12px;padding:0 16px}
.pkw-rail{width:4px;align-self:stretch;margin:20px 0;border-radius:4px;background:var(--pk-acc);flex-shrink:0}
.pkw-rail.you{background:var(--pk-you)}
.pkw-line-t{font-size:24px;font-weight:300}
.pkw-line-main{font-size:15px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pkw-line-r{margin-left:auto;text-align:right;font-size:11.5px;opacity:.7;line-height:1.4;white-space:nowrap}
.pkw-line-r.you{opacity:1}
.pkw-tl{position:relative;display:flex;flex-direction:column;margin-top:10px;flex:1;justify-content:space-around}
.pkw-tl::before{content:'';position:absolute;left:53px;top:10px;bottom:10px;width:1px;background:color-mix(in srgb,currentColor 18%,transparent)}
.pkw-tl-r{display:grid;grid-template-columns:44px 20px 1fr;align-items:center;gap:0 6px}
.pkw-tl-r>.pk-num{font-size:14px;opacity:.62;text-align:right}
.pkw-tl-r>i{width:9px;height:9px;border-radius:50%;justify-self:center;background:color-mix(in srgb,currentColor 55%,transparent);position:relative;z-index:1}
.pkw-tl-r.planned>i{background:none;border:1.5px dashed color-mix(in srgb,currentColor 60%,transparent);box-sizing:border-box}
.pkw-tl-r.ongoing>i{width:11px;height:11px;background:var(--pk-acc);box-shadow:0 0 10px var(--pk-acc)}
.pkw-tl-r.you>i{background:var(--pk-you);border:none}
.pkw-tl-r b{font-size:14px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pkw-tl-r b small{display:block;font-size:11.5px;font-weight:400;opacity:.62;margin-top:2px}
.pkw-tl-r.done b{opacity:.55;font-weight:400}
.pkw-tl-r.you b{color:var(--pk-you)}

/* 在一起 */
#peek-app-root .pkw-tog-tear{padding:0;background:none;box-shadow:0 10px 22px rgba(0,0,0,.18)}
.pkw-tear-hd{height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12.5px;letter-spacing:.2em;color:#fff;position:relative;z-index:2;
  background:color-mix(in srgb,var(--pk-you-d) 38%,var(--pk-deep))}
#peek-app-root:not([data-mode="dark"]) .pkw-tear-hd{background:color-mix(in srgb,var(--pk-you-d) 70%,var(--pk-mid))}
.pkw-tear-hd::after{content:'';position:absolute;left:12px;right:12px;bottom:-4px;height:8px;background:radial-gradient(circle at 4px 4px,rgba(0,0,0,.35) 2.4px,transparent 2.6px) 0 0/14px 8px repeat-x}
.pkw-tear-pgs{position:relative;flex:1}
.pkw-tear-pg{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;transform-origin:50% 0;
  background:color-mix(in srgb,var(--pk-mid) 38%,var(--pk-deep));color:#f1eef0}
#peek-app-root:not([data-mode="dark"]) .pkw-tear-pg{background:color-mix(in srgb,var(--pk-acc-d) 22%,#fff);color:color-mix(in srgb,var(--pk-deep) 92%,#000)}
.pkw-tear-pg b{font-size:58px;line-height:1;font-weight:300}
.pkw-tear-pg span{font-size:12px;margin-top:4px;opacity:.7}
.pkw-tear-pg em{font-style:normal;font-size:11.5px;margin-top:6px;color:var(--pk-you)}
#peek-app-root .pkw-tog-ticket{flex-direction:row;padding:0;border-radius:14px;
  background:color-mix(in srgb,var(--pk-mid) 38%,var(--pk-deep));color:#f1eef0;
  -webkit-mask:radial-gradient(circle 9px at calc(100% - 72px) 0,transparent 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at calc(100% - 72px) 100%,transparent 98%,#000) bottom/100% 51% no-repeat;
  mask:radial-gradient(circle 9px at calc(100% - 72px) 0,transparent 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 9px at calc(100% - 72px) 100%,transparent 98%,#000) bottom/100% 51% no-repeat}
#peek-app-root:not([data-mode="dark"]) .pkw-tog-ticket{background:color-mix(in srgb,var(--pk-acc-d) 22%,#fff);color:color-mix(in srgb,var(--pk-deep) 92%,#000)}
.pkw-tk-a{flex:1;min-width:0;padding:10px 16px;display:flex;flex-direction:column;justify-content:center}
.pkw-tk-a small{font-size:10px;letter-spacing:.18em;opacity:.6}.pkw-tk-a b{font-size:20px;margin-top:1px}.pkw-tk-a span{font-size:11px;opacity:.62;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pkw-tk-s{width:72px;flex-shrink:0;border-left:1.5px dashed color-mix(in srgb,currentColor 30%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--pk-you)}
.pkw-tk-s b{font-size:28px;font-weight:300;line-height:1}.pkw-tk-s small{font-size:9.5px;letter-spacing:.15em;margin-top:3px}
.pkw-hms{font-size:19px;margin-top:6px;letter-spacing:1px;opacity:.7}
.pkw-hms b{color:var(--pk-you);font-weight:inherit;opacity:1}

/* 时钟 */
.pkw-clk{font-size:46px;line-height:.95;letter-spacing:-1px}
.pkw-dials{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;height:100%}
.pkw-dial{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.pkw-dial svg{width:100%;max-width:104px;aspect-ratio:1}
.pkw-dial span{font-size:11.5px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pkw-dial.you span{color:var(--pk-you);opacity:1}
.pkw-dial .face{fill:color-mix(in srgb,currentColor 6%,transparent);stroke:color-mix(in srgb,currentColor 22%,transparent)}
.pkw-dial .tk{stroke:currentColor;opacity:.55;stroke-width:1.4;stroke-linecap:round}
.pkw-dial .h,.pkw-dial .m{stroke:currentColor;stroke-linecap:round}.pkw-dial .h{stroke-width:3.2}.pkw-dial .m{stroke-width:2}
.pkw-dial .s{stroke:var(--pk-acc);stroke-width:1}.pkw-dial.you .s{stroke:var(--pk-you)}
.pkw-dial .hub{fill:currentColor}
.pkw-diff{font-size:11.5px;opacity:.7;text-align:center;line-height:1.5}.pkw-diff b{display:block;font-size:22px;font-weight:300;opacity:1}
#peek-app-root .pkw-clk-flip{background:none;padding:0;justify-content:center}
.pkw-flip{display:flex;align-items:center;justify-content:center;gap:6px;height:100%}
.pkw-fd{width:22%;max-width:62px;aspect-ratio:.62;border-radius:12px;display:grid;place-items:center;position:relative;font-family:var(--pk-clock-font);font-size:clamp(40px,11vw,70px);line-height:1;color:#f6f4f5;
  background:linear-gradient(180deg,color-mix(in srgb,var(--pk-mid) 62%,var(--pk-deep)) 0%,color-mix(in srgb,var(--pk-mid) 42%,var(--pk-deep)) 49.6%,color-mix(in srgb,var(--pk-deep) 88%,#000) 50.4%,color-mix(in srgb,var(--pk-mid) 30%,var(--pk-deep)) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 2px 0 color-mix(in srgb,var(--pk-deep) 80%,#000),0 4px 0 color-mix(in srgb,var(--pk-deep) 65%,#000),0 12px 20px rgba(0,0,0,.3);text-shadow:0 2px 3px rgba(0,0,0,.35)}
.pkw-fd::after{content:'';position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(255,255,255,.12))}
#peek-app-root:not([data-mode="dark"]) .pkw-fd{color:color-mix(in srgb,var(--pk-deep) 92%,#000);text-shadow:0 1px 0 rgba(255,255,255,.8);
  background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--pk-pale) 60%,#fff) 49.6%,color-mix(in srgb,var(--pk-pale) 85%,#d9dce2) 50.4%,color-mix(in srgb,var(--pk-pale) 70%,#fff) 100%);
  box-shadow:inset 0 1px 0 #fff,0 2px 0 color-mix(in srgb,var(--pk-pale) 60%,#c3c7cf),0 4px 0 color-mix(in srgb,var(--pk-pale) 50%,#b3b8c2),0 12px 20px rgba(40,40,60,.16)}
#peek-app-root:not([data-mode="dark"]) .pkw-fd::after{background:linear-gradient(180deg,rgba(0,0,0,.16),rgba(255,255,255,.9))}
.pkw-co{font-size:34px;opacity:.6;font-family:var(--pk-clock-font)}
.pkw-word{font-size:25px;font-weight:700;line-height:1.28;letter-spacing:.04em}
.pkw-word.dim{opacity:.6;font-weight:400}
.pkw-dm{display:flex;align-items:center;justify-content:center;gap:7px;flex:1}
.pkw-dg{display:grid;grid-template-columns:repeat(3,7px);grid-auto-rows:7px;gap:3px}
.pkw-dg i{border-radius:50%;background:color-mix(in srgb,currentColor 7%,transparent)}
.pkw-dg i.on{background:currentColor;box-shadow:0 0 7px color-mix(in srgb,var(--pk-acc) 85%,transparent)}
.pkw-dm-co{display:flex;flex-direction:column;gap:10px}.pkw-dm-co i{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pkwBlink 1s steps(1) infinite}
@keyframes pkwBlink{50%{opacity:.15}}
.pkw-wc{display:flex;flex-direction:column;gap:2px;min-width:0}
.pkw-wc span{font-size:11.5px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pkw-wc b{font-size:24px;font-weight:300;line-height:1}
.pkw-wc.you{text-align:right;align-items:flex-end}.pkw-wc.you span{color:var(--pk-you);opacity:1}
.pkw-wc-mid{flex:1;position:relative;border-top:1.5px dashed color-mix(in srgb,currentColor 28%,transparent);min-width:30px}
.pkw-wc-mid span{position:absolute;left:50%;top:-11px;transform:translateX(-50%);font-size:11px;font-style:normal;padding:2px 8px;border-radius:999px;white-space:nowrap;background:color-mix(in srgb,currentColor 10%,transparent)}

/* 健康 / 睡眠 */
.pkw-beat{width:17px;height:17px;fill:var(--pk-you);animation:pkwBeat 1.03s ease-in-out infinite}
@keyframes pkwBeat{0%,100%{transform:scale(1)}12%{transform:scale(1.22)}24%{transform:scale(1)}36%{transform:scale(1.12)}48%{transform:scale(1)}}
.pkw-bpm{display:flex;align-items:baseline;gap:5px;margin-top:4px}.pkw-bpm b{font-size:40px;font-weight:300;line-height:1}.pkw-bpm small{font-size:11.5px;opacity:.65}
.pkw-spark,.pkw-hr{width:100%;height:46px;overflow:visible}
.pkw-hr{height:70px}
.pkw-spark path,.pkw-hr path{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.pkw-sbar{display:flex;gap:2px;height:20px;border-radius:7px;overflow:hidden;margin-top:12px}
.pkw-sbar i{display:block;background:color-mix(in srgb,currentColor 28%,transparent)}
.pkw-sbar i.s-deep{background:var(--pk-acc)}.pkw-sbar i.s-rem{background:color-mix(in srgb,var(--pk-acc) 60%,transparent)}.pkw-sbar i.s-awake{background:color-mix(in srgb,currentColor 55%,transparent)}
.pkw-ax{display:flex;justify-content:space-between;font-size:11px;opacity:.6;margin-top:5px}
.pkw-sring{position:relative;display:grid;place-items:center;height:100%}
.pkw-sring svg{width:100%;max-width:138px;aspect-ratio:1}
.pkw-sring .bg{fill:none;stroke:color-mix(in srgb,currentColor 12%,transparent);stroke-width:12}
.pkw-sring .fg{fill:none;stroke:var(--pk-acc);stroke-width:12;stroke-linecap:round}
.pkw-sring .a{fill:currentColor}.pkw-sring .a.you{fill:var(--pk-you)}
.pkw-sring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pkw-sring-c b{font-size:24px;font-weight:300}.pkw-sring-c small{font-size:11px;opacity:.65}
.pkw-sl-r{display:flex;align-items:baseline;gap:8px;font-size:12.5px;opacity:.75}
.pkw-sl-r b{font-size:28px;font-weight:300;opacity:1;color:inherit}

/* 待办 (keeps the original .pk-widget-t rows) */
.pkw .pk-widget-t{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;line-height:1.35;margin-top:10px}
.pkw .pk-widget-t.done{opacity:.6}
#peek-app-root .pkw-td-line{padding:0 18px}

/* 月历 */
.pkw-mt{font-size:14px}
.pkw-month{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0;margin-top:auto;text-align:center;font-size:11px}
.pkw-month i{font-style:normal;opacity:.4;font-family:var(--font-body);font-size:9.5px}
.pkw-month b{font-weight:300;width:17px;height:17px;line-height:17px;margin:0 auto;border-radius:50%}
.pkw-month b.t{background:var(--pk-t1);color:var(--pk-pg)}
#peek-app-root:not([data-mode="dark"]) .pkw-month b.t{color:#fff}
.pkw.m-solid .pkw-month b.t,.pkw.m-paper .pkw-month b.t{background:currentColor;color:var(--pk-mid)}
.pkw-month b.you{box-shadow:inset 0 0 0 1.5px var(--pk-you);color:var(--pk-you)}
.pkw-month.compact{margin:0;align-self:center;font-size:11.5px;gap:4px 0}
.pkw-mw{display:grid;grid-template-columns:38% 1fr;gap:10px;height:100%}
.pkw-mw-l{display:flex;flex-direction:column}
.pkw-mw-l b{font-size:58px;font-weight:300;line-height:1;margin-top:auto}
.pkw-mw-l span{font-size:13px;margin-top:4px}.pkw-mw-l small{font-size:11.5px;margin-top:5px}
.pkw-dotm{display:grid;grid-template-columns:repeat(7,1fr);gap:7px 0;justify-items:center}
.pkw-dotm i{width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,currentColor 55%,transparent)}
.pkw-dotm i.f{background:color-mix(in srgb,currentColor 14%,transparent)}
.pkw-dotm i.e{background:none}
.pkw-dotm i.you{background:var(--pk-you)}
.pkw-dotm i.t{background:none;box-shadow:0 0 0 2px currentColor}

/* 闹钟 */
.pkw-al{font-size:40px;font-weight:200;line-height:1;margin-top:10px}
.pkw-al2{display:flex;align-items:baseline;gap:8px;font-size:12.5px;color:var(--pk-you);padding-top:9px;border-top:1px solid color-mix(in srgb,currentColor 14%,transparent)}
.pkw-al2 b{font-size:19px;font-weight:300}
.pkw-als{display:flex;flex-direction:column;justify-content:center;height:100%}
.pkw-ar{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid color-mix(in srgb,currentColor 10%,transparent)}
.pkw-ar:first-child{border-top:0}
.pkw-ar b{font-size:26px;font-weight:200;line-height:1;width:76px;flex-shrink:0}
.pkw-ar span:not(.pkw-tg){font-size:12.5px;opacity:.7;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pkw-ar.off b,.pkw-ar.off span:not(.pkw-tg){opacity:.38}
.pkw-ar.you b,.pkw-ar.you span:not(.pkw-tg){color:var(--pk-you);opacity:1}
.pkw-tg{width:40px;height:24px;border-radius:12px;background:color-mix(in srgb,currentColor 16%,transparent);position:relative;flex-shrink:0;transition:background .3s;cursor:pointer}
.pkw-tg::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.25);transition:transform .35s cubic-bezier(.3,1.3,.5,1)}
.pkw-tg.on{background:var(--pk-acc)}.pkw-ar.you .pkw-tg.on{background:var(--pk-you)}
.pkw-tg.on::after{transform:translateX(16px)}

/* 便签 / 联系人 / 位置 / 照片 */
.pkw-memo{margin:6px 0 0;font-size:14.5px;line-height:1.7}
.pkw-quote{font-size:28px;line-height:1.22;font-weight:700}
.pkw-one{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:100%;text-align:center}
.pkw-one b{font-size:15px;margin-top:3px}
.pkw-av{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-size:22px;font-weight:600;color:#fff;flex-shrink:0;
  background:linear-gradient(150deg,color-mix(in srgb,var(--pk-mid) 70%,#fff),var(--pk-mid))}
.pkw-av.you{background:linear-gradient(150deg,var(--pk-you-d),var(--pk-you-l));box-shadow:0 0 0 2px color-mix(in srgb,var(--pk-deep) 50%,transparent),0 0 0 3.5px var(--pk-you)}
.pkw1-ic .pkw-av{width:42px;height:42px;font-size:16px}
.pkw-ct{display:grid;grid-template-columns:1fr 1fr;gap:10px;height:100%}
.pkw-ct div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:11.5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pkw-ct .pkw-av{width:44px;height:44px;font-size:17px}
.pkw-pin{display:inline-flex;flex-shrink:0}.pkw-pin svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
#peek-app-root .pkw-ph-one{padding:0;border:1px solid var(--pk-edge)}
.pkw-photo{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(160deg,var(--pk-a,#dfe6ef),var(--pk-b,#eef1f5));color:color-mix(in srgb,var(--pk-deep) 70%,transparent)}
.pkw-photo svg,.pkw-photo i{width:32px;height:32px;stroke-width:1.4}
.pkw-cap{position:absolute;left:12px;right:12px;bottom:10px;font-size:11.5px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.pkw-cap b{display:block;font-size:14px}
#peek-app-root .pkw-ph-stack{padding:0;background:none;overflow:visible}
.pkw-pola{position:relative;height:100%}
.pkw-pc{position:absolute;left:14%;top:6%;width:72%;height:86%;background:#fbfbfb;border-radius:4px;padding:7px 7px 24px;box-sizing:border-box;box-shadow:0 8px 18px rgba(0,0,0,.26);transition:transform .5s cubic-bezier(.3,1.2,.5,1)}
.pkw-pc .pkw-photo{position:relative;inset:auto;width:100%;height:100%;border-radius:2px}
.pkw-pc small{position:absolute;left:9px;bottom:6px;font-size:11px;color:#4b4f57;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:85%}
.pkw-pc:nth-child(1){transform:rotate(-8deg) translate(-8px,4px)}.pkw-pc:nth-child(2){transform:rotate(6deg) translate(8px,0)}.pkw-pc:nth-child(3){transform:rotate(-1deg)}

/* folders */
.pk-folder .peek-app-icon{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:5px;padding:10px;box-sizing:border-box;place-items:stretch}
.pk-folder .peek-app-icon i{border-radius:6px;display:grid;place-items:center;background:color-mix(in srgb,currentColor 14%,transparent)}
.pk-folder .peek-app-icon i svg{width:11px;height:11px;stroke-width:2}
.pk-fold{position:absolute;inset:0;z-index:40;display:grid;place-items:center}
.pk-fold-bg{position:absolute;inset:0;background:color-mix(in srgb,var(--pk-deep) 40%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
#peek-app-root:not([data-mode="dark"]) .pk-fold-bg{background:color-mix(in srgb,var(--pk-pale) 45%,transparent)}
.pk-fold-p{position:relative;width:min(300px,82%);border-radius:32px;padding:22px 16px 24px;box-sizing:border-box;color:var(--pk-t1)}
.pk-fold-p h3{margin:0 0 18px;text-align:center;font-size:19px;font-weight:700;letter-spacing:.24em}
.pk-fold-g{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 4px}
.pk-fold-g .peek-app{color:var(--pk-t1)}

/* 选人页: 换一台 */
.peek-picker-item{position:relative;display:flex;flex-direction:column}
.peek-picker-roll{align-self:center;display:flex;align-items:center;gap:5px;height:30px;margin-top:8px;padding:0 12px;border-radius:15px;border:1px solid var(--pk-edge);
  background:var(--pk-gl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--pk-t2);font:inherit;font-size:12px;cursor:pointer}
.peek-picker-roll svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

@media (prefers-reduced-motion:reduce){.pkw-beat,.pkw-dm-co i{animation:none}}

/* ── generated grid: rows are a real phone's 88px (the preview's size; a tall window leaves room at the bottom instead of
   stretching the widgets), and shrink so 6 rows always fit above the dock on short windows; icons shrink with them ── */
#peek-app-root .pk-pager{container-type:size}
#peek-app-root .peek-app-grid.pk-gen{--pkg-gap:16px;grid-template-rows:repeat(6,min(88px,calc((100cqh - 5 * var(--pkg-gap)) / 6)));align-content:start;height:100%;min-height:0;row-gap:var(--pkg-gap);
  --pkg-ic:min(60px,calc((100cqh - 5 * var(--pkg-gap)) / 6 - 22px))}
@media(max-height:740px){#peek-app-root .peek-app-grid.pk-gen{--pkg-gap:8px}}
#peek-app-root .pk-gen .peek-app-icon,#peek-app-root .pk-gen .pkw1-ic{width:var(--pkg-ic);height:var(--pkg-ic);border-radius:calc(var(--pkg-ic) * .28)}
#peek-app-root .pk-gen .peek-app,#peek-app-root .pk-gen .pkw1{min-height:0;overflow:hidden}
#peek-app-root .pk-gen .pkw-own{overflow:hidden}
