:root{--bg:#f7f1e7;--card:#fffaf2;--ink:#1f1b16;--muted:#786d61;--line:#e5d7c5;--brand:#111827;--accent:#c0560a;--green:#0f766e;--blue:#2563eb;--yellow:#a16207;--red:#b91c1c;--shadow:0 14px 34px rgba(33,24,13,.12);--radius:26px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;background:linear-gradient(180deg,#fff7ec 0%,var(--bg) 55%,#efe5d6 100%);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{min-height:100dvh;max-width:760px;margin:0 auto;padding-bottom:92px}.app-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 18px 14px;background:rgba(247,241,231,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(229,215,197,.7)}.hello{font-size:13px;color:var(--muted);margin:0 0 3px;font-weight:800}h1{margin:0;font-size:30px;letter-spacing:-1px}h2,h3,p{margin:0}.round-btn{width:54px;height:54px;border:0;border-radius:19px;background:var(--accent);color:white;font-size:28px;font-weight:900;box-shadow:var(--shadow)}.content{padding:16px;display:grid;gap:14px}.card{background:rgba(255,250,242,.96);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.hero-card{background:linear-gradient(135deg,#111827,#3f2b1d);color:white;border:0}.hero-card .muted,.hero-card .item-meta{color:rgba(255,255,255,.72)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.primary,.ghost,.danger{border:0;border-radius:16px;padding:11px 13px;font-weight:900;cursor:pointer}.primary{background:var(--accent);color:white}.ghost{background:white;color:var(--muted);border:1px solid var(--line)}.danger{background:#fee2e2;color:var(--red)}.small{padding:8px 10px;font-size:13px}.ghost.active-mode{background:#f59e0b;color:white;border-color:#f59e0b}.list,.table-list{display:grid;gap:10px}.item{background:white;border:1px solid var(--line);border-radius:19px;padding:13px}.item.done{opacity:.58}.item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.item-title{font-weight:900;font-size:16px;line-height:1.35}.item-meta{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.45}.preview{white-space:pre-wrap;color:#51463b;line-height:1.5;max-height:140px;overflow:hidden;margin-top:8px}.actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.empty{color:var(--muted);text-align:center;padding:24px 0}.progress-wrap{background:rgba(17,24,39,.12);height:14px;border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:var(--accent);border-radius:999px;width:0%}.hero-card .progress-wrap{background:rgba(255,255,255,.18)}.hero-card .progress-bar{background:#fffaf2}.pill{display:inline-flex;white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900;background:#f3f4f6;color:#374151}.pill.ok{background:#dcfce7;color:#166534}.pill.blue{background:#dbeafe;color:#1d4ed8}.pill.yellow{background:#fef3c7;color:#92400e}.pill.red{background:#fee2e2;color:#b91c1c}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,250,242,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line);z-index:20}.nav-btn{border:0;background:transparent;border-radius:18px;padding:8px 4px;color:var(--muted);font-weight:900;font-size:12px;display:grid;place-items:center;gap:3px}.nav-btn span{font-size:22px;line-height:1}.nav-btn.active{background:#efe3d3;color:#111827}.quick-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0}.mode-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 12px;color:var(--muted);font-size:13px;font-weight:800}.task-line{display:flex;gap:10px;align-items:flex-start}.task-line input[type="checkbox"]{width:24px;height:24px;margin-top:3px;accent-color:var(--accent)}.task.important{border-color:#f59e0b;background:#fff8df;box-shadow:0 8px 22px rgba(245,158,11,.18)}.grow{flex:1}.mt{margin-top:12px}input,select,textarea{width:100%;border:1px solid var(--line);background:white;border-radius:17px;padding:12px 13px;outline:none;color:var(--ink)}textarea{min-height:110px;line-height:1.55;resize:vertical}dialog{border:0;border-radius:26px;padding:0;background:transparent;width:min(620px,calc(100vw - 20px))}dialog::backdrop{background:rgba(0,0,0,.36)}.modal-card{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:18px;box-shadow:var(--shadow);max-height:86dvh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.icon-btn{border:0;background:#eee1d0;border-radius:14px;width:36px;height:36px;font-size:22px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.field{margin:10px 0}.field label{display:block;font-size:13px;font-weight:900;color:var(--muted);margin-bottom:6px}.big-points{font-size:56px;font-weight:1000;letter-spacing:-2px;margin:8px 0;color:var(--accent)}.big-points span{font-size:18px;margin-left:4px;color:var(--muted)}.stamp-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:8px;margin-top:14px}.stamp{aspect-ratio:1;border-radius:999px;border:1px solid #d6c6b3;background:#fffaf2;color:#43372d;font-weight:900}.stamp.filled{background:#f59e0b;color:white;border-color:#f59e0b;box-shadow:0 4px 10px rgba(245,158,11,.25)}.milestones{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.mile{background:white;border:1px solid var(--line);border-radius:18px;padding:12px;text-align:center;color:var(--muted)}.mile b{display:block;font-size:21px;color:var(--ink)}.mile.unlocked{background:#fff7d6;border-color:#eab308}.mile.unlocked b{color:#a16207}.belt-flow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.belt{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid #c7b7a4;padding:4px 10px;font-weight:900;font-size:12px}.belt.white{background:white;color:#111827}.belt.yellow{background:#fde047;color:#422006}.belt.orange{background:#fb923c;color:#431407}.belt.green{background:#22c55e;color:#052e16}.belt.blue{background:#2563eb;color:white}.belt.brown{background:#92400e;color:white}.belt.black{background:#111827;color:white}.belt-rules{background:linear-gradient(180deg,#fffaf2,#eef6ff)}.goal-grid{display:grid;grid-template-columns:1fr;gap:10px}.goal-mini{width:100%;display:grid;gap:5px}.goal-mini b{font-size:15px}.goal-mini span{font-size:12px;color:var(--muted);font-weight:800}.score-live{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#111827;color:white;border-radius:18px;padding:14px;margin:12px 0}.score-live b{font-size:30px;letter-spacing:-1px}.score-live span{font-size:13px;font-weight:900;color:#fde68a;text-align:right}.score-grid{display:grid;gap:8px}.score-grid .field{display:grid;grid-template-columns:1.2fr 1fr auto;align-items:center;gap:8px;margin:6px 0}.score-grid .field label{margin:0}.score-grid input[type=range]{padding:0}.score-grid b{min-width:24px;text-align:center;color:var(--accent)}.backup-box{display:grid;gap:12px}@media(min-width:520px){.goal-grid{grid-template-columns:repeat(2,1fr)}.score-grid{grid-template-columns:1fr 1fr}.score-grid .field{grid-template-columns:1fr}.score-grid .field label{margin-bottom:3px}}@media(max-width:430px){.stamp-grid{gap:5px}.stamp{font-size:11px}.big-points{font-size:48px}}@media(min-width:761px){.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}.content{padding:20px}}/* v7 compact tasks + mainline progress log */
.task.compact{padding:10px 11px}.task.compact .task-line{align-items:flex-start}.task-title-row{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}.task-title-row .item-title{font-size:15px;line-height:1.35;word-break:break-word}.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:190px}.task.compact .small{padding:7px 9px}.task-note{margin-top:5px;color:var(--muted);font-size:13px}.task-note summary{cursor:pointer;font-weight:800}.task-note div{white-space:pre-wrap;line-height:1.45;margin-top:5px;color:#51463b}.mainline-item{background:rgba(255,255,255,.96)}.mainline-stats{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:13px;color:var(--muted);font-weight:900}.mainline-stats b{font-size:18px;color:var(--ink)}.hero-card .mainline-stats,.hero-card .mainline-stats b{color:#fff}.mini-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.mini-acts span{font-size:12px;font-weight:800;border:1px solid rgba(120,109,97,.22);background:#fffaf2;color:#51463b;border-radius:999px;padding:5px 8px}.activity-list{display:grid;gap:8px}.activity-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;background:white;border:1px solid var(--line);border-radius:16px;padding:10px 12px}.activity-row>b{color:var(--accent);font-size:20px}.activity-row div div{font-weight:900}.activity-row span{font-size:12px;color:var(--muted);font-weight:800}@media(max-width:430px){.task-actions{max-width:92px}.task-actions .small{font-size:12px;padding:6px 7px}.task-line input[type="checkbox"]{width:22px;height:22px}.task.compact{padding:9px}.task-title-row{display:block}.task-title-row .pill{margin-top:4px}.mainline-stats{display:grid;grid-template-columns:1fr 1fr;gap:4px}.mainline-stats span:last-child{grid-column:1/-1}}


/* v8.1 usability fixes */
.hero-card .mainline-item{color:var(--ink)}
.hero-card .mainline-item .item-meta{color:var(--muted)}
.hero-card .mainline-item .mainline-stats,.hero-card .mainline-item .mainline-stats b{color:var(--ink)}
.hero-card .mainline-item .progress-wrap{background:rgba(17,24,39,.12)}
.hero-card .mainline-item .progress-bar{background:var(--accent)}
.activity-row.minus>b{color:var(--red)}
.full-log{max-height:62dvh;overflow:auto;padding-right:2px}
.stamp-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}
.stamp{width:100%;min-width:0;padding:0;font-size:clamp(10px,2.8vw,14px)}
.compact-rules{padding:12px 14px;background:#fffaf2}
.compact-rules summary{display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer;list-style:none}
.compact-rules summary::-webkit-details-marker{display:none}
.compact-rules summary b{font-size:16px}
.compact-rules summary span{font-size:12px;color:var(--muted);font-weight:800;text-align:right}
.compact-rules .belt-flow{gap:5px;margin-top:8px}
.compact-rules .belt{font-size:11px;padding:3px 7px}
@media(max-width:430px){.stamp-grid{gap:4px}.milestones{gap:8px}.mile{padding:10px 6px}.mile b{font-size:18px}.content{padding-left:14px;padding-right:14px}.card{padding:16px}.compact-rules{padding:10px 12px}}
