/* ══════════════════════════════════════════════════════════
   dash.css — 首页仪表盘（配合 dash.js）
   只管外观；一屏布局的高度分配沿用 app.css / ios-app.css 里调好的规则
   ══════════════════════════════════════════════════════════ */

/* ── 通用：卡片标题 / 小按钮 ─────────────────────────── */
#dashboard-root .dz-ttl{display:inline-flex;align-items:center;gap:8px;min-width:0}
#dashboard-root .dz-ttl svg.ico{width:17px;height:17px}
#dashboard-root .dz-ttl em{font-style:normal;font-size:.66rem;letter-spacing:0;font-weight:700;min-width:20px;padding:1px 7px;border-radius:999px;
  background:var(--tk-bg-3);color:var(--tk-ink-3);text-align:center}
#dashboard-root .dz-ttl em:empty{display:none}
.dz-mini{width:28px;height:28px;border-radius:9px;border:0;cursor:pointer;display:inline-grid;place-items:center;flex:none;
  background:var(--tk-bg-2);box-shadow:inset 0 0 0 1px var(--tk-line);color:var(--tk-ink-2);
  transition:background .15s,color .15s,transform .12s}
.dz-mini svg.ico{width:15px;height:15px}
.dz-mini:hover{background:rgba(247,168,200,.14);color:var(--tk-petal)}
.dz-pomo-stat[hidden],.dz-moon-badge[hidden],.dz-quote-by[hidden]{display:none!important}
/* 浅色主题下原来的 #ffb7c5 标题在浅粉卡片上几乎看不见 */
body.theme-light #dashboard-root .card-title,body.theme-light #dashboard-root .wisdom-label{color:#b8325f}
.dz-mini:active{transform:scale(.9)}
.dz-mini:focus-visible,.dz-round:focus-visible,.dz-adj:focus-visible,.dz-sw-btn:focus-visible,.dz-tz:focus-visible,.dz-life-add:focus-visible{outline:2px solid var(--tk-petal);outline-offset:2px}
.dz-mini.wide{width:auto;height:30px;padding:0 12px;gap:6px;display:inline-flex;align-items:center;font:inherit;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none}
#dashboard-root .flip-hint,#dashboard-root .life-set-btn{display:inline-flex;align-items:center;gap:5px;letter-spacing:.5px;text-transform:none}
#dashboard-root .flip-hint svg.ico,#dashboard-root .life-set-btn svg.ico{width:14px;height:14px}
#dashboard-root .life-set-btn.set{background:rgba(253,164,175,.12);border-color:rgba(253,164,175,.35);color:#fda4af}

/* ══════════ 主时钟卡 ══════════ */
#dashboard-root .main-clock-card.dz-clock::after{
  background:radial-gradient(660px 300px at 50% -20%,var(--dz-glow,rgba(255,107,157,.16)),transparent 62%)}
.dz-clock{--dz-glow:rgba(255,107,157,.16)}
.dz-clock[data-sky="dawn"]{--dz-glow:rgba(255,150,180,.22)}
.dz-clock[data-sky="day"]{--dz-glow:rgba(120,190,255,.17)}
.dz-clock[data-sky="dusk"]{--dz-glow:rgba(255,140,100,.21)}
.dz-clock[data-sky="night"]{--dz-glow:rgba(150,120,255,.18)}

.dz-clock .dz-clock-head{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;margin-bottom:4px}
.dz-clock .dz-city{display:inline-flex;align-items:center;gap:.36em;letter-spacing:2px;line-height:1.15}
.dz-clock .dz-city svg.ico{width:.86em;height:.86em;color:var(--pink-sakura)}
.dz-clock .dz-city em{font-style:normal;font-weight:500;font-size:.5em;letter-spacing:1px;color:var(--tk-ink-3);align-self:flex-end;padding:0 0 .3em .15em}
.dz-clock .dz-city em:empty{display:none}
.dz-clock .gmt-badge{font-family:var(--tk-num);font-variant-numeric:tabular-nums;letter-spacing:1px;font-weight:600}

