/* ── Wallpaper text colour + previews (js/theme-engine.js applyWallpapers, js/apps/theme.js) ──
   data-wall-tone="light|dark" is set on a surface (#v-home, #lockscreen, a theme-app preview) by 文字颜色:
   浅色 / 深色, or 自动 from the picture as shown under that surface's text. No attribute = the theme's own ink. */
[data-wall-tone="light"]{--wall-ink:#FFFFFF;--wall-ink2:rgba(255,255,255,.88);--wall-shadow:0 1px 3px rgba(0,0,0,.42)}
[data-wall-tone="dark"]{--wall-ink:#1D232B;--wall-ink2:rgba(29,35,43,.8);--wall-shadow:0 1px 3px rgba(255,255,255,.45)}

#v-home[data-wall-tone] .phone-status,#v-home[data-wall-tone] .home-date,#v-home[data-wall-tone] .desk-item.desk-app .app-btn,#lockscreen[data-wall-tone] .lock-date,#lockscreen[data-wall-tone] .lock-empty,#lockscreen[data-wall-tone] .lock-unlock-btn{color:var(--wall-ink2);text-shadow:var(--wall-shadow)}
#v-home[data-wall-tone] .desk-dots i:not(.active){opacity:.45}
#v-home[data-wall-tone] .desk-dots i.active{opacity:1}

/* ── Theme app previews: [data-wp-preview] > .wp-layer (painted like the real layer) + a mock of that surface's text ── */
.wp-preview{position:relative;width:min(100%,200px,21vh);width:min(100%,200px,21dvh);margin:0 auto;aspect-ratio:390/844;border-radius:22px;overflow:hidden;background:var(--bg);box-shadow:var(--shadow-md);color:var(--ink);isolation:isolate}
.wp-layer{position:absolute;inset:0;z-index:0;background:var(--bg);background-size:cover;background-position:center;background-repeat:no-repeat}
.wp-layer::after{content:'';position:absolute;inset:0;background:#000;opacity:var(--wallpaper-overlay,0)}
.wp-mock{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.wp-mock-status{align-self:stretch;display:flex;justify-content:space-between;padding:7px 12px 0;font-size:8px;font-weight:600;color:var(--ink2)}
.wp-mock-clock{margin-top:9%;font-family:var(--font-display);font-size:34px;font-weight:300;line-height:1;color:var(--ink)}
.wp-mock-date{margin-top:4px;font-size:8.5px;color:var(--ink2)}
.wp-mock-apps{margin-top:auto;margin-bottom:22%;display:grid;grid-template-columns:repeat(4,1fr);gap:12px 10px;padding:0 12px;width:100%;box-sizing:border-box}
.wp-mock-app{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:7px;color:var(--ink2)}
.wp-mock-app i{width:24px;height:24px;border-radius:8px;background:var(--bg);box-shadow:var(--shadow)}
.wp-mock.lock .wp-mock-date{margin-top:18%;font-size:8.5px}
.wp-mock.lock .wp-mock-clock{margin-top:3px;font-size:40px}
.wp-mock-notif{margin-top:14%;width:82%;padding:7px 9px;border-radius:10px;background:color-mix(in srgb,var(--surface) 86%,transparent);border:1px solid var(--line-soft);font-size:8px;color:var(--ink);text-align:left}
.wp-mock-hint{margin-top:auto;margin-bottom:9%;font-size:8px;color:var(--ink2)}
.wp-mock-hint::before{content:'';display:block;width:22px;height:3px;margin:0 auto 5px;border-radius:2px;background:currentColor;opacity:.45}
.wp-preview[data-wall-tone] .wp-mock-clock{color:var(--wall-ink);text-shadow:var(--wall-shadow)}
.wp-preview[data-wall-tone] .wp-mock-status,.wp-preview[data-wall-tone] .wp-mock-date,.wp-preview[data-wall-tone] .wp-mock-app,.wp-preview[data-wall-tone] .wp-mock-hint{color:var(--wall-ink2);text-shadow:var(--wall-shadow)}
.wp-note{margin:10px 2px 0;font-size:12.5px;line-height:1.5;color:var(--ink2)}
.wp-note button{margin-left:6px}

/* ── 主题默认背景（壁纸选「主题默认」时；theme-engine paintWallpaperLayer 设 data-wp-default）──
   全部用主题变量画，换主题 / 自定义颜色自动跟着变；data-wp-dark = 当前是深色模式，同样的构图压暗。 */
:is(.wp-layer,.home-wallpaper)[data-wp-default="soft"]{background-image:linear-gradient(172deg,color-mix(in srgb,var(--pri) 38%,var(--bg)) 0%,var(--pri-pale) 46%,color-mix(in srgb,var(--bg) 70%,#fff) 100%)}
:is(.wp-layer,.home-wallpaper)[data-wp-default="halo"]{background-image:radial-gradient(60% 38% at 18% 12%,color-mix(in srgb,var(--icon-accent,#F7D27A) 42%,transparent),transparent 70%),radial-gradient(55% 40% at 92% 38%,color-mix(in srgb,var(--pri) 42%,transparent),transparent 72%),radial-gradient(70% 45% at 25% 92%,color-mix(in srgb,var(--pri) 30%,var(--pri-pale)),transparent 75%),linear-gradient(180deg,var(--pri-pale),var(--bg))}
:is(.wp-layer,.home-wallpaper)[data-wp-default="grain"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(90% 55% at 50% 0%,rgb(255 255 255/55%),transparent 70%),linear-gradient(180deg,color-mix(in srgb,var(--pri-pale) 85%,#fff),color-mix(in srgb,var(--pri) 22%,var(--bg)));background-size:220px 220px,cover,cover!important;background-repeat:repeat,no-repeat,no-repeat!important}
:is(.wp-layer,.home-wallpaper)[data-wp-default="dawn"]{background-image:radial-gradient(120% 50% at 50% 108%,color-mix(in srgb,var(--icon-accent,#F7D27A) 32%,transparent),transparent 70%),linear-gradient(180deg,color-mix(in srgb,var(--pri) 55%,var(--bg)) 0%,color-mix(in srgb,var(--pri) 22%,var(--pri-pale)) 45%,color-mix(in srgb,var(--bg) 60%,#fff) 100%)}
:is(.wp-layer,.home-wallpaper)[data-wp-dark][data-wp-default="soft"]{background-image:linear-gradient(172deg,color-mix(in srgb,var(--pri) 30%,var(--bg)) 0%,color-mix(in srgb,var(--pri-pale) 70%,var(--bg)) 50%,var(--bg) 100%)}
:is(.wp-layer,.home-wallpaper)[data-wp-dark][data-wp-default="halo"]{background-image:radial-gradient(60% 38% at 18% 12%,color-mix(in srgb,var(--icon-accent,#F7D27A) 18%,transparent),transparent 70%),radial-gradient(55% 40% at 92% 38%,color-mix(in srgb,var(--pri) 30%,transparent),transparent 72%),radial-gradient(70% 45% at 25% 92%,color-mix(in srgb,var(--pri) 22%,transparent),transparent 75%)}
:is(.wp-layer,.home-wallpaper)[data-wp-dark][data-wp-default="grain"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(90% 55% at 50% 0%,color-mix(in srgb,var(--pri) 22%,transparent),transparent 70%)}
:is(.wp-layer,.home-wallpaper)[data-wp-dark][data-wp-default="dawn"]{background-image:radial-gradient(120% 50% at 50% 108%,color-mix(in srgb,var(--icon-accent,#F7D27A) 14%,transparent),transparent 70%),linear-gradient(180deg,color-mix(in srgb,var(--pri) 26%,var(--bg)) 0%,var(--bg) 60%)}
