/* Lernkartei games: shared styles */
.game{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px 16px;margin:16px 0 8px;max-width:760px;position:relative}
.game [hidden]{display:none!important}
.game .btn{border:0;font:inherit;font-weight:700;cursor:pointer}
.g-small{font-size:.85rem}
.lg-snd{position:absolute;top:10px;inset-inline-end:10px;background:var(--soft);border:0;border-radius:999px;width:38px;height:38px;font-size:1.05rem;cursor:pointer;line-height:1}
@keyframes lg-shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-7px)}40%,60%{transform:translateX(7px)}}
@keyframes lg-pop{0%{transform:scale(1)}40%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes lg-fire{0%,100%{transform:scale(1) rotate(-4deg)}50%{transform:scale(1.18) rotate(4deg)}}
.shake{animation:lg-shake .42s}
.pop{animation:lg-pop .22s}
/* confetti */
.lg-conf{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:50}
.lg-conf i{position:absolute;top:-12px;width:9px;height:14px;border-radius:2px;animation:lg-fall linear forwards}
@keyframes lg-fall{to{top:105vh;transform:rotate(720deg) translateX(40px)}}
/* share dialog */
#lg-dlg{border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);padding:18px;width:min(520px,calc(100vw - 32px))}
#lg-dlg::backdrop{background:rgba(10,15,25,.55)}
#lg-dlg h2{margin:0 0 4px;font-size:1.2rem}
#lg-txt{width:100%;min-height:140px;font:inherit;font-size:.95rem;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);resize:vertical;margin:8px 0}
.lg-sh{display:flex;flex-wrap:wrap;gap:8px}
.lg-sh a,.lg-sh button{font:inherit;font-size:.92rem;font-weight:700;text-decoration:none;padding:9px 14px;border-radius:10px;border:0;cursor:pointer;color:#fff}
.lg-x{background:#111}.lg-wa{background:#1f8f4e}.lg-tg{background:#2481cc}.lg-rd{background:#d93a00}.lg-cp,.lg-nt{background:var(--accent)}
#lg-dlg .lg-cl{background:var(--soft);color:var(--ink);margin-inline-start:auto}

/* ---- der/die/das Rush ---- */
.r-lv{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}
.r-lv button{font:inherit;font-weight:700;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--soft);color:var(--ink);cursor:pointer}
.r-lv button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.r-big{font-size:1.15rem;padding:14px 34px}
.r-hud{display:flex;justify-content:space-between;gap:8px;font-size:.9rem;color:var(--muted);padding-inline-end:44px}
.r-hud b{direction:ltr;unicode-bidi:isolate;display:block;font-size:1.5rem;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}
.r-hud .r-cb.hot b{color:var(--die)}
.r-fire{display:inline-block;margin-inline-start:4px}
.r-cb.hot .r-fire{animation:lg-fire .6s infinite}
.r-bar{height:6px;background:var(--soft);border-radius:6px;overflow:hidden;margin:8px 0 14px}
.r-bar i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;transition:transform .25s linear}
.r-bar.low i{background:var(--die)}
[dir="rtl"] .r-bar i{transform-origin:right}
.r-card{border:2px solid var(--line);border-radius:14px;padding:26px 12px;text-align:center;min-height:150px;display:flex;flex-direction:column;justify-content:center;transition:border-color .12s,background .12s}
.r-card.ok{border-color:#1e8a4c;background:color-mix(in srgb,#1e8a4c 10%,var(--paper))}
.r-card.bad{border-color:#c8323c;background:color-mix(in srgb,#c8323c 10%,var(--paper))}
.r-word{font-family:var(--f-word);font-weight:700;font-size:clamp(1.8rem,8vw,2.6rem);line-height:1.15;word-break:break-word;unicode-bidi:isolate}
.r-word .art{margin-inline-end:.25em}
.r-mean{color:var(--muted);margin-top:6px;font-size:1rem}
.r-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.r-btns button{font:inherit;font-family:var(--f-word);font-size:1.45rem;font-weight:700;color:#fff;border:0;border-radius:12px;padding:18px 4px;cursor:pointer;touch-action:manipulation;box-shadow:0 4px 0 rgba(0,0,0,.22);transition:transform .06s,box-shadow .06s}
.r-btns button:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.22)}
.r-btns button:disabled{opacity:.55}
.r-btns small{display:block;font-family:var(--f-ui);font-size:.7rem;font-weight:400;opacity:.8}
.r-a0{background:#1f63c6}.r-a1{background:#c8323c}.r-a2{background:#1e8a4c}
.r-over{font-size:1rem;color:var(--muted);font-weight:700}
.r-final{font-family:var(--f-word);font-size:3rem;font-weight:700;line-height:1.1}
.r-rec{display:inline-block;background:#fff3c4;color:#6b4b00;font-weight:700;border-radius:999px;padding:3px 12px;margin:6px 0}
.r-stats{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0;color:var(--muted)}
.r-stats b{color:var(--ink)}
.r-miss{list-style:none;padding:0;margin:6px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.r-miss li{background:var(--soft);border-radius:8px;padding:6px 10px}
.r-miss bdi{font-family:var(--f-word);font-weight:700}
.r-miss span.m{display:block;font-size:.85rem;color:var(--muted)}
.game h3{font-size:1rem;margin:16px 0 4px}

/* ---- Tageswort ---- */
.tw{--ok:#2f8f57;--in:#c49a12;--no:#7a8089;text-align:center}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tw{--no:#3b4250}}
.tw-top{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.9rem;min-height:38px;padding:0 44px}
.tw-hint{font:inherit;font-size:.9rem;background:var(--soft);color:var(--ink);border:0;border-radius:999px;padding:6px 14px;cursor:pointer}
.tw-mean{font-weight:700;color:var(--ink)}
.tw-grid{display:grid;grid-template-rows:repeat(6,1fr);gap:6px;width:min(330px,100%);margin:10px auto 14px}
.tw-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.tw-t{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:8px;font-family:var(--f-ui);font-weight:700;font-size:clamp(1.4rem,7vw,1.9rem);text-transform:uppercase;color:var(--ink);background:var(--paper);user-select:none}
.tw-t.f{border-color:var(--muted);animation:lg-pop .12s}
.tw-t.ok,.tw-t.in,.tw-t.no{color:#fff;border-color:transparent}
.tw-t.ok{background:var(--ok)}.tw-t.in{background:var(--in)}.tw-t.no{background:var(--no)}
.tw-t.flip{animation:tw-flip .5s ease both}
@keyframes tw-flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}100%{transform:rotateX(0)}}
.tw-row.win .tw-t{animation:tw-jump .5s ease both}
@keyframes tw-jump{30%{transform:translateY(-14px)}60%{transform:translateY(2px)}}
.tw-kb{display:flex;flex-direction:column;gap:6px;max-width:520px;margin:0 auto;direction:ltr;touch-action:manipulation}
.tw-kr{display:flex;gap:4px;justify-content:center}
.tw-k{flex:1 1 0;min-width:0;max-width:44px;height:52px;border:0;border-radius:6px;background:var(--soft);color:var(--ink);font:inherit;font-weight:700;font-size:1rem;cursor:pointer;padding:0}
.tw-k.wide{max-width:66px;flex-grow:1.6;font-size:.8rem}
.tw-k.ok{background:var(--ok);color:#fff}.tw-k.in{background:var(--in);color:#fff}.tw-k.no{background:var(--no);color:#fff;opacity:.75}
@media (max-width:520px){.tw-grid{width:min(282px,100%);gap:5px}.tw-row{gap:5px}.tw-k{height:50px}.tw .tw-top{min-height:34px}.game.tw{padding:12px 10px}}
.tw-toast{position:absolute;left:50%;top:64px;transform:translateX(-50%);background:var(--ink);color:var(--paper);font-weight:700;padding:8px 14px;border-radius:8px;z-index:5;pointer-events:none;white-space:nowrap}
.tw-end{margin:6px 0 4px}
.tw-word{font-family:var(--f-word);font-size:1.6rem;font-weight:700;direction:ltr;unicode-bidi:isolate}
.tw-stats{display:flex;justify-content:center;gap:18px;margin:12px 0 4px}
.tw-stats div{min-width:60px}
.tw-stats b{display:block;font-size:1.6rem;line-height:1.1;font-variant-numeric:tabular-nums}
.tw-stats span{font-size:.75rem;color:var(--muted)}
.tw-dist{max-width:320px;margin:6px auto;text-align:start;direction:ltr}
.tw-dist div{display:flex;align-items:center;gap:6px;margin:3px 0;font-size:.85rem}
.tw-dist i{display:block;background:var(--no);color:#fff;font-style:normal;font-weight:700;padding:1px 6px;border-radius:3px;min-width:22px;text-align:end}
.tw-dist i.cur{background:var(--ok)}
.tw-next{color:var(--muted);font-size:.9rem;margin-top:8px}
.tw-next b{font-variant-numeric:tabular-nums;color:var(--ink)}

/* ---- Artikel-Regen ---- */
.rg-field{position:relative;height:min(52vh,420px);border-radius:14px;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,var(--paper)),var(--paper) 75%);border:2px solid var(--line);touch-action:manipulation}
.rg-word{position:absolute;left:50%;top:0;transform:translateX(-50%);background:var(--paper);border:2px solid var(--line);border-radius:12px;padding:8px 16px;text-align:center;box-shadow:0 6px 16px rgba(0,0,0,.12);white-space:nowrap;will-change:top}
.rg-word b{display:block;font-family:var(--f-word);font-size:clamp(1.4rem,6vw,1.9rem);line-height:1.15;direction:ltr;unicode-bidi:isolate}
.rg-word span{display:block;font-size:.85rem;color:var(--muted);max-width:70vw;overflow:hidden;text-overflow:ellipsis}
.rg-word.ok{border-color:#1e8a4c;background:color-mix(in srgb,#1e8a4c 14%,var(--paper))}
.rg-word.bad{border-color:#c8323c;background:color-mix(in srgb,#c8323c 14%,var(--paper))}
.rg-ground{position:absolute;left:0;right:0;bottom:0;height:8px;background:repeating-linear-gradient(90deg,#c8323c 0 14px,transparent 14px 22px);opacity:.55}
.rg-lives{letter-spacing:2px}
.rg-lvl{position:absolute;top:8px;inset-inline-start:10px;font-size:.8rem;color:var(--muted);font-weight:700}

/* ---- games hub ---- */
.g-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:16px 0;padding:0;list-style:none}
.g-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--ink);height:100%;transition:transform .12s,box-shadow .12s}
.g-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.08)}
.g-art{height:110px;display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--f-word);font-weight:700;font-size:1.5rem;color:#fff}
.g-art.rush{background:linear-gradient(90deg,#1f63c6 0 33.3%,#c8323c 33.3% 66.6%,#1e8a4c 66.6%)}
.g-art.rush{gap:0}.g-art.rush span{flex:1;text-align:center}
.g-art.tw{background:var(--soft)}
.g-art.tw i{display:inline-flex;width:38px;height:38px;border-radius:6px;align-items:center;justify-content:center;font-style:normal;font-family:var(--f-ui);font-size:1.2rem}
.g-art.regen{background:linear-gradient(180deg,#28457a,#4a6fb3)}
.g-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px;flex:1}
.g-body h2,.g-body h3{margin:0;font-size:1.2rem;font-family:var(--f-word)}
.g-body p{margin:0;color:var(--muted);font-size:.95rem;flex:1}
.g-meta{font-size:.85rem;font-weight:700;color:var(--accent);min-height:1.3em}
.g-play{align-self:flex-start;margin-top:6px;background:var(--accent);color:var(--paper);font-weight:700;padding:8px 16px;border-radius:10px}
@media (prefers-reduced-motion:reduce){.r-bar i,.r-card,.g-card{transition:none}.shake,.pop,.tw-t.flip,.tw-row.win .tw-t,.r-cb.hot .r-fire{animation:none}}
@media (max-width:520px){.g-art{height:84px}.g-cards{gap:10px}}

/* ---- Hör-Rush ---- */
.hr-card{border:2px solid var(--line);border-radius:14px;padding:18px 12px;text-align:center;min-height:132px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}
.hr-card.ok{border-color:#1e8a4c;background:color-mix(in srgb,#1e8a4c 10%,var(--paper))}
.hr-card.bad{border-color:#c8323c;background:color-mix(in srgb,#c8323c 10%,var(--paper))}
.hr-ear{font-size:2.6rem;line-height:1}
.hr-w{font-family:var(--f-word);font-weight:700;font-size:1.7rem;direction:ltr;unicode-bidi:isolate}
.hr-m{color:var(--muted)}
.hr-ctl{display:flex;justify-content:center;gap:8px;margin:10px 0 4px}
.hr-ctl button{font:inherit;font-weight:700;border:0;border-radius:999px;padding:8px 16px;background:var(--soft);color:var(--ink);cursor:pointer}
.hr-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;direction:ltr}
.hr-opts button{font:inherit;font-family:var(--f-word);font-size:1.2rem;font-weight:700;border:2px solid var(--line);background:var(--paper);color:var(--ink);border-radius:12px;padding:14px 6px;cursor:pointer;position:relative;word-break:break-word}
.hr-opts button small{position:absolute;top:4px;left:8px;font-family:var(--f-ui);font-size:.7rem;color:var(--muted);font-weight:400}
.hr-opts button.ok{border-color:#1e8a4c;background:#1e8a4c;color:#fff}
.hr-opts button.bad{border-color:#c8323c;background:#c8323c;color:#fff}
.hr-opts button:disabled{cursor:default}
.hr-note{background:#fff3c4;color:#6b4b00;border-radius:10px;padding:8px 12px;font-size:.9rem;margin:8px 0}

/* ---- Stimmt's? ---- */
.st-stage{position:relative;height:250px;margin:6px 0 4px;touch-action:none;user-select:none}
.st-card{position:absolute;inset:0;margin:auto;width:min(340px,100%);height:230px;background:var(--paper);border:2px solid var(--line);border-radius:18px;box-shadow:0 10px 26px rgba(0,0,0,.12);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;text-align:center;cursor:grab;touch-action:none;will-change:transform}
.st-card.anim{transition:transform .22s ease,opacity .22s ease}
.st-card.fly-r{transform:translateX(130%) rotate(18deg)!important;opacity:0}
.st-card.fly-l{transform:translateX(-130%) rotate(-18deg)!important;opacity:0}
.st-card.bad{border-color:#c8323c}
.st-de{font-family:var(--f-word);font-weight:700;font-size:clamp(1.5rem,6.5vw,2rem);line-height:1.2;direction:ltr;unicode-bidi:isolate}
.st-eq{color:var(--muted);font-size:1.1rem}
.st-mean{font-size:1.2rem;font-weight:700}
.st-was{font-size:.9rem;color:#c8323c;font-weight:700;min-height:1.3em}
.st-tag{position:absolute;top:16px;font-weight:800;font-size:1.1rem;padding:3px 10px;border-radius:8px;border:3px solid;opacity:0;transform:rotate(-12deg)}
.st-tag.y{left:16px;color:#1e8a4c;border-color:#1e8a4c}
.st-tag.n{right:16px;color:#c8323c;border-color:#c8323c;transform:rotate(12deg)}
.st-btns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;direction:ltr}
.st-btns button{font:inherit;font-size:1.2rem;font-weight:800;color:#fff;border:0;border-radius:14px;padding:16px 4px;cursor:pointer;box-shadow:0 4px 0 rgba(0,0,0,.22)}
.st-btns button:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.22)}
.st-no{background:#c8323c}.st-yes{background:#1e8a4c}

/* ---- Duell ---- */
.du-arena{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.du-wrap.du-full{position:fixed;inset:0;z-index:60;background:var(--bg);padding:10px;padding-bottom:max(10px,env(safe-area-inset-bottom,0px))}
.du-p{background:var(--paper);border:2px solid var(--line);border-radius:16px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-height:280px;transition:border-color .12s,background .12s}
.du-p.win{border-color:#1e8a4c;background:color-mix(in srgb,#1e8a4c 12%,var(--paper))}
.du-p.lock{border-color:#c8323c;background:color-mix(in srgb,#c8323c 10%,var(--paper))}
.du-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;color:var(--muted)}
.du-head b{font-size:2rem;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
.du-word{text-align:center}
.du-word b{display:block;font-family:var(--f-word);font-size:clamp(1.6rem,7vw,2.4rem);line-height:1.15;direction:ltr;unicode-bidi:isolate}
.du-word span{color:var(--muted);font-size:.95rem}
.du-msg{text-align:center;font-weight:700;min-height:1.4em;font-size:.95rem}
.du-p .r-btns{margin-top:0}
.du-mid{display:none}
.du-x{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;border:0;background:var(--ink);color:var(--paper);border-radius:999px;width:40px;height:40px;font-size:1.1rem;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.du-wrap{position:relative}
.du-full .du-arena{height:100%}
.du-full .du-p{min-height:0}
@media (max-width:700px){
.du-arena{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
.du-arena .du-p2{transform:rotate(180deg);order:-1}
}
.du-big{font-family:var(--f-word);font-size:2.4rem;font-weight:700;text-align:center;direction:ltr}
.g-art.hoer{background:linear-gradient(135deg,#6d4ab8,#9b6be0)}
.g-art.st{background:linear-gradient(90deg,#c8323c 0 50%,#1e8a4c 50%)}
.g-art.du{background:linear-gradient(180deg,#1f63c6 0 50%,#c8323c 50%)}
.g-art.hoer,.g-art.du{font-size:2.8rem}
/* ---- progress popups ---- */
.lg-pop{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:70;width:min(420px,calc(100vw - 24px));background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.25);padding:16px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;animation:lg-up .28s ease}
.lg-pop.small{padding:10px 14px;flex-wrap:nowrap;width:min(380px,calc(100vw - 24px))}
.lg-pop.out{opacity:0;transform:translate(-50%,16px);transition:all .2s}
@keyframes lg-up{from{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%,0)}}
.lg-pi{font-size:1.4rem}
.lg-pbig{font-size:3rem;line-height:1;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--soft);border-radius:50%;flex:none}
.lg-pt{display:flex;flex-direction:column;flex:1;min-width:160px}
.lg-pt b{font-size:1.1rem}
.lg-pt span{color:var(--muted);font-size:.92rem}
.lg-pt .lg-pk{color:var(--accent);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.lg-pb{display:flex;gap:8px;width:100%;justify-content:flex-end}
.lg-pb .btn{border:0;font:inherit;font-weight:700;cursor:pointer;padding:9px 16px}
@media (max-width:700px){.lg-pop{bottom:86px}}
/* ---- today strip (hub/home) ---- */
.g-today{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:10px 14px;text-decoration:none;color:var(--ink);margin:10px 0}
.g-today b{font-size:1.15rem}
.g-today .gt-q{color:var(--muted)}
.g-today .gt-go{margin-inline-start:auto;color:var(--accent);font-weight:700}
/* ---- progress page ---- */
.pg-streak{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#ff8a00,#e52e71);color:#fff;border-radius:18px;padding:18px 20px;margin:12px 0}
.pg-streak .n{font-family:var(--f-word);font-size:3.2rem;font-weight:700;line-height:1}
.pg-streak .f{font-size:2.6rem}
.pg-streak p{margin:0;opacity:.95}
.pg-streak .btn{margin-inline-start:auto;background:rgba(255,255,255,.22);color:#fff;border:0;font:inherit;font-weight:700;cursor:pointer}
.pg-streak.zero{background:var(--soft);color:var(--ink)}
.pg-q{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px;max-width:760px}
.pg-q li{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.pg-q li.done{border-color:#1e8a4c}
.pg-q .row{display:flex;justify-content:space-between;gap:10px;font-weight:700}
.pg-q .row span{color:var(--muted);font-weight:400;font-variant-numeric:tabular-nums;direction:ltr}
.pg-q .bar{height:8px;background:var(--soft);border-radius:8px;margin-top:6px;overflow:hidden}
.pg-q .bar i{display:block;height:100%;background:#1e8a4c;border-radius:8px}
.pg-b{list-style:none;padding:0;margin:8px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pg-b li{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px;text-align:center;cursor:default}
.pg-b li button{all:unset;cursor:pointer;display:block}
.pg-b .i{font-size:2.2rem;line-height:1.2}
.pg-b b{display:block;font-size:.95rem;margin-top:2px}
.pg-b span{display:block;font-size:.8rem;color:var(--muted)}
.pg-b li.off .i{filter:grayscale(1);opacity:.35}
.pg-b li.off b{color:var(--muted)}
.pg-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:8px 0}
.pg-stats div{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.pg-stats b{display:block;font-size:1.6rem;font-variant-numeric:tabular-nums}
.pg-stats span{font-size:.8rem;color:var(--muted)}
.pg-lv{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px;margin:12px 0}
.pg-lv h3{margin:0 0 4px;display:flex;justify-content:space-between;gap:8px;font-family:var(--f-word)}
.pg-lv h3 span{color:var(--muted);font-family:var(--f-ui);font-size:.9rem;font-weight:400;direction:ltr}
.pg-lvbar{height:8px;background:var(--soft);border-radius:8px;overflow:hidden;margin-bottom:12px}
.pg-lvbar i{display:block;height:100%;background:var(--accent)}
.pg-nodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:12px 8px}
.pg-node{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--ink);text-align:center}
.pg-ring{width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.78rem;background:conic-gradient(var(--das) calc(var(--p)*1%),var(--soft) 0);position:relative}
.pg-ring:after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--paper)}
.pg-ring em{position:relative;z-index:1;font-style:normal;direction:ltr}
.pg-node.full .pg-ring{background:var(--das)}
.pg-node.full .pg-ring:after{background:var(--das)}
.pg-node.full em{color:#fff}
.pg-node.next .pg-ring{box-shadow:0 0 0 3px var(--accent);animation:lg-pop 1.4s infinite}
.pg-node small{font-size:.72rem;line-height:1.25;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
