/* 教师学时自查 · 应用样式 */
:root { --acc:#C2410C; --acc-d:#9A3412; --acc-soft:rgba(194,65,12,.09); --acc-fg:#fff; }
:root[data-theme="light"] { --acc:#C2410C; --acc-d:#9A3412; --acc-soft:rgba(194,65,12,.09); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) {
  --acc:#C2410C; --acc-d:#9A3412; --acc-soft:rgba(194,65,12,.09);
} }
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body { background:var(--bg); color:var(--text); font-family:var(--font); font-size:14px; line-height:1.6; -webkit-tap-highlight-color:transparent; }
button { font-family:var(--font); cursor:pointer; }
.wrap { max-width:520px; margin:0 auto; min-height:100dvh; display:flex; flex-direction:column; }
@media(min-width:960px){ body{ background:linear-gradient(180deg,#F0EDE9,var(--bg)); } .wrap{ box-shadow:0 0 0 1px var(--line),0 10px 40px rgba(0,0,0,.06); } }
.appbar { background:linear-gradient(135deg,var(--acc),var(--acc-d)); color:var(--acc-fg); padding:18px 18px 16px; }
.appbar h1 { margin:0; font-size:19px; font-weight:800; letter-spacing:.5px; }
.appbar .row { display:flex; align-items:center; gap:10px; }
.appbar .bs { font-size:12px; opacity:.88; margin-top:3px; }
.iconbtn { background:rgba(255,255,255,.16); color:#fff; border:0; border-radius:10px; padding:7px 10px; font-size:13px; font-weight:700; }
.iconbtn.plain { background:transparent; border:1.5px solid rgba(255,255,255,.55); }
.main { padding:14px; flex:1; }
.h { font-size:13px; color:var(--t2); font-weight:800; margin:16px 0 8px; }
.h:first-child { margin-top:0; }
.card { background:var(--island); border-radius:14px; padding:13px 14px; margin-bottom:10px; box-shadow:0 1px 3px rgba(0,0,0,.05); }
.cdcard { background:var(--island); border-radius:16px; padding:14px 16px; margin-bottom:6px; box-shadow:0 1px 3px rgba(0,0,0,.05); display:flex; align-items:center; gap:14px; }
.cdcard .big { font-size:38px; font-weight:800; color:var(--acc-d); font-family:var(--mono); line-height:1; }
.cdcard .big small { font-size:13px; color:var(--t3); margin-left:2px; }
.cdcard .k { font-size:12px; color:var(--t3); margin-top:4px; }
.cdcard .right { margin-left:auto; text-align:right; }
.pctwrap { margin:4px 0 10px; }
.pct { font-size:12px; color:var(--t2); margin-bottom:4px; }
.pbar { height:8px; border-radius:4px; background:var(--island-2); overflow:hidden; }
.pbar i { display:block; height:100%; background:linear-gradient(90deg,var(--acc),var(--acc-d)); border-radius:4px; }
.status { display:inline-block; font-size:12px; font-weight:800; border-radius:16px; padding:4px 12px; }
.status.done { background:var(--ok-soft,rgba(20,127,71,.12)); color:var(--ok,#147F47); }
.status.risk { background:rgba(194,65,12,.12); color:var(--acc-d); }
.status.warn { background:rgba(154,99,0,.14); color:#8A5A00; }
.catline { display:flex; align-items:center; gap:10px; font-size:13px; padding:8px 0; border-top:1px solid var(--line); }
.catline:first-of-type { border-top:0; }
.catline .n { flex:1; overflow-wrap:anywhere; }
.catline .g { font-family:var(--mono); font-weight:700; }
.catline .g.bad { color:var(--acc-d); }
.catline .unset { color:var(--t3); font-size:11px; }
.lbl { font-size:12.5px; color:var(--t2); font-weight:700; margin:14px 0 6px; }
.lbl:first-child { margin-top:0; }
.input, .select { border:1px solid var(--line-2); border-radius:10px; padding:10px 12px; font-size:15px; background:var(--island); color:var(--text); outline:none; font-family:var(--font); width:100%; }
.input:focus, .select:focus { border-color:var(--acc); }
.row2 { display:flex; gap:8px; }
.row2 .input { flex:1; min-width:0; }
.chip { font-size:13px; border-radius:16px; padding:6px 12px; background:var(--island); border:1px solid var(--line-2); color:var(--t2); display:inline-block; margin:0 6px 6px 0; }
.chip b { font-family:var(--mono); }
.err { color:var(--bad); font-size:12.5px; margin-top:6px; }
.notice { font-size:12.5px; color:var(--t3); margin-top:8px; }
.bigbtn { display:block; width:100%; border:0; border-radius:14px; background:linear-gradient(135deg,var(--acc),var(--acc-d)); color:var(--acc-fg); font-size:16px; font-weight:800; padding:13px; margin-top:14px; box-shadow:0 8px 20px rgba(194,65,12,.3); }
.ghostbtn { display:block; width:100%; border:1.5px solid var(--acc); background:var(--island); color:var(--acc-d); border-radius:14px; font-size:14.5px; font-weight:700; padding:11px; margin-top:10px; }
.dangerbtn { display:block; width:100%; border:1.5px solid var(--bad); background:var(--island); color:var(--bad); border-radius:14px; font-size:14px; font-weight:700; padding:11px; margin-top:14px; }
.tappable { cursor:pointer; }
.card .nm { font-weight:700; font-size:14.5px; }
.card .one { font-size:12px; color:var(--t3); margin-top:2px; }
.card .ic { width:40px; height:40px; border-radius:12px; background:var(--acc-soft); display:flex; align-items:center; justify-content:center; font-size:20px; flex:none; }
.card .go { margin-left:auto; color:var(--acc); font-weight:800; flex:none; }
.foot { text-align:center; font-size:11px; color:var(--t3); padding:12px 0 4px; }
.foot a { color:var(--acc-d); }
.source { font-size:11px; color:var(--t3); background:var(--island-2); border-radius:10px; padding:7px 10px; margin-bottom:10px; }
.printarea { background:var(--island); border:1px dashed var(--line-2); border-radius:12px; padding:14px; margin-top:10px; }
.printarea .p-hd { text-align:center; font-weight:800; font-size:15px; margin-bottom:8px; }
.printarea .pl { display:flex; justify-content:space-between; font-size:12.5px; padding:5px 0; border-bottom:1px solid #DDD; }
.toast { position:fixed; left:50%; bottom:80px; transform:translateX(-50%); background:#16171B; color:#fff; font-size:13px; border-radius:22px; padding:9px 18px; z-index:99; max-width:86vw; text-align:center; }
.scrim { position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:50; display:flex; align-items:center; justify-content:center; padding:20px; }
.dialog { background:var(--island); border-radius:16px; padding:20px; max-width:340px; width:100%; }
.dialog h3 { margin:0 0 8px; font-size:16px; }
.dialog p { margin:0 0 16px; font-size:13.5px; color:var(--t2); }
.dialog .dops { display:flex; gap:10px; }
.dialog .dops button { flex:1; border-radius:10px; padding:10px; font-size:14px; font-weight:700; border:1px solid var(--line-2); background:var(--island); color:var(--t2); }
.dialog .dops .ok { border:0; background:var(--acc); color:var(--acc-fg); }
[hidden] { display:none !important; }
@media print {
  body * { visibility:hidden; }
  .printarea, .printarea * { visibility:visible; }
  .printarea { position:absolute; left:0; top:0; width:100%; border:0; }
  .printarea .pl { border-bottom-color:#999; }
}
@media print { body:not(:has(.printarea)) * { visibility:visible; } }

#pout { margin-top: 16px; }
.pnote { font-size:12.5px; color:var(--t2); margin-top:10px; line-height:1.8; }
.bt { font-size:19px; font-weight:800; letter-spacing:.5px; }
