/* uzs2 第二期新增视图样式(app.js 专用): 今天该做的 / 路线图 / 练习中心 / 每日 / 日历 / 题型专项 / 我的。只用变量。 */
.hello{margin:6px 0 12px}.hello h1{font-size:22px;margin:0 0 4px}.hello p{margin:0;color:var(--ink-soft);font-size:14px}
.lsec-r{margin-left:auto;display:flex;gap:4px}
.seg-mini{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800;cursor:pointer;font-family:var(--cjk)}
.seg-mini.on{background:var(--cobalt);border-color:var(--cobalt);color:#fff}

/* 今天该做的 */
.todo{display:flex;flex-direction:column;gap:8px}
.todo-it{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius,14px);padding:11px 13px}
.todo-it .ti{font-size:24px;width:34px;text-align:center;flex-shrink:0}
.todo-it .tt{flex:1;min-width:0}.todo-it .tt b{display:block;font-size:15px}.todo-it .tt small{display:block;color:var(--muted);font-size:12px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.todo-it .tb{flex-shrink:0;font-weight:900;font-size:13px;color:var(--cobalt);background:var(--info-bg,var(--paper-2));border-radius:999px;padding:6px 11px}
.todo-it.done{opacity:.7}.todo-it.done .tb{background:var(--ok-bg);color:var(--ok)}

/* 路线图(SVG) */
.pathmap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius,14px);padding:8px 4px;max-width:560px;margin:0 auto}
.pathmap svg{display:block;font-family:var(--cjk)}
.pm-road{fill:none;stroke:var(--line);stroke-width:14;stroke-linejoin:round;stroke-linecap:round}
.pm-road2{fill:none;stroke:var(--paper);stroke-width:4;stroke-dasharray:8 10;stroke-linejoin:round;stroke-linecap:round}
.pm-head rect{fill:var(--paper-2)}.pm-hd-basics{fill:var(--acc-basics)!important}.pm-hd-starter{fill:var(--acc-starter)!important}.pm-hd-scene{fill:var(--acc-scene)!important}.pm-hd-topic{fill:var(--acc-topic)!important}
.pm-ht{fill:#fff;font-size:15px;font-weight:900}.pm-hs{fill:#fff;font-size:13px;font-weight:700;opacity:.9}
.pm-n circle{fill:var(--card);stroke:var(--line);stroke-width:3}
.pm-n.part circle{stroke:var(--gold)}
.pm-n.done circle{fill:var(--ok);stroke:var(--ok)}
.pm-c-basics.todo circle{stroke:var(--acc-basics)}.pm-c-starter.todo circle{stroke:var(--acc-starter)}.pm-c-scene.todo circle{stroke:var(--acc-scene)}.pm-c-topic.todo circle{stroke:var(--acc-topic)}
.pm-n.cur circle{fill:var(--gold);stroke:var(--gold)}
.pm-n .pm-ring{fill:none!important;stroke:var(--gold)!important;stroke-width:2!important;opacity:.6;animation:pmring 1.6s ease-out infinite}
@keyframes pmring{0%{r:18;opacity:.8}100%{r:28;opacity:0}}
.pm-num{font-size:14px;font-weight:900;fill:var(--ink)}.pm-n.done .pm-num,.pm-n.cur .pm-num{fill:#fff}
.pm-lb{font-size:10.5px;fill:var(--ink-soft)}
.pm-lv{fill:var(--paper-2);stroke:var(--line);stroke-width:1}.pm-lv.on{fill:var(--ok);stroke:var(--ok)}
.pm-a{cursor:pointer}.pm-a:hover circle{filter:brightness(1.08)}

/* 课页 */
.hero{position:relative}
.hero-live{position:absolute;right:14px;top:14px;text-decoration:none;color:#fff;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800}
.hero-live:hover{background:rgba(255,255,255,.3)}
.bigscore{font-size:30px;font-weight:900;margin:4px 0}.bigscore.ok{color:var(--ok)}.bigscore.bad{color:var(--bad)}
.pb-tools a.on{background:var(--gold);color:#3a2300}
.drgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media (min-width:640px){.drgrid{grid-template-columns:repeat(4,1fr)}}
.drk{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;font-family:var(--cjk);color:var(--ink)}
.drk .ic{font-size:22px}.drk b{font-size:13.5px}.drk small{font-size:11px;color:var(--muted)}
.drk.has{border-color:var(--ok)}.drk.has small{color:var(--ok)}
.drk:hover{border-color:var(--cobalt)}

/* 练习中心 */
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
@media (min-width:760px){.pgrid{grid-template-columns:repeat(3,1fr)}}
.pc{display:block;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius,14px);padding:13px 13px 11px;min-height:96px;position:relative}
.pc:hover{border-color:var(--cobalt)}
.pc-h{display:flex;align-items:center;gap:8px}.pc-h .ic{font-size:24px}.pc-h b{font-size:15.5px}
.pc small{display:block;color:var(--muted);font-size:12px;margin-top:5px;line-height:1.4}
.bars{display:flex;gap:6px;align-items:flex-end;height:90px;padding:6px 2px 0}
.bars .bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:11px;color:var(--muted)}
.bars .bar i{display:block;width:70%;background:var(--cobalt-2);border-radius:4px 4px 0 0;min-height:2px}
.bars .bar:first-child i{background:var(--red)}
.bars .bar small{font-size:11px;font-weight:800;color:var(--ink-soft)}.bars .bar em{font-style:normal;font-size:10.5px}
.bars.mini{height:56px;margin-top:6px}.bars.mini small{display:none}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-block;text-decoration:none;font-size:13px;font-weight:700;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 11px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip.on{border-color:var(--gold);background:var(--warn-bg)}.chip.done{color:var(--ok);border-color:var(--ok)}

/* 每日学乌语 */
.dgrid{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:640px){.dgrid{grid-template-columns:1fr 1fr}}
.dcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius,14px);padding:13px 14px}
.dk{font-size:12px;letter-spacing:.1em;color:var(--red);font-weight:900}
.du{font-size:22px;font-weight:900;color:var(--cobalt);margin-top:6px;cursor:pointer;line-height:1.3}
.dt{font-size:18px;font-weight:900;color:var(--cobalt);margin-top:6px}
.dc{font-size:15px;color:var(--ink);margin-top:4px;line-height:1.5}
.de{font-size:13px;color:var(--ink-soft);margin-top:4px;line-height:1.5}
.ds{font-size:11.5px;color:var(--muted);margin-top:6px}

