:root{
  --bg:#f4f6fb; --card:#fff; --ink:#1f2533; --sub:#8a93a6;
  --brand:#2f6fed; --brand-soft:#e8f0ff; --ok:#1aa179; --warn:#e0a800;
  --line:#eceff5; --radius:14px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--ink);font-size:15px;padding-bottom:24px}
.topbar{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line);
  padding:12px 16px;display:flex;justify-content:space-between;align-items:baseline}
.topbar .title{font-weight:700;font-size:18px}
.topbar .date{color:var(--sub);font-size:13px}
.composer{margin:12px;background:var(--card);border-radius:var(--radius);padding:12px;
  box-shadow:0 2px 10px rgba(20,40,80,.04)}
.composer textarea{width:100%;border:none;resize:none;font-size:15px;outline:none;line-height:1.5}
.composer-actions{display:flex;gap:8px;margin-top:8px}
.btn{border:none;border-radius:10px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}
.btn.primary{background:var(--brand);color:#fff}
.btn.ghost{background:var(--brand-soft);color:var(--brand)}
.preview{margin-top:10px;border-top:1px dashed var(--line);padding-top:10px}
.preview .pv{background:var(--brand-soft);border-radius:10px;padding:8px 10px;margin-bottom:6px;font-size:14px}
.preview .pv b{color:var(--brand)}
.hidden{display:none!important}
.board-chips{display:flex;gap:8px;overflow-x:auto;padding:0 12px 4px;scrollbar-width:none}
.board-chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;
  padding:6px 14px;font-size:13px;color:var(--sub);cursor:pointer}
.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.seg{display:flex;gap:6px;margin:10px 12px}
.seg-btn{flex:1;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px;
  font-size:14px;color:var(--sub);cursor:pointer}
.seg-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
main{padding:0 12px}
.group{margin-top:14px}
.group h3{font-size:14px;color:var(--sub);margin:0 0 8px;font-weight:600}
.task-list{display:flex;flex-direction:column;gap:8px}
.task{background:var(--card);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:6px;
  box-shadow:0 2px 10px rgba(20,40,80,.04);border-left:4px solid var(--brand)}
.task.pri-high{border-left-color:#e5484d}
.task.pri-urgent{border-left-color:#b3001b}
.task.done{opacity:.55}
.task .t-top{display:flex;justify-content:space-between;align-items:center}
.task .t-title{font-weight:600;font-size:15px}
.task .t-meta{color:var(--sub);font-size:12px}
.task .t-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand)}
.task .t-ai{background:#fff7e6;border-radius:10px;padding:8px;font-size:13px;white-space:pre-wrap;color:#5b4a2a}
.task .t-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.mini{border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer;color:var(--ink)}
.mini.ok{color:var(--ok);border-color:#bfe9da}
.mini.warn{color:var(--warn);border-color:#f3e2b0}
.mini.del{color:#e5484d;border-color:#f3c9cb}
.empty{color:var(--sub);font-size:13px;text-align:center;padding:16px}
.tip{text-align:center;color:var(--sub);font-size:11px;margin-top:20px}
.empty.hidden,.preview.hidden{display:none}