/* 主时钟翻牌沿用原来的数字样式（app.css 的 .flap-clock .fdig），这里只加切换城市时的过渡 */
.dz-clock.dz-swap .dz-flap,.dz-clock.dz-swap .dz-city{animation:dzSwap .55s var(--tk-spring)}
@keyframes dzSwap{from{opacity:.25;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}

/* 日期 + 农历 */
.dz-clock .dz-date{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px}
.dz-lunar{display:inline-flex;align-items:center;gap:8px;font-size:.84em;color:var(--tk-ink-3)}
.dz-lunar:empty{display:none}
.dz-tag{font-family:var(--font-body);font-size:.7rem;letter-spacing:1px;padding:2px 9px;border-radius:999px;line-height:1.5;
  background:rgba(245,197,99,.12);color:var(--tk-gold);box-shadow:inset 0 0 0 1px rgba(245,197,99,.3)}
.dz-tag.fest{background:rgba(247,168,200,.14);color:var(--tk-petal);box-shadow:inset 0 0 0 1px rgba(247,168,200,.34)}

/* 今日时间轴 */
.dz-day{width:100%;max-width:560px;margin:.35rem auto .85rem}
.dz-day-track{position:relative;height:6px;border-radius:6px;background:linear-gradient(90deg,#2b2356,#8ccfff 50%,#2b2356);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.dz-day-dim{position:absolute;top:0;bottom:0;right:0;left:0;border-radius:0 6px 6px 0;background:rgba(14,9,26,.64);transition:left 1s linear}
.dz-day-knob{position:absolute;top:50%;left:0;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 36% 30%,#fff 0%,#ffeab0 55%,#ffc463 100%);
  box-shadow:0 0 0 3px rgba(255,214,120,.16),0 0 18px rgba(255,196,90,.7);transition:left 1s linear}
.dz-day-knob svg.ico{width:13px;height:13px;color:#9a5208}
.dz-day-knob[data-k="moon"]{background:radial-gradient(circle at 36% 30%,#fff 0%,#e6e0ff 55%,#b8a6ff 100%);box-shadow:0 0 0 3px rgba(190,170,255,.16),0 0 18px rgba(168,146,255,.66)}
.dz-day-knob[data-k="moon"] svg.ico{color:#4a3990}
.dz-day-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:.72rem;line-height:1;
  color:var(--tk-ink-3);font-variant-numeric:tabular-nums;letter-spacing:.5px}
.dz-day-sun{display:inline-flex;align-items:center;gap:4px;min-width:0;white-space:nowrap}
.dz-day-sun svg.ico{width:15px;height:15px;color:var(--tk-gold)}
.dz-day-pct{color:var(--tk-ink-2);font-weight:650}
body.theme-light .dz-day-dim{background:rgba(255,250,252,.62)}
body.theme-light .dz-day-track{box-shadow:inset 0 0 0 1px rgba(120,60,90,.12)}

/* 徽章行 */
#dashboard-root .dz-clock .sub-row{align-items:center}
#dashboard-root .greeting-badge,#dashboard-root .astro-badge,.dz-moon-badge{display:inline-flex;align-items:center;gap:6px;line-height:1.3}
#dashboard-root .greeting-badge svg.ico,#dashboard-root .astro-badge svg.ico{width:15px;height:15px}
.dz-zod{font-family:"Segoe UI Symbol","Apple Symbols","Noto Sans Symbols",sans-serif;font-variant-emoji:text;font-size:1.05em;line-height:1}
.dz-moon-badge{font-size:.82rem;padding:6px 14px;border-radius:30px;letter-spacing:1px;color:#f6dfa6;
  background:linear-gradient(135deg,rgba(245,197,99,.12),rgba(255,183,197,.08));border:1px solid rgba(245,197,99,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.dz-moon-badge em{font-style:normal;opacity:.6;font-variant-numeric:tabular-nums;letter-spacing:0}
.dz-moon{width:16px;height:16px;flex:none}
.dz-moon-dark{fill:rgba(255,255,255,.1)}
.dz-moon-lit{fill:#fdf0c2}
.dz-moon-rim{fill:none;stroke:rgba(255,236,190,.5);stroke-width:1}
body.theme-light .dz-moon-badge{color:#8a5a06;background:linear-gradient(135deg,rgba(245,197,99,.18),rgba(255,183,197,.12));border-color:rgba(183,121,12,.3)}
body.theme-light .dz-moon-dark{fill:rgba(90,60,20,.14)}
body.theme-light .dz-moon-lit{fill:#f2c94c}
body.theme-light .dz-moon-rim{stroke:rgba(140,90,10,.45)}
@media (min-width:901px) and (max-height:740px){
  .dz-day{margin:.1rem auto .45rem} .dz-day-meta{margin-top:7px;font-size:.66rem}
  .dz-moon-badge{font-size:.66rem;padding:3px 10px}
}

/* ══════════ 全球时区卡 ══════════ */
#matrix-container .dz-tz{position:relative;overflow:hidden;cursor:pointer;gap:4px;padding-bottom:16px;outline:none;isolation:isolate}
#matrix-container .dz-tz::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(130% 95% at 0% 0%,var(--dz-tint,transparent),transparent 62%);transition:opacity .3s}
.dz-tz{--dz-tint:rgba(140,200,255,.08);--dz-sky:#f5c563;--dz-time:#9fd4ff}
.dz-tz[data-sky="dawn"]{--dz-tint:rgba(255,160,195,.12);--dz-sky:#ff9ec0;--dz-time:#ffc0d6}
.dz-tz[data-sky="dusk"]{--dz-tint:rgba(255,150,110,.12);--dz-sky:#ff9a78;--dz-time:#ffbd9e}
.dz-tz[data-sky="night"]{--dz-tint:rgba(140,120,255,.11);--dz-sky:#b9a8ff;--dz-time:#cdbfff}
.dz-tz-top{display:flex;align-items:center;gap:6px;min-width:0}
.dz-tz-sky{display:grid;place-items:center;flex:none}
.dz-tz-sky svg.ico{width:15px;height:15px;color:var(--dz-sky)}
.dz-tz .tz-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dz-tz .tz-del{position:absolute;top:6px;right:6px;z-index:2;width:22px;height:22px;border-radius:7px;border:0;cursor:pointer;display:grid;place-items:center;
  background:rgba(20,14,32,.72);color:var(--tk-ink-2);opacity:0;transform:scale(.8);transition:opacity .15s,transform .15s,background .15s,color .15s}
body.theme-light .dz-tz .tz-del{background:rgba(255,255,255,.85)}
.dz-tz .tz-del svg.ico{width:13px;height:13px}
.dz-tz:hover .tz-del,.dz-tz:focus-within .tz-del{opacity:1;transform:none}
.dz-tz .tz-del:hover{background:rgba(251,113,133,.16);color:var(--tk-red)}
@media (pointer:coarse){.dz-tz .tz-del{opacity:.55;transform:none}}
#matrix-container .dz-tz .tz-time{display:flex;align-items:baseline;margin-top:2px;color:var(--dz-time);font-variant-numeric:tabular-nums;white-space:nowrap}
.dz-tz .dz-s{font-size:.6em;opacity:.55;margin-left:1px}
.dz-tz-meta{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.68rem;line-height:1.2;white-space:nowrap;min-width:0}
#matrix-container .dz-tz .tz-time{overflow:hidden}
/* 列数跟着卡片区实际宽度走：原来 ≥901 视口一律 6 列，窄窗口里城市名、时间都被挤没了 */
#tz-flip .flip-front{container-type:inline-size;container-name:tzfront}
@container tzfront (max-width:760px){ #matrix-container{grid-template-columns:repeat(4,minmax(0,1fr))!important} }
@container tzfront (max-width:540px){ #matrix-container{grid-template-columns:repeat(3,minmax(0,1fr))!important} }
@container tzfront (max-width:400px){ #matrix-container{grid-template-columns:repeat(2,minmax(0,1fr))!important} }
.custom-select-trigger{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dz-tz-meta .tz-offset{font-variant-numeric:tabular-nums}
.dz-tz-rel{color:var(--tk-ink-3)}
.dz-tz-rel[data-d="0"]{opacity:.55}
.dz-tz-rel[data-d="1"]{color:var(--tk-gold)}
.dz-tz-rel[data-d="-1"]{color:var(--tk-sky)}
.dz-tz-line{position:absolute;left:12px;right:12px;bottom:7px;height:3px;border-radius:3px;opacity:.5;transition:opacity .2s}
.dz-tz-line i{position:absolute;top:50%;left:0;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:#fff;box-shadow:0 0 6px rgba(255,255,255,.9)}
.dz-tz:hover .dz-tz-line{opacity:.95}
.dz-tz.leaving{animation:dzOut .18s ease forwards;pointer-events:none}
@keyframes dzOut{to{opacity:0;transform:scale(.92)}}
.dz-tz-empty{display:flex;flex-direction:column;align-items:center;gap:8px}
.dz-tz-empty > svg.ico{width:34px;height:34px;opacity:.35}
.dz-tz-empty p{margin:0}
.dz-tz-empty div{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
body.theme-light .dz-tz{--dz-tint:rgba(60,130,230,.07);--dz-sky:#b7790c;--dz-time:#1d5fd0}
body.theme-light .dz-tz[data-sky="dawn"]{--dz-tint:rgba(220,70,126,.08);--dz-sky:#d9467e;--dz-time:#b52d63}
body.theme-light .dz-tz[data-sky="dusk"]{--dz-tint:rgba(230,110,60,.09);--dz-sky:#d9622b;--dz-time:#b4481b}
body.theme-light .dz-tz[data-sky="night"]{--dz-tint:rgba(110,80,220,.08);--dz-sky:#7453db;--dz-time:#5b3cc4}
body.theme-light .dz-tz-line{opacity:.75}
body.theme-light .dz-tz-line i{box-shadow:0 0 0 1.5px rgba(90,40,70,.35),0 0 6px rgba(255,255,255,.9)}
@media (min-width:901px) and (max-height:740px){
  #matrix-container .dz-tz{padding-bottom:12px;gap:2px} .dz-tz-line{bottom:5px} .dz-tz-meta{font-size:.6rem}
}

/* 左栏高度分配：主时钟保底不裁切；富余高度按 1 : 1.3 分给主时钟和时区区
   （原来全给主时钟，高屏上时钟卡空一大片、时区卡被压扁）。时区区放不下时在卡内自己滚 */
@media (min-width:769px){
  #dashboard-root .left-col > .main-clock-card{flex:1 0 auto}
  #dashboard-root .left-col > #tz-flip{flex:1.3 1 auto;min-height:0;display:flex;flex-direction:column}
  #dashboard-root #tz-flip > .flip-inner{flex:1 1 auto;min-height:0}
  #dashboard-root #tz-flip .flip-face{min-height:0;overflow-x:hidden;overflow-y:auto}
  /* 悬停流光描边原本外扩 1.5px，放进可滚动的卡面里会顶出 1px 滚动条 */
  #dashboard-root #tz-flip .flip-face > .card-flow{inset:0}
  /* 背面的进度条不该决定整张卡多高（两面同格），在分到的高度里自己滚 */
  #dashboard-root .dz-life-rows{flex:1 1 0;contain:size;overflow-y:auto}
  /* scrollbar-width 一设，Chrome 就不认 ::-webkit-scrollbar 的细条样式，退回带上下箭头的系统滚动条；只给 Firefox 设 */
  @supports not selector(::-webkit-scrollbar){
    #dashboard-root #tz-flip .flip-face,#dashboard-root .dz-life-rows{scrollbar-width:thin}
  }
}
/* 右栏在矮窗口里会自己滚；悬停流光描边外扩 1.5px 会多顶出 1px，横竖各冒一条滚动条 */
#dashboard-root .right-col .card-flow{inset:0}
/* 高屏：翻牌钟和时区卡跟着屏幕高度放大，别让多出来的高度只剩留白 */
@media (min-width:1401px) and (min-height:861px){
  #dashboard-root .main-clock-card.dz-clock{container-type:inline-size}
  #dashboard-root .dz-flap{font-size:clamp(3.2rem,max(min(7vw,6.4rem),min(12cqw,11.5vh)),9.5rem)}
  #dashboard-root .dz-clock .city-name{font-size:clamp(1.3rem,max(min(2.4vw,1.9rem),2.3vh),2.4rem)}
  #dashboard-root .dz-clock .date-display{font-size:clamp(.95rem,max(min(1.8vw,1.15rem),1.45vh),1.4rem)}
  #dashboard-root .dz-day{max-width:clamp(560px,52vh,760px)}
  #matrix-container{gap:clamp(9px,1.1vh,16px)}
  #matrix-container .dz-tz{padding:clamp(14px,1.5vh,22px) clamp(16px,1.2vw,22px) clamp(18px,2.2vh,30px);gap:clamp(4px,.8vh,11px)}
  #matrix-container .dz-tz .tz-time{font-size:clamp(1.45rem,min(3.1vh,2.05cqw),2.7rem)}
  #matrix-container .dz-tz .tz-name{font-size:clamp(.88rem,1.4vh,1.12rem)}
  .dz-tz-meta{font-size:clamp(.7rem,1.15vh,.9rem)}
  .dz-tz-sky svg.ico{width:clamp(15px,1.9vh,22px);height:clamp(15px,1.9vh,22px)}
  #matrix-container .dz-tz .tz-del{width:26px;height:26px;top:8px;right:8px}
  .dz-tz-line{bottom:clamp(7px,1vh,12px)}
}
.dz-tz-date{display:none;font-size:.72rem;color:var(--tk-ink-3);letter-spacing:.5px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:1401px){
  #matrix-container.dz-roomy .dz-tz-date{display:block;font-size:clamp(.72rem,1.15vh,.9rem)}
}
@media (min-width:1401px) and (min-height:1000px){
  /* 高屏上 6×2 的卡会又高又空，放得下时改 4×3（dash.js 按公告横幅等占掉后的实际剩余高度判断） */
  #matrix-container.dz-4col{grid-template-columns:repeat(4,minmax(0,1fr))}
  #matrix-container.dz-4col .dz-tz .tz-time{font-size:clamp(1.45rem,min(3.3vh,3.1cqw),2.9rem)}
  /* 时光进度背面同样跟着高度放大 */
  #dashboard-root .dz-life{gap:clamp(12px,2vh,28px)}
  #dashboard-root .dz-life .life-track{height:clamp(9px,1.3vh,14px)}
  #dashboard-root .dz-life .life-row-head{font-size:clamp(.82rem,1.25vh,.96rem)}
  .dz-life-big b{font-size:clamp(2rem,3.6vh,3rem)}
  .dz-life-txt{font-size:clamp(.74rem,1.2vh,.92rem)}
  .dz-chip{font-size:clamp(.72rem,1.15vh,.88rem);padding:clamp(5px,.7vh,9px) 12px clamp(5px,.7vh,9px) 9px}
}

/* 顶栏城市下拉：城市 / 英文 / 当地时刻 */
.custom-select-options{min-width:236px}
.custom-select-option{display:flex;align-items:baseline;gap:8px}
.custom-select-option .cso-n{font-weight:600}
.custom-select-option .cso-en{flex:1;font-size:.72em;opacity:.5;letter-spacing:.3px}
.custom-select-option .cso-t{font-family:var(--tk-num);font-variant-numeric:tabular-nums;font-size:.8em;opacity:.7}
.custom-select-option.selected .cso-t{opacity:1}

/* ══════════ 时光进度（翻面卡背面）══════════ */
#dashboard-root .dz-life{display:flex;flex-direction:column;justify-content:center;gap:12px;flex:1;padding-top:0}
.dz-life-head{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap}
.dz-life-big{display:flex;align-items:baseline;font-family:var(--tk-num);font-weight:800;line-height:1}
.dz-life-big b{font-size:2rem;font-variant-numeric:tabular-nums;letter-spacing:-.5px;
  background:linear-gradient(135deg,#ffd4e3,#c4b5fd);-webkit-background-clip:text;background-clip:text;color:transparent}
.dz-life-big i{font-style:normal;font-size:.9rem;color:var(--tk-ink-3);margin-left:2px}
.dz-life-txt{font-size:.74rem;color:var(--tk-ink-3);line-height:1.55}
.dz-life-txt div:first-child{color:var(--tk-ink-2);font-weight:600}
.dz-life-sky{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.dz-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 7px;border-radius:10px;white-space:nowrap;
  background:var(--tk-bg-2);box-shadow:inset 0 0 0 1px var(--tk-line);font-size:.72rem;color:var(--tk-ink);font-variant-numeric:tabular-nums}
.dz-chip svg.ico{width:15px;height:15px;color:var(--tk-gold)}
.dz-chip em{font-style:normal;color:var(--tk-ink-3);margin-right:5px}
  background:var(--tk-bg-2);box-shadow:inset 0 0 0 1px var(--tk-line);transition:background .2s,transform .2s}
  transition:stroke-dashoffset .9s var(--tk-spring);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--c) 70%,transparent))}
  font-variant-numeric:tabular-nums;color:var(--tk-ink)}
body.theme-light .dz-life-big b{background:linear-gradient(135deg,#d9467e,#7453db);-webkit-background-clip:text;background-clip:text}
@media (min-width:901px) and (max-height:860px){
}
@media (min-width:901px) and (max-height:740px){
  #dashboard-root .dz-life{gap:6px} .dz-life-big b{font-size:1.35rem} .dz-life-rows{gap:5px}
  #dashboard-root .dz-life .life-row{padding:5px 10px} #dashboard-root .dz-life .life-track{height:7px} .dz-chip{padding:3px 8px 3px 6px;font-size:.64rem}
}

/* 时光进度：沿用原来的横向进度条（app.css 的 .life-row / .life-track / .life-fill） */
.dz-life-rows{display:flex;flex-direction:column;gap:clamp(8px,1.3vh,18px);min-height:0}
#dashboard-root .dz-life .life-row{width:100%;text-align:left;border:1px solid var(--tk-line);font:inherit;color:inherit}
#dashboard-root .dz-life .life-row[data-k="day"]{--c:#ffb7c5}
#dashboard-root .dz-life .life-row[data-k="week"]{--c:#f5a3d7}
#dashboard-root .dz-life .life-row[data-k="month"]{--c:#c4b5fd}
#dashboard-root .dz-life .life-row[data-k="year"]{--c:#9fb4ff}
#dashboard-root .dz-life .life-row[data-k="life"]{--c:#fda4af}
#dashboard-root .dz-life .dz-life-add{--c:#fda4af}
#dashboard-root .dz-life .life-ico{display:inline-flex;align-items:center}
#dashboard-root .dz-life .life-ico svg.ico{width:16px;height:16px;color:var(--c)}
#dashboard-root .dz-life .life-pct{color:var(--c)}
#dashboard-root .dz-life .life-fill{width:0;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 62%,transparent));
  box-shadow:0 0 10px color-mix(in srgb,var(--c) 45%,transparent)}
.dz-life-rows.tight{gap:4px}
.dz-life-rows.tight .life-row{padding:4px 11px 5px;border-radius:11px}
.dz-life-rows.tight .life-row-head{margin-bottom:3px;font-size:.75rem}
.dz-life-rows.tight .life-track{height:6px}
.dz-life-rows.tight .life-sub{font-size:.64rem}
.dz-life-rows.tight .life-pct{font-size:.8rem}
.dz-life.tiny .dz-life-sky,.dz-life.tiny .dz-life-txt div:last-child{display:none}
.dz-life.tiny .dz-life-big b{font-size:1.4rem}
.dz-life.tiny .dz-life-rows{gap:3px}
.dz-life.tiny .dz-life-rows .life-row{padding:3px 10px 4px}
.dz-life.flat .dz-life-rows .life-row{display:flex;align-items:center;gap:7px;padding:2px 10px;font-size:.75rem}
.dz-life.flat .life-row-head{display:contents}
.dz-life.flat .life-row-head .life-sub{display:none}
.dz-life.flat .life-track{order:1;flex:1;min-width:40px;height:5px;margin-left:4px}
.dz-life.flat .life-row-head .life-pct{order:2;min-width:3.4em;text-align:right}
.dz-life.tiny .dz-life-rows .life-track{height:5px}
.dz-life.tiny .dz-life-rows .life-row-head{margin-bottom:2px;font-size:.72rem}
.dz-life-add{cursor:pointer;border-style:dashed!important}
.dz-life-add .life-pct svg.ico{width:15px;height:15px}
.dz-life-add:hover{background:rgba(253,164,175,.08)}
body.theme-light #dashboard-root .dz-life .life-row[data-k="day"]{--c:#e0578c}
body.theme-light #dashboard-root .dz-life .life-row[data-k="week"]{--c:#c84aa0}
body.theme-light #dashboard-root .dz-life .life-row[data-k="month"]{--c:#7c5be0}
body.theme-light #dashboard-root .dz-life .life-row[data-k="year"]{--c:#4d6fe0}
body.theme-light #dashboard-root .dz-life .life-row[data-k="life"],body.theme-light .dz-life-add{--c:#e0485f}

/* ══════════ 番茄钟 ══════════ */
.dz-pomo{--dz-pg1:#ffc8da;--dz-pg2:#ff6fae;--dz-b1:#f58bb7;--dz-b2:#d6448d}
.dz-pomo[data-mode="short"]{--dz-pg1:#a7f3d0;--dz-pg2:#22c9a6;--dz-b1:#34d3a6;--dz-b2:#0e9d88}
.dz-pomo[data-mode="long"]{--dz-pg1:#c7d2fe;--dz-pg2:#8b6cff;--dz-b1:#9b87ff;--dz-b2:#6a4ddf}
#dashboard-root .dz-pomo .card-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dz-pomo-stat{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;letter-spacing:0;text-transform:none;line-height:1;
  color:var(--tk-ink-3);padding:4px 9px 4px 6px;border-radius:999px;background:rgba(251,146,60,.1);box-shadow:inset 0 0 0 1px rgba(251,146,60,.24)}
.dz-pomo-stat svg.ico{width:13px;height:13px;color:#fb923c}
.dz-pomo-stat b{color:#fdba74;font-weight:800;font-size:.8rem}
.dz-pomo-seg{display:flex;width:max-content;margin:0 auto 4px}
.dz-pomo-seg button.on{background:linear-gradient(135deg,var(--dz-b1),var(--dz-b2));box-shadow:0 6px 16px -8px var(--dz-b2)}
.dz-pomo-body{display:flex;align-items:center;justify-content:center;gap:12px}
#dashboard-root .dz-pomo .pomo-ring-wrap{margin:0;flex:none;border-radius:50%;outline:none}
.dz-pomo .pomo-ring-wrap:focus-visible{box-shadow:0 0 0 2px var(--tk-petal)}
.dz-pomo .ring-bg{stroke:var(--tk-bg-3);stroke-width:5}
.dz-pomo .ring-fill{stroke:url(#pomoGradient);stroke-width:5;stroke-linecap:round;stroke-dasharray:100;transition:stroke-dashoffset 1s linear}
.dz-pomo #pomoGradient .dz-g1{stop-color:var(--dz-pg1)}
.dz-pomo #pomoGradient .dz-g2{stop-color:var(--dz-pg2)}
.dz-ticks line{stroke:var(--tk-ink-3);stroke-width:.8;stroke-linecap:round;opacity:.4}
.dz-ticks line.big{stroke-width:1.4;opacity:.75}
.dz-knob{transform-box:view-box;transform-origin:60px 60px;transition:transform 1s linear,opacity .3s}
.dz-knob circle{fill:#fff;stroke:var(--dz-pg2);stroke-width:2.2}
.dz-pomo.is-idle .dz-knob{opacity:0}
.dz-pomo.snap .ring-fill,.dz-pomo.snap .dz-knob{transition:none}
.dz-pomo .pomo-ring-wrap.running .pomo-ring{filter:drop-shadow(0 0 10px color-mix(in srgb,var(--dz-pg2) 45%,transparent))}
.dz-pomo .pomo-display{font-family:var(--tk-num);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.5px}
.dz-pomo .pomo-mode{letter-spacing:2px;color:var(--dz-pg1);transition:color .3s}
.dz-pomo.is-paused .pomo-mode{color:var(--tk-ink-3)}
.dz-pomo.is-paused .pomo-display{animation:dzBlink 1.6s ease-in-out infinite}
@keyframes dzBlink{50%{opacity:.45}}
.dz-dots{display:flex;gap:4px;justify-content:center;margin-top:5px}
.dz-dots i{display:block;width:5px;height:5px;border-radius:50%;background:var(--tk-bg-4);transition:background .3s,box-shadow .3s}
.dz-dots i.on{background:var(--dz-pg2);box-shadow:0 0 5px var(--dz-pg2)}
.dz-dots i.cur{background:transparent;box-shadow:inset 0 0 0 1px var(--dz-pg2)}
.dz-pomo.is-running .dz-dots i.cur{animation:dzPulse 1.6s ease-in-out infinite}
@keyframes dzPulse{50%{background:var(--dz-pg2)}}
.dz-adj{width:30px;height:30px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;flex:none;touch-action:manipulation;
  background:var(--tk-bg-2);box-shadow:inset 0 0 0 1px var(--tk-line);color:var(--tk-ink-2);transition:opacity .25s,transform .15s,background .15s,color .15s}
.dz-adj svg.ico{width:15px;height:15px}
.dz-adj:hover{background:var(--tk-bg-3);color:var(--tk-ink)}
.dz-adj:active{transform:scale(.88)}
.dz-adj:disabled{opacity:0;pointer-events:none;transform:scale(.6)}
#dashboard-root .dz-pomo .pomo-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin:6px 0 0}
.dz-round{width:36px;height:36px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;flex:none;
  background:var(--tk-bg-2);box-shadow:inset 0 0 0 1px var(--tk-line);color:var(--tk-ink-2);transition:background .15s,color .15s,transform .12s}
.dz-round svg.ico{width:16px;height:16px}
.dz-round:hover{background:var(--tk-bg-3);color:var(--tk-ink)}
.dz-round:active{transform:scale(.9)}
#dashboard-root .dz-pomo .dz-pomo-go{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:122px;height:38px;padding:0 18px;
  border:0;border-radius:999px;color:#fff;font-weight:700;letter-spacing:1px;
  background:linear-gradient(135deg,var(--dz-b1),var(--dz-b2));box-shadow:0 10px 24px -12px var(--dz-b2),inset 0 1px 0 rgba(255,255,255,.25)}
#dashboard-root .dz-pomo .dz-pomo-go:hover{filter:brightness(1.07);transform:translateY(-1px)}
#dashboard-root .dz-pomo .dz-pomo-go:active{transform:scale(.96)}
.dz-pomo-go svg.ico{width:15px;height:15px}
.dz-pomo.dz-done .pomo-ring-wrap{animation:dzDone .9s var(--tk-spring)}
@keyframes dzDone{0%{transform:scale(1)}30%{transform:scale(1.08)}100%{transform:scale(1)}}
body.theme-light .dz-pomo-stat b{color:#c2410c}
body.theme-light .dz-pomo .pomo-mode{color:var(--dz-b2)}
@media (min-width:901px) and (max-height:860px){
  .dz-adj{width:26px;height:26px} .dz-round{width:32px;height:32px} #dashboard-root .dz-pomo .dz-pomo-go{height:34px;min-width:110px}
}
@media (min-width:901px) and (max-height:740px){
  .dz-pomo-seg{margin-bottom:0} .dz-pomo-seg button{padding:3px 8px;font-size:11px}
  .dz-pomo .dz-dots{margin-top:2px} .dz-dots i{width:4px;height:4px}
  .dz-round{width:28px;height:28px} .dz-round svg.ico{width:14px;height:14px}
  #dashboard-root .dz-pomo .dz-pomo-go{height:30px;min-width:96px;padding:0 12px;font-size:.72rem}
  #dashboard-root .dz-pomo .pomo-controls{margin-top:3px}
}

/* ══════════ 一言 ══════════ */
.dz-quote .dz-quote-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
#dashboard-root .dz-quote .wisdom-label{margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dz-quote-tools{display:flex;gap:4px;flex:none;opacity:.6;transition:opacity .2s}
.dz-quote:hover .dz-quote-tools,.dz-quote:focus-within .dz-quote-tools{opacity:1}
#dashboard-root .dz-quote .wisdom-text{position:relative;margin:0;padding:0 0 0 26px;border-left:0;font-style:normal;color:var(--tk-ink);
  font-family:"Songti SC","STSong","Noto Serif SC","Source Han Serif SC","SimSun",serif;letter-spacing:.5px;
  transition:opacity .2s,transform .2s,filter .2s}
#dashboard-root .dz-quote .wisdom-text.latin{font-family:Georgia,"Times New Roman",serif;font-style:italic;letter-spacing:0}
.dz-quote .wisdom-text::before{content:'';position:absolute;left:0;top:.25em;width:17px;height:17px;background:var(--pink-sakura);opacity:.7;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.2 5.5C6 6.6 3.5 9.8 3.5 14.4V19h6.6v-6.4H6.9c.2-2.5 1.6-4.2 3.9-5zM20.5 5.5c-4.2 1.1-6.7 4.3-6.7 8.9V19h6.6v-6.4h-3.2c.2-2.5 1.6-4.2 3.9-5z'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M10.2 5.5C6 6.6 3.5 9.8 3.5 14.4V19h6.6v-6.4H6.9c.2-2.5 1.6-4.2 3.9-5zM20.5 5.5c-4.2 1.1-6.7 4.3-6.7 8.9V19h6.6v-6.4h-3.2c.2-2.5 1.6-4.2 3.9-5z'/></svg>") center/contain no-repeat}
.dz-quote-by{margin-top:6px;text-align:right;font-size:.74rem;color:var(--tk-ink-3);letter-spacing:1px;transition:opacity .2s,transform .2s}
.dz-quote.q-out .wisdom-text,.dz-quote.q-out .dz-quote-by{opacity:0;transform:translateY(5px);filter:blur(2px)}
body.theme-light .dz-quote .wisdom-text::before{background:#d9467e}

/* ══════════ 秒表 ══════════ */
#dashboard-root .dz-sw .sw-display{display:flex;align-items:baseline;justify-content:center;margin-bottom:2px;color:var(--tk-ink);
  font-family:var(--tk-num);font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:1px}
.dz-sw .sw-display small{font-size:.56em;font-weight:400;opacity:.5;margin-left:1px}
.dz-sw.is-running .sw-display span{background:linear-gradient(180deg,#fff,#b9f5d8);-webkit-background-clip:text;background-clip:text;color:transparent}
body.theme-light .dz-sw.is-running .sw-display span{background:linear-gradient(180deg,#1f2937,#0f8a62);-webkit-background-clip:text;background-clip:text}
.dz-sw-now{min-height:1.2em;margin-bottom:8px;text-align:center;font-size:.72rem;color:var(--tk-ink-3);font-variant-numeric:tabular-nums;letter-spacing:.5px}
#dashboard-root .dz-sw .sw-controls{display:flex;gap:10px;justify-content:center;margin-bottom:10px}
.dz-sw-btn{min-width:86px;height:34px;padding:0 16px;border-radius:999px;border:0;cursor:pointer;font:inherit;font-size:.8rem;font-weight:700;letter-spacing:1px;
  background:var(--tk-bg-3);color:var(--tk-ink);box-shadow:inset 0 0 0 1px var(--tk-line);transition:background .15s,color .15s,transform .12s,opacity .2s}
.dz-sw-btn:hover:not(:disabled){background:var(--tk-bg-4)}
.dz-sw-btn:active:not(:disabled){transform:scale(.95)}
.dz-sw-btn:disabled{opacity:.38;cursor:default}
.dz-sw-btn.go{background:rgba(93,224,166,.15);color:var(--tk-mint);box-shadow:inset 0 0 0 1px rgba(93,224,166,.36)}
.dz-sw-btn.go:hover{background:rgba(93,224,166,.24)}
.dz-sw-btn.go.stop{background:rgba(251,113,133,.15);color:var(--tk-red);box-shadow:inset 0 0 0 1px rgba(251,113,133,.36)}
.dz-sw-btn.go.stop:hover{background:rgba(251,113,133,.24)}
#sw-laps .dz-lap{display:grid;grid-template-columns:auto minmax(16px,1fr) auto auto;align-items:center;gap:8px;padding:5px 2px;
  border-bottom:1px solid var(--tk-line);font-size:.74rem;color:var(--tk-ink-3);font-variant-numeric:tabular-nums}
#sw-laps .dz-lap:last-child{border-bottom:0}
.dz-lap .n{white-space:nowrap;display:inline-flex;align-items:center}
.dz-lap .n em{font-style:normal;margin-left:5px;font-size:.6rem;font-weight:700;padding:1px 5px;border-radius:6px}
.dz-lap .bar{height:3px;border-radius:3px;background:var(--tk-bg-3);overflow:hidden}
.dz-lap .bar i{display:block;height:100%;border-radius:3px;background:var(--tk-ink-3);opacity:.6}
#sw-laps .dz-lap .sw-lap-time{color:var(--tk-ink);font-family:var(--tk-num)}
.dz-lap .tot{font-size:.68rem}
.dz-lap.best .sw-lap-time,.dz-lap.best .n em{color:var(--tk-mint)!important}
.dz-lap.best .n em{background:rgba(93,224,166,.14)}
.dz-lap.best .bar i{background:var(--tk-mint);opacity:1}
.dz-lap.worst .sw-lap-time,.dz-lap.worst .n em{color:var(--tk-red)!important}
.dz-lap.worst .n em{background:rgba(251,113,133,.14)}
.dz-lap.worst .bar i{background:var(--tk-red);opacity:1}
.dz-lap.fresh{animation:dzLapIn .35s var(--tk-spring)}
@keyframes dzLapIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
#sw-flip .flip-front > .tk-snack{bottom:10px}
/* 背面倒数日列表别撑高整张翻面卡（两面同格，卡高取两面较高者），在分到的高度里自己滚 */
@media (min-width:901px){
  #dashboard-root .right-col #sw-flip .cd-list{flex:1 1 0;min-height:64px;contain:size;overflow-y:auto;container-type:size}
  /* 还没有倒数日时，空状态插画跟着分到的高度收起，别为一张占位图冒滚动条 */
  @container (max-height:200px){ #sw-flip .cdx-empty{padding:8px 10px 4px} #sw-flip .cdx-empty svg{display:none} }
  @container (max-height:130px){ #sw-flip .cdx-empty span{display:none} #sw-flip .cdx-empty-btn{margin-top:2px} }
}
@media (min-width:901px) and (max-height:740px){
  .dz-sw-now{margin-bottom:4px;font-size:.64rem} .dz-sw-btn{height:28px;min-width:72px;font-size:.72rem}
  #dashboard-root .dz-sw .sw-controls{margin-bottom:6px}
}

/* ══════════ 手机 / 平板 ══════════ */
@media (max-width:768px){
  body.theme-light .ios-fold:not(.open)::after{background:linear-gradient(to top,rgba(252,238,245,.9),transparent)}
  .ios-fold-btn svg.ico{width:18px;height:18px}
  .ios-fold > .card-title,.ios-fold .flip-face > .card-title{padding-right:34px}
  .dz-clock .dz-city em{display:none}
  .dz-day{margin:.2rem auto .7rem}
  .dz-day-meta{font-size:.66rem}
  #matrix-container .dz-tz .tz-del{opacity:.55;transform:none}
  .dz-life-sky{margin-left:0;justify-content:flex-start;width:100%}
}
@media (max-width:420px){
  #dashboard-root .flip-hint{font-size:0;gap:0;padding:6px 9px}
  #dashboard-root .flip-hint svg.ico{width:15px;height:15px}
  .dz-day-sun svg.ico{display:none}
  .dz-moon-badge em{display:none}
}
@media (prefers-reduced-motion:reduce){
  .dz-day-dim,.dz-day-knob,.dz-knob,.dz-pomo .ring-fill{transition:none}
  .dz-clock.dz-swap .dz-flap,.dz-pomo.dz-done .pomo-ring-wrap,.dz-lap.fresh{animation:none}
}