/* 日历 */
.cal{background:var(--card);border:1px solid var(--line);border-radius:var(--radius,14px);padding:10px 12px}
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cal-h b{font-size:15px}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal-g i{font-style:normal;font-size:11px;color:var(--muted);padding:2px 0}
.cal-g span,.cal-g a{display:block;height:36px;line-height:36px;border-radius:10px;font-size:13.5px;font-weight:700;text-decoration:none;color:var(--ink)}
.cal-g a:hover{background:var(--paper-2)}
.cal-g .half{background:var(--info-bg,var(--paper-2));color:var(--cobalt)}
.cal-g .on{background:var(--ok);color:#fff}
.cal-g .today{box-shadow:inset 0 0 0 2px var(--gold)}
.cal-lg{display:flex;gap:14px;font-size:11.5px;color:var(--muted);margin-top:8px}
.cal-lg i{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-2px;margin-right:4px}.cal-lg i.on{background:var(--ok)}.cal-lg i.half{background:var(--info-bg,var(--paper-2));border:1px solid var(--line)}

/* 题型专项播放器 */
.qz .stem b{color:var(--cobalt)}
.fillrow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:17px;color:var(--cobalt);font-weight:700}
.inp{font-size:17px;padding:9px 11px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-family:var(--cjk);min-width:120px}
.inp:focus{outline:none;border-color:var(--cobalt)}
.qfb{margin-top:10px;font-weight:800;min-height:24px}.okt{color:var(--ok)}.badt{color:var(--bad)}
.passage{background:var(--paper-2);border-radius:10px;padding:8px 10px;margin:4px 0 12px;font-size:14px;line-height:1.5}
.pl{padding:3px 0}.uzl{display:block;color:var(--cobalt);font-weight:700;cursor:pointer}.zhl{display:block;color:var(--ink-soft);font-size:12.5px}
.gitem .no.ok{background:var(--ok)}.gitem .no.bad{background:var(--bad)}

/* 我的 */
.stat{grid-template-columns:repeat(3,1fr)}
.pbar{flex:1;height:8px;background:var(--paper-2);border-radius:99px;margin:0 12px;overflow:hidden}.pbar i{display:block;height:100%;background:var(--cobalt-2);border-radius:99px}
.qzbtn.danger{color:var(--bad);border-color:var(--bad)}.qzbtn.danger:hover{background:var(--bad);color:#fff}
.setrow .seg{flex-wrap:wrap;justify-content:flex-end}
a.qzbtn{text-decoration:none;display:inline-block}
