body { font-family: system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; max-width: 900px; margin: 0 auto; padding: 24px; background: #f4f5f7; color: #1a1a1a; line-height: 1.5; }
header h1 { margin: 0; } .subtitle { font-size: 18px; color: #555; } .tagline { color: #555; margin: 4px 0 16px; }
.demo-badge { background: #fff3cd; border: 1px solid #e6c87a; padding: 8px 12px; border-radius: 8px; }
#summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 16px 0; }
.card { background: #fff; border-radius: 12px; padding: 14px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.label { color: #666; font-size: 13px; } .total { font-size: 20px; font-weight: 700; margin-top: 4px; word-break: break-word; }
section { background: #fff; border-radius: 12px; padding: 16px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
section[aria-label="筛选"] { padding: 12px 16px; }
form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
form label { display: flex; flex-direction: column; font-size: 14px; gap: 4px; }
input, select, button { font-size: 15px; padding: 8px 10px; border-radius: 8px; border: 1px solid #ccc; }
button { cursor: pointer; background: #1a73e8; color: #fff; border: none; }
button:hover { opacity: .9; } .filterBtn { background: #eee; color: #222; } .filterBtn.active { background: #1a73e8; color: #fff; }
.filters { display: flex; gap: 8px; }
#subList { list-style: none; padding: 0; margin: 0; }
.sub-row { display: flex; justify-content: space-between; gap: 12px; padding: 12px; border-bottom: 1px solid #eee; align-items: center; }
.sub-row.overdue { border-left: 6px solid #d93025; } .sub-row.soon { border-left: 6px solid #f9ab00; } .sub-row.paused { opacity: .55; }
.sub-name { font-weight: 700; } .sub-meta { color: #555; font-size: 14px; } .sub-days { font-weight: 700; } .sub-days.overdue { color: #d93025; } .sub-days.soon { color: #b06000; }
.row-actions button { background: #eee; color: #222; margin-left: 6px; font-size: 13px; padding: 6px 8px; }
.row-actions button.danger { background: #fdecea; color: #a50e0e; }
.error { color: #a50e0e; } .empty { text-align: center; color: #555; } .hint { font-size: 13px; color: #666; font-weight: 400; }
footer { text-align: center; color: #666; font-size: 13px; } footer button { background: #eee; color: #222; margin: 0 4px; }
@media (max-width: 700px) { #summary { grid-template-columns: repeat(2, 1fr); } form { grid-template-columns: 1fr; } .sub-row { flex-direction: column; align-items: flex-start; } }
