:root{--primary: #bf6a3a;--primary-soft: #f6e5d8;--emergency: #cc4f26;--done: #6f8f5e;--ink: #33281f;--bg: #f4ede2;--surface: #fffdf9;--surface-2: #fbf4e8;--border: #efe3d2;--border-strong: #e3d7c4;--muted: #6f6052;--muted-2: #9a8b79;--muted-3: #a99a87;--font: "Nunito", "Noto Sans SC", system-ui, sans-serif;--font-num: "Baloo 2", "Nunito", sans-serif}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.app-main{max-width:480px;margin:0 auto;padding:8px 18px 92px;min-height:100vh}.page>h1{font-size:24px;font-weight:800;margin:14px 2px 4px}.section-title{display:flex;align-items:center;gap:7px;margin:24px 4px 10px;font-size:18px;font-weight:800;color:var(--ink)}.section-title .count{margin-left:auto;font-size:13px;font-weight:800;color:var(--primary)}.hint{color:var(--muted-2);font-size:13.5px;line-height:1.6}.muted-line{color:var(--muted-2);font-weight:700;font-size:14px;margin-top:3px}.bottom-tabs{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;justify-content:space-around;align-items:center;max-width:480px;margin:0 auto;background:#fff;border-top:1px solid #efe6d8;padding:9px 8px calc(10px + env(safe-area-inset-bottom))}.bottom-tabs .tab{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:#bcae9b;font-size:11px;font-weight:700}.bottom-tabs .tab.active{color:var(--primary);font-weight:800}.tag-pill{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:800;padding:3px 10px;border-radius:999px;white-space:nowrap}.card-list{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:2px 16px}.task-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #f4ebdd;cursor:pointer}.task-item:last-child{border-bottom:none}.task-item input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;flex:none;width:24px;height:24px;border-radius:8px;border:2px solid #d8cbb8;background:#fff;cursor:pointer;position:relative;transition:.15s}.task-item input[type=checkbox]:checked{background:var(--done);border-color:var(--done)}.task-item input[type=checkbox]:checked:after{content:"";position:absolute;left:7px;top:3px;width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.task-body{flex:1;min-width:0}.task-title{font-size:16.5px;font-weight:600;color:var(--ink)}.task-item.done .task-title{color:#b3a594;text-decoration:line-through}.task-tags{margin-top:7px}.tip-card{background:var(--surface-2);border:1px solid var(--border);border-radius:20px;padding:16px;margin:10px 0}.tip-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.tip-head .tip-title{font-size:14.5px;font-weight:800;color:#a17c1f}.tip-card p{margin:0;font-size:14px;line-height:1.65;color:var(--muted)}.today-greet{display:flex;justify-content:space-between;align-items:center;padding:12px 2px 8px}.today-greet .hello{font-size:13px;color:var(--muted-2);font-weight:700}.today-greet .line{font-size:21px;font-weight:800;color:var(--ink);margin-top:2px}.today-greet .avatar{width:42px;height:42px;border-radius:14px;background:#e7d8c2;display:flex;align-items:center;justify-content:center;flex:none;color:#a07b52}.hero{background:var(--surface);border-radius:24px;padding:20px;border:1px solid var(--border);box-shadow:0 8px 22px #965a2812}.hero .stage-pill{display:inline-flex;align-items:center;gap:5px;background:var(--primary-soft);color:#c4703f;font-size:12.5px;font-weight:800;padding:4px 10px;border-radius:999px}.hero .stage-title{font-size:22px;font-weight:800;color:var(--ink);margin-top:10px}.hero .counter-row{display:flex;align-items:flex-end;justify-content:space-between;margin-top:14px}.hero .counter-main{display:flex;align-items:baseline;gap:6px}.hero .counter-label{font-size:13px;color:var(--muted-2);font-weight:700}.hero .counter-num{font-family:var(--font-num);font-size:52px;font-weight:800;color:var(--primary);line-height:.9}.hero .counter-unit{font-size:17px;font-weight:800;color:var(--primary)}.hero .counter-side{text-align:right}.hero .counter-side .big{font-size:15px;font-weight:800;color:var(--ink)}.hero .counter-side .sub{font-size:12px;color:var(--muted-2);font-weight:700}.progress{margin-top:14px}.progress .bar{height:9px;border-radius:999px;background:#efe3d2;overflow:hidden}.progress .fill{height:100%;border-radius:999px;background:var(--primary);transition:width .4s}.progress .ticks{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:var(--muted-3);font-weight:700}.hero .set-due{margin-top:14px;display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:#fff;font-weight:800;font-size:15px;padding:11px 16px;border-radius:14px;text-decoration:none}@keyframes softpulse{0%,to{box-shadow:0 8px 20px #cc4f263d}50%{box-shadow:0 12px 30px #cc4f266b}}.emergency-card{width:100%;border:none;cursor:pointer;text-align:left;margin:14px 0 0;background:var(--emergency);border-radius:20px;padding:15px 18px;display:flex;align-items:center;gap:14px;animation:softpulse 2.6s ease-in-out infinite}.emergency-card .ec-icon{width:46px;height:46px;border-radius:14px;background:#ffffff29;display:flex;align-items:center;justify-content:center;flex:none;color:#fff}.emergency-card .ec-body{flex:1;min-width:0}.emergency-card .ec-title{display:block;font-size:17px;font-weight:900;color:#fff}.emergency-card .ec-sub{display:block;font-size:12.5px;font-weight:700;color:#ffe6da;margin-top:2px}.emergency-card .ec-chev{color:#fff;flex:none}.lookahead-list{display:flex;flex-direction:column;gap:10px}.lookahead-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:13px 15px;display:flex;align-items:center;gap:11px;cursor:pointer}.lookahead-card .la-icon{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:none}.lookahead-card .la-title{flex:1;font-size:15.5px;font-weight:700;color:var(--ink)}.lookahead-card.done .la-title{color:#b3a594;text-decoration:line-through}.timeline{position:relative;list-style:none;margin:16px 4px 0;padding:0 0 8px}.timeline:before{content:"";position:absolute;left:17px;top:16px;bottom:16px;width:2px;background:#e7d9c4}.tl-row{position:relative;display:flex;gap:16px;padding-bottom:16px}.tl-row a{flex:1;text-decoration:none}.tl-node{width:36px;height:36px;border-radius:999px;flex:none;display:flex;align-items:center;justify-content:center;z-index:1;box-shadow:0 0 0 4px var(--bg)}.tl-node.done{background:var(--done);color:#fff}.tl-node.current{background:var(--primary);color:#fff;animation:ringpulse 2.2s ease-out infinite}.tl-node.upcoming{background:var(--bg);border:2px solid #d8cbb8}@keyframes ringpulse{0%,to{box-shadow:0 0 #bf6a3a4d,0 0 0 4px var(--bg)}50%{box-shadow:0 0 0 7px #bf6a3a00,0 0 0 4px var(--bg)}}.tl-card{background:#fcf7ee;border:1px solid #ede3d2;border-radius:16px;padding:13px 15px}.tl-card.done{opacity:.82}.tl-card.current{background:var(--surface);border:1.5px solid #e8c4a8;border-radius:18px;padding:15px 16px;box-shadow:0 8px 22px #965a281a}.tl-card.upcoming{background:#fcf9f3;border:1px dashed #ddd0bc}.tl-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.tl-name{font-size:16px;font-weight:800;color:var(--ink)}.tl-card.done .tl-name,.tl-card.upcoming .tl-name{color:#8d7d6c}.tl-card.current .tl-name{font-size:17px;font-weight:900}.tl-range{font-size:13px;color:var(--muted-2);font-weight:700;margin-top:3px}.tl-badge{font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap}.tl-badge.done{color:var(--done);background:transparent}.tl-badge.current{color:#fff;background:var(--primary)}.tl-badge.upcoming{color:#bcae9b;background:transparent}.stage-sub{color:var(--muted-2);font-weight:700;font-size:14px;margin:2px 2px 6px}.step-flow{position:relative;list-style:none;margin:14px 4px 0;padding:0}.step-flow:before{content:"";position:absolute;left:18px;top:14px;bottom:14px;width:2px;background:#e7d9c4}.step-row{position:relative;display:flex;gap:16px;padding-bottom:18px}.step-node{width:38px;height:38px;border-radius:999px;flex:none;z-index:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border:none;background:var(--primary);color:#fff;font-family:var(--font-num);font-size:18px;font-weight:800;box-shadow:0 0 0 4px var(--bg)}.step-row.done .step-node{background:var(--done)}.step-content{padding-top:3px;flex:1;min-width:0}.step-title{font-size:16px;font-weight:800;color:var(--ink)}.step-row.done .step-title{color:#b3a594;text-decoration:line-through}.step-body{margin:3px 0 0;font-size:14px;color:var(--muted);line-height:1.55}.field-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:16px;margin:12px 0}.field-card label{display:block;font-size:14px;font-weight:800;color:var(--muted-2);margin-bottom:8px}.field-card input[type=date]{width:100%;font-family:var(--font);font-size:17px;font-weight:700;color:var(--ink);border:1.5px solid var(--border-strong);border-radius:12px;padding:11px 12px;background:#fff}.add-custom{display:flex;gap:8px;margin-top:12px}.add-custom input{flex:1 1 0;min-width:0;width:100%;font-family:var(--font);font-size:15px;border:1.5px solid var(--border-strong);border-radius:12px;padding:11px 12px;background:#fff}.add-custom button{flex:none;white-space:nowrap;border:none;background:var(--primary);color:#fff;font-weight:800;font-size:15px;padding:0 16px;border-radius:12px;cursor:pointer}.add-custom button:disabled{background:#e3d7c4;color:#a08a72;cursor:default}.block-btn{width:100%;border:none;background:var(--primary);color:#fff;font-weight:800;font-size:15px;padding:12px;border-radius:12px;cursor:pointer}.block-btn.ghost{background:transparent;color:#a08a72;border:1.5px solid var(--border-strong)}.custom-item{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:8px}.custom-item-title{flex:1;min-width:0;font-weight:600}.custom-item-del{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:10px;background:transparent;color:#bcae9b;cursor:pointer}.custom-item-del:hover{background:#f7e2e3;color:var(--emergency)}.empty-note{color:var(--muted-2);font-weight:700;padding:12px 2px}.form-error{margin-top:10px;color:var(--emergency);font-size:13px;font-weight:700;line-height:1.55}
