:root{--accent:#6366f1;--accent-soft:#eef2ff;--accent-strong:#4f46e5;--accent-light:#6366f11a;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--text:#475569;--text-h:#0f172a;--text-light:#94a3b8;--bg:#fff;--bg-soft:#f8fafc;--border:#e2e8f0;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 32px #0000001a;--shadow-accent:0 4px 16px #6366f14d;--radius-xs:8px;--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-full:9999px;--transition-fast:.15s ease;--transition-base:.25s ease;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--heading:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:ui-monospace, Consolas, "SF Mono", monospace;font:18px/145% var(--sans);letter-spacing:-.01em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--accent:#818cf8;--accent-soft:#1e1b4b;--accent-strong:#6366f1;--accent-light:#818cf826;--success:#34d399;--warning:#fbbf24;--danger:#f87171;--text:#94a3b8;--text-h:#f1f5f9;--text-light:#64748b;--bg:#0f172a;--bg-soft:#1e293b;--border:#334155}}body{letter-spacing:-.01em;margin:0}#root{border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);letter-spacing:-.02em;font-weight:600}h1{margin:0;font-size:32px}h2{margin:0 0 8px;font-size:20px;line-height:130%}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--bg-soft);padding:4px 8px;font-size:15px;line-height:135%}@keyframes flash-success{0%{background:var(--bg)}30%{background:#10b9811a}to{background:var(--bg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes check-bounce{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes collapse-out{0%{height:var(--item-height,60px);opacity:1;margin-bottom:12px}to{opacity:0;height:0;margin-bottom:0}}@keyframes tab-fade-in{0%{opacity:0}to{opacity:1}}@keyframes check-stroke{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes strikethrough{0%{opacity:1;text-decoration:none}to{opacity:.5;text-decoration:line-through}}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;margin:0;padding:0}body{overscroll-behavior-x:none;width:100%;margin:0;padding:0}:root{--bg:#fff;--card-bg:#fff;--text:#3a3a3c;--text-light:#86868b;--text-h:#1d1d1f;--border:#e5e5ea;--accent:#1b7a3d;--accent-light:#e8f5ec;--success:#34c759;--success-light:#d1fae5;--danger:#ef4444;--danger-light:#fee2e2;--shadow:0 0 0 .5px #0000000a, 0 2px 8px #0000000a;--shadow-lg:0 8px 32px #0000001f;--radius:16px;--radius-sm:8px;--input-bg:#f9fafb;--bg-soft:#f2f2f7;--bg-secondary:#f9fafb;--accent-soft:#edf7ee;--accent-strong:#134a28;--shadow-sm:0 0 0 .5px #0000000a, 0 2px 8px #0000000a;--shadow-md:0 8px 32px #0000001f;--radius-xs:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--transition-fast:.15s ease;--transition-base:.25s ease}.global-exp-card{border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);align-items:center;gap:20px;margin-bottom:32px;padding:24px;display:flex}.exp-icon{color:#92400e;flex-shrink:0}.exp-content{flex:1}.level-text{color:#78350f;margin:0 0 12px;font-size:18px;font-weight:600}.exp-bar-container{align-items:center;gap:12px;display:flex}.exp-bar{background:#fde68a;border-radius:5px;flex:1;height:10px;overflow:hidden}.exp-fill{background:linear-gradient(90deg,#f59e0b,#d97706);border-radius:5px;height:100%;transition:width .3s}.exp-text{color:#78350f;font-size:14px;font-weight:600}.section{background:#f2f2f7;min-height:100dvh;padding:16px 16px 100px}.section-title{color:var(--text-h);align-items:center;gap:8px;margin:0 0 20px;font-size:18px;font-weight:600;display:flex}.task-card{background:var(--card-bg);border-radius:var(--radius-sm);box-shadow:var(--shadow);margin-bottom:12px;padding:16px}.task-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.task-title{margin:0;font-size:16px;font-weight:600}.task-steps{margin:0;padding:0;list-style:none}.task-step{align-items:center;gap:12px;padding:8px 0;display:flex}.step-checkbox{border:2px solid var(--border);cursor:pointer;width:20px;height:20px;color:var(--text-light);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.step-checkbox:hover{color:var(--success);border-color:var(--success)}.more-steps{color:var(--text-light);padding:8px 0 0 32px;font-size:13px}.empty-icon{color:var(--text-light);margin-bottom:16px}.add-goal-btn{border:2px dashed var(--border);width:100%;color:var(--text-light);border-radius:var(--radius);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:16px;font-size:16px;font-weight:600;transition:all .2s;display:flex}.add-goal-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.fab-btn{bottom:calc(56px + env(safe-area-inset-bottom,0px) + 20px);color:#fff;cursor:pointer;width:52px;height:52px;transition:transform var(--transition-base);z-index:200;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:9999px;justify-content:center;align-items:center;display:flex;position:fixed;right:20px;box-shadow:0 4px 16px #10b98159}.fab-btn svg{width:28px;height:28px}.fab-btn:active{transition:transform .1s;transform:scale(.92)}.fab-btn.active{transform:rotate(45deg)}.fab-btn:hover{box-shadow:0 6px 24px #1a5c3380}.fab-panel-overlay{z-index:950;background:#0f172a4d;position:fixed;inset:0}.fab-panel{right:20px;bottom:calc(90px + env(safe-area-inset-bottom));background:var(--card-bg);width:240px;box-shadow:var(--shadow-lg);z-index:98;border-radius:16px;flex-direction:column;gap:8px;padding:12px;animation:.25s panel-scale-in;display:flex;position:fixed}@keyframes panel-scale-in{0%{opacity:0;transform:scale(.85)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes fab-panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fab-panel-item{cursor:pointer;text-align:left;opacity:0;background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;width:100%;height:52px;padding:0 12px;transition:background .15s;animation:.2s forwards fabItemIn;display:flex;transform:translateY(8px)}.fab-panel-item:first-child{animation-delay:0s}.fab-panel-item:nth-child(2){animation-delay:50ms}.fab-panel-item:nth-child(3){animation-delay:.1s}.fab-panel-item:nth-child(4){animation-delay:.15s}@keyframes fabItemIn{to{opacity:1;transform:translateY(0)}}.fab-panel-item:hover{background:var(--bg-soft)}.fab-panel-item.highlighted{background:var(--accent-soft)}.fab-panel-item-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.fab-panel-item-icon.todo{color:#fff;background:#1a5c33}.fab-panel-item-icon.task{color:#fff;background:#8b5cf6}.fab-panel-item-icon.progress{color:#fff;background:#10b981}.fab-panel-icon{text-align:center;width:28px;font-size:20px}.fab-panel-content{flex-direction:column;gap:2px;display:flex}.fab-panel-title{color:var(--text-h);font-size:14px;font-weight:500}.fab-panel-desc{color:var(--text-light);font-size:11px}.today-record-btn{align-items:center;gap:6px;display:flex}.section-subtitle{color:var(--text-light);margin:-12px 0 16px;font-size:14px;font-weight:500}.exp-info{color:var(--text-light);cursor:pointer;vertical-align:middle;align-items:center;margin-left:8px;display:inline-flex}.exp-info:hover{color:var(--text-h)}.inspiration-library{margin-bottom:32px}.inspiration-header{align-items:center;gap:16px;margin-bottom:20px;display:flex}.inspiration-icon{color:var(--text-light)}.inspiration-title{color:var(--text-h);margin:0 0 4px;font-size:18px;font-weight:600}.inspiration-subtitle{color:var(--text-light);margin:0;font-size:14px}.inspiration-cards{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.inspiration-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:16px;transition:all .2s}.inspiration-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.inspiration-card-type{color:var(--accent);background:var(--accent-light);border-radius:4px;margin-bottom:8px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-block}.inspiration-card-name{color:var(--text-h);margin:0;font-size:14px;font-weight:600}.refresh-btn{border:1px dashed var(--border);width:100%;color:var(--text-light);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.refresh-btn:hover{border-color:var(--accent);color:var(--accent)}.top-level-checkbox{border:2px solid var(--border);cursor:pointer;width:24px;height:24px;color:var(--text-light);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.top-level-checkbox:hover,.top-level-checkbox.checked{border-color:var(--success);color:var(--success)}.goal-title.completed{color:var(--text-light);text-decoration:line-through}.goal-card-title-input{color:var(--text-h);cursor:text;background:0 0;border:none;outline:none;width:100%;padding:0;font-family:inherit;font-size:17px;font-weight:600}.goal-card-title-input:focus{background:var(--bg-soft,#f2f5f0);border-radius:4px;padding:2px 4px}.completed-hint{color:var(--success);margin:8px 0;font-size:14px;font-weight:600}[data-theme=dark]{--bg:#1a1a2e;--card-bg:#25253a;--text:#d1d5db;--text-light:#9ca3af;--text-h:#f3f4f6;--border:#374151;--accent:#5dba76;--accent-light:#1e3a5f;--success:#34d399;--success-light:#064e3b;--danger:#f87171;--danger-light:#7f1d1d;--shadow:0 1px 3px #0000004d, 0 4px 12px #0003;--shadow-lg:0 10px 40px #0006;--input-bg:#1f1f35;--bg-soft:#2d2d45;--bg-secondary:#1f1f35;--accent-soft:#0d2818;--accent-strong:#9dd4a8;--shadow-sm:0 0 0 .5px #0003, 0 2px 8px #00000026;--shadow-md:0 8px 32px #00000040}[data-theme=dark] .global-exp-card{background:linear-gradient(135deg,#3f3f46 0%,#52525b 100%)}[data-theme=dark] .exp-icon,[data-theme=dark] .level-text,[data-theme=dark] .exp-text{color:#fef3c7}[data-theme=dark] .exp-bar{background:#52525b}[data-theme=dark] .exp-fill{background:linear-gradient(90deg,#fbbf24,#f59e0b)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1a1a2e;--card-bg:#25253a;--text:#d1d5db;--text-light:#9ca3af;--text-h:#f3f4f6;--border:#374151;--accent:#5dba76;--accent-light:#1e3a5f;--success:#34d399;--success-light:#064e3b;--danger:#f87171;--danger-light:#7f1d1d;--shadow:0 1px 3px #0000004d, 0 4px 12px #0003;--shadow-lg:0 10px 40px #0006;--input-bg:#1f1f35}:root:not([data-theme=light]) .global-exp-card{background:linear-gradient(135deg,#3f3f46 0%,#52525b 100%)}:root:not([data-theme=light]) .exp-icon,:root:not([data-theme=light]) .level-text,:root:not([data-theme=light]) .exp-text{color:#fef3c7}:root:not([data-theme=light]) .exp-bar{background:#52525b}:root:not([data-theme=light]) .exp-fill{background:linear-gradient(90deg,#fbbf24,#f59e0b)}:root:not([data-theme=light]) .inspiration-card{background:#1f1f35}:root:not([data-theme=light]) .inspiration-card:hover{background:#2a2a40}}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{overscroll-behavior:none;width:100%;margin:0;padding:0;overflow-x:hidden}body{background:var(--bg-soft,#f2f2f7);color:var(--text);min-height:100dvh;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}.app{background:var(--bg-soft,#f2f2f7);flex-direction:column;width:100%;max-width:500px;min-height:100dvh;margin:0 auto;padding:0;display:flex}.app-header{background:var(--bg);justify-content:space-between;align-items:center;height:auto;padding:12px 20px 8px;display:flex;position:static}.app-title{letter-spacing:-.2px;color:var(--text-h);margin:0;font-size:16px;font-weight:600}.theme-toggle{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:10px 14px;font-size:1.25rem;transition:all .2s}.theme-toggle:hover{background:var(--input-bg);transform:scale(1.05)}.header-actions{align-items:center;gap:8px;display:flex}.settings-toggle{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:10px 14px;font-size:1.25rem;transition:all .2s}.settings-toggle:hover{border-color:var(--accent)}.coach-selector{position:relative}.coach-select{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;min-width:140px;padding:8px 12px;font-size:.9rem;transition:all .2s}.coach-select:hover{border-color:var(--accent)}.coach-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-light);outline:none}.app-main{background:var(--bg-soft,#f2f5f0);flex-direction:column;flex:1;min-height:0;display:flex}@keyframes fade-slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes float-anim{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-illustration{width:120px;height:120px;margin-bottom:24px}.empty-state p{color:var(--text);margin:0;font-size:14px;line-height:1.6}.quick-start-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.quick-start-card h4{color:var(--text-h);margin:0 0 6px;font-size:15px;font-weight:600}.quick-start-card p{color:var(--text-light);margin:0;font-size:12px}.empty-hint{color:var(--text-light);margin:0;font-size:13px}@media (width<=640px){.quick-start-cards{grid-template-columns:1fr;gap:10px}.empty-icon{font-size:56px}.modal,.settings-modal,.addgoal-modal,.record-modal,.block-modal,.settings-modal,.reminder-modal,.settings-modal,.reminder-modal,.confirm-modal,.addgoal-modal{background:var(--card-bg);width:min(360px,85vw);max-height:85vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:24px;overflow-y:auto}}.goals-grid{grid-template-columns:1fr;gap:12px;display:grid}.goal-card{background:var(--card-bg);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast);box-sizing:border-box;border-radius:16px;flex-direction:column;align-items:flex-start;width:100%;max-width:100%;margin-bottom:12px;padding:16px;display:flex}.goal-card:hover{box-shadow:var(--shadow-md);box-shadow:var(--shadow-md);transform:translateY(-2px)}[data-theme=dark] .goal-card{background:var(--card-bg);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast);border-radius:16px;margin-bottom:12px;padding:16px}.goal-card:hover{box-shadow:var(--shadow-md);box-shadow:var(--shadow-md);box-shadow:var(--shadow-lg);transform:translateY(-1px)}.goal-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.goal-title{color:var(--text-h);margin:0 0 12px;font-size:17px;font-weight:600;line-height:1.4}.delete-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:4px;font-size:1.2rem;transition:opacity .2s}.delete-btn:hover{opacity:1}.progress-section{margin-bottom:20px}.progress-bar{background:var(--bg-soft);border-radius:var(--radius-full);height:5px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), #5dba76);border-radius:var(--radius-full);height:100%;transition:width .6s}.progress-text{color:var(--text-light);font-size:.85rem}.steps-section{margin-bottom:24px}.step-item:hover{background:var(--bg-soft);background:var(--bg-soft);background:var(--bg-soft)}.step-item:active{background:var(--bg-secondary)}.step-item.deleting{animation:.3s forwards collapse-out}.step-done{opacity:.5;transition:opacity .3s}.step-done .step-text{white-space:normal;word-break:break-word;overflow-wrap:break-word;min-width:0;text-overflow:unset;color:var(--text-h);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:14px;overflow:visible}.step-checkbox{cursor:pointer;align-items:center;display:flex;position:relative}.step-checkbox input{opacity:0;width:0;height:0;position:absolute}.checkmark{border:2px solid var(--border);border-radius:8px;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.step-checkbox input:checked+.checkmark{background:var(--success);border-color:var(--success)}.step-checkbox input:checked+.checkmark .checkmark-icon{stroke-dasharray:24;stroke-dashoffset:0;animation:.3s forwards check-stroke}.checkmark-icon{stroke-dasharray:24;stroke-dashoffset:24px;transition:stroke-dashoffset .3s}.step-checkbox input:checked+.checkmark:after{animation:.3s check-pop;display:block}@keyframes check-pop{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.step-text:focus{background:var(--bg-soft);border-radius:8px;padding:2px 6px}.step-status-dot.today{background:var(--success)}.step-text.overdue{color:#f59e0b}.step-actions{opacity:0;gap:4px;transition:opacity .2s;display:flex}.step-item:hover .step-actions{opacity:1}.focus-btn,.delete-step-btn{cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);opacity:0;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.focus-btn:hover{background:var(--accent-light)}.delete-step-btn{cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);opacity:0;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.step-item:hover .delete-step-btn{opacity:1}.delete-step-btn:hover{background:var(--danger);color:#fff;background:var(--danger-light)}.pin-btn{cursor:pointer;color:var(--text);opacity:.4;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1rem;transition:all .2s}.pin-btn:hover{opacity:1;background:var(--accent-light)}.pin-btn.pinned{color:var(--accent);opacity:1}.step-date-wrapper{position:relative}.step-date-btn{border-radius:var(--radius-full);color:var(--text);opacity:.5;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:4px 10px;font-size:12px}.step-date-btn.has-date{background:var(--accent-soft);opacity:1;color:var(--accent)}.step-date-btn.overdue{opacity:1;color:#d97706;background:#f59e0b1f}.step-date-btn.has-date{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.step-date-btn:hover{opacity:1;background:var(--bg-soft)}.step-date-btn.has-date{background:var(--accent-soft);color:var(--accent);opacity:1}.step-date-popover{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);z-index:100;min-width:160px;margin-top:4px;padding:8px;position:absolute;top:100%;right:0}.step-date-quick{gap:4px;margin-bottom:8px;display:flex}.step-date-quick button{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:8px;flex:1;padding:6px 8px;font-size:11px;transition:all .15s}.step-date-quick button:hover{background:var(--accent-soft);border-color:var(--accent)}.step-date-input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text-h);border-radius:8px;padding:6px 8px;font-size:12px}.step-date-clear{width:100%;color:var(--danger);cursor:pointer;background:0 0;border:none;border-radius:8px;margin-top:8px;padding:6px 8px;font-size:11px;transition:background .15s}.step-date-clear:hover{background:var(--danger-light)}.add-step-btn:hover{border-color:var(--accent);color:var(--accent);border-color:var(--accent);background:var(--accent-light)}.reflection-section{border-top:1px solid var(--border);padding-top:20px}.reflection-label{color:var(--text);margin-bottom:10px;font-size:.9rem;font-weight:500;display:block}.reflection-textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;min-height:100px;color:var(--text);resize:vertical;box-sizing:border-box;max-width:100%;padding:14px;font-family:inherit;font-size:.9rem;line-height:1.6;transition:border-color .2s,box-shadow .2s}.reflection-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);outline:none}.reflection-textarea::placeholder{color:var(--text-light)}.add-goal-btn{background:var(--accent);color:#fff;cursor:pointer;bottom:calc(56px + env(safe-area-inset-bottom) + 16px);z-index:900;border:none;border-radius:16px;width:auto;padding:14px 32px;font-size:1rem;font-weight:500;transition:transform .15s,box-shadow .15s,background .15s;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #1a5c3366}.add-goal-btn:hover{background:var(--accent-strong);transform:translate(-50%)translateY(-2px);box-shadow:0 6px 24px #1a5c3380}.tab-bar{-webkit-backdrop-filter:blur(20px)saturate(1.8);height:56px;padding-bottom:env(safe-area-inset-bottom,0px);z-index:100;background:#ffffffd9;border-top:.5px solid #00000014;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-item{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 0;display:flex}.tab-icon{color:#86868b;justify-content:center;align-items:center;height:24px;display:flex}.tab-item.active .tab-icon{color:#1b7a3d}.tab-text{color:var(--text);opacity:.5;font-size:10px}.tab-item.active .tab-text{opacity:1;color:var(--accent)}[data-theme=dark] .tab-bar{background:var(--bg);border-top:1px solid var(--border);height:56px;padding-bottom:env(safe-area-inset-bottom,0px);z-index:100;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.app-main{flex-direction:column;flex:1;display:flex}.app-main>div{animation:.3s fade-slide-in}.today-task-light{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;align-items:center;gap:12px;margin-bottom:12px;padding:16px;transition:all .2s;display:flex}.today-task-light:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.task-progress-ring{flex-shrink:0;width:32px;height:32px;position:relative}.ring-text{color:var(--text);font-size:11px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.task-info{flex-direction:column;flex:1;gap:2px;display:flex}.task-name{color:var(--text);font-size:16px;font-weight:500}.task-sub{color:var(--text-light);font-size:12px}.expand-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:14px;transition:background .2s}.expand-btn:hover{background:var(--accent-light)}.expanded-goal-card{margin-top:-8px;margin-bottom:12px}.page-title{color:var(--text-h);margin:0;font-size:17px;font-weight:600}.page-subtitle{color:var(--text);opacity:.55;margin:4px 0 0;font-size:12px}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:56px 24px;display:flex}.empty-icon{margin-bottom:20px;font-size:56px;animation:3s ease-in-out infinite float;display:block}.empty-state h3{color:var(--text-h);margin:0 0 8px;font-size:18px;font-weight:600}.empty-state p{color:var(--text-light);margin:0;font-size:14px}.generate-plan-btn{background:var(--accent);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:8px;margin-top:24px;padding:12px 24px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.generate-plan-btn:hover{background:var(--accent-dark);transform:translateY(-2px)}.plan-generator-modal{width:400px;max-width:90%;max-height:90vh;overflow-y:auto}.card-group{flex-wrap:wrap;gap:8px;display:flex}.card-option{border:2px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex:1;justify-content:center;align-items:center;min-width:calc(50% - 4px);padding:12px;font-size:14px;transition:all .2s;display:flex;position:relative}.card-option:hover{border-color:var(--accent);background:var(--accent-bg)}.card-option input{opacity:0;cursor:pointer;position:absolute}.card-option input:checked+span,.card-option input:checked~span{color:var(--accent)}.card-option input:checked{border-color:var(--accent)}.card-option input[type=radio]:checked+span:before,.card-option input[type=checkbox]:checked+span:before{content:"✓";color:var(--accent);font-weight:700;position:absolute;left:8px}.card-option span{padding-left:20px}.generate-plan-submit-btn{background:var(--accent);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;width:100%;margin-top:16px;padding:14px;font-size:16px;font-weight:600;transition:all .2s}.generate-plan-submit-btn:hover:not(:disabled){background:var(--accent-dark)}.generate-plan-submit-btn:disabled{background:var(--border);cursor:not-allowed;opacity:.7}.weekly-insight-section{margin-bottom:24px}.section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title{color:var(--text-h);margin:0;font-size:16px;font-weight:600}.insights-refresh-btn{background:var(--bg-soft);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;transition:all .2s;display:flex}.insights-refresh-btn:hover:not(:disabled){background:var(--accent-light)}.insights-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.insight-content{flex-direction:column;gap:8px;display:flex}.insight-item{background:var(--bg-soft);border-radius:var(--radius-sm);margin-bottom:8px;padding:12px 16px;font-size:14px;line-height:1.5}.insight-icon{flex-shrink:0;font-size:16px}.insight-text{color:var(--text);font-size:14px;line-height:1.5}.insight-timestamp{color:var(--text-light);text-align:right;border-top:1px solid var(--border);margin-top:8px;padding-top:8px;font-size:12px}.insight-empty{text-align:center;color:var(--text-light);padding:20px}.insight-empty p{margin:0;font-size:14px}.today-todo-section{margin-bottom:20px}.todo-light-item{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:12px;margin-bottom:8px;padding:12px 16px;transition:all .2s;display:flex}.todo-light-item:hover{box-shadow:var(--shadow)}.todo-text{color:var(--text);flex:1;font-size:15px}.todo-delete-btn{cursor:pointer;color:var(--text-light);opacity:.5;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.todo-delete-btn:hover{opacity:1;color:var(--danger)}.overdue-dot{background:var(--danger);border-radius:50%;flex-shrink:0;width:6px;height:6px}.date-quick-buttons{flex-wrap:wrap;gap:8px;display:flex}.date-quick-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--card-bg);color:var(--text);cursor:pointer;padding:6px 12px;font-size:13px;transition:all .2s}.date-quick-btn:hover{border-color:var(--accent);color:var(--accent)}.date-quick-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.date-picker-input{margin-top:10px}.today-list-container{padding:0 4px}.today-list-header{justify-content:space-between;align-items:center;margin-bottom:16px;padding:0 4px;display:flex}.today-list-title{color:var(--text-h);font-size:18px;font-weight:600}.today-list-badge{background:var(--accent-light);color:var(--accent);border-radius:12px;padding:4px 10px;font-size:12px;font-weight:500}.today-list{flex-direction:column;display:flex}.today-list-item{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:12px 14px;transition:all .2s;display:flex}.today-list-item:hover{box-shadow:var(--shadow)}.mt-4{margin-top:4px}.todo-item{min-height:48px}.todo-checkbox{cursor:pointer;color:var(--text-light);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .2s;display:flex}.todo-checkbox:hover{color:var(--success)}.item-text{color:var(--text);flex:1;font-size:15px}.item-delete-btn{cursor:pointer;color:var(--text-light);opacity:.5;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.item-delete-btn:hover{opacity:1;color:var(--danger)}.habit-item{min-height:56px;transition:background .2s}.habit-item.completed-flash{animation:.6s flash-success}.habit-left{flex-shrink:0}.habit-content{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.habit-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.habit-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:500;overflow:hidden}.habit-progress-text{color:var(--text-light);flex-shrink:0;font-size:13px}.habit-progress-bar{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.habit-progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .5s}.habit-stats{color:var(--text-light);opacity:.7;font-size:11px}.habit-actions{flex-shrink:0;gap:6px;display:flex}.habit-record-btn,.habit-focus-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.habit-record-btn:hover,.habit-focus-btn:hover{background:var(--accent-light)}.habit-checkin-btn{background:var(--accent-light);border:2px solid var(--accent);cursor:pointer;width:40px;height:40px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:600;transition:all .2s;display:flex}.habit-checkin-btn:hover{background:var(--accent);color:#fff}.habit-checkin-btn.completed{background:var(--success);border-color:var(--success);color:#fff}.habit-checkin-badge{background:var(--success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:inline-flex}.habit-item.habit-completed{opacity:.7}.step-item{border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:8px;padding:10px 12px;display:flex}.step-item:hover{background:var(--bg-soft);background:var(--bg-soft)}.step-focus-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.step-focus-btn:hover{background:var(--accent-light)}.step-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.step-text{white-space:normal;word-break:break-word;overflow-wrap:break-word;min-width:0;text-overflow:unset;color:var(--text-h);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:14px;overflow:visible}.step-source{color:var(--text-light);opacity:.5;font-size:11px}.step-complete-btn{cursor:pointer;color:var(--text-light);opacity:.3;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.step-complete-btn:hover{opacity:1;color:var(--success)}.today-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.today-empty-icon{color:var(--accent);opacity:.8;margin-bottom:16px}.today-empty-title{color:var(--text-h);margin-bottom:8px;font-size:18px;font-weight:600}.today-empty-subtitle{color:var(--text-light);opacity:.7;font-size:14px}.today-steps-empty{text-align:center;color:var(--text-light);opacity:.6;padding:16px;font-size:13px}.today-steps-section{margin-bottom:20px}.today-step-item{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:12px;margin-bottom:8px;padding:14px 16px;transition:all .2s;display:flex}.today-step-item:hover{box-shadow:var(--shadow)}.today-step-focus-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.today-step-focus-btn:hover{background:var(--accent-light)}.today-step-info{flex-direction:column;flex:1;gap:2px;display:flex}.today-step-text{color:var(--text-h);font-size:14px;font-weight:500}.today-step-source{color:var(--text-light);opacity:.5;font-size:11px}.today-step-complete-btn{cursor:pointer;color:var(--text-light);opacity:.3;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.today-step-complete-btn:hover{opacity:1;color:var(--success)}.growth-settings-btn{background:var(--bg-secondary);cursor:pointer;width:32px;height:32px;color:var(--text);border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:16px;right:16px}.growth-settings-btn:hover{background:var(--accent-light)}.plant-showcase{text-align:center;background:linear-gradient(135deg,#dcfce7 0%,#bbf7d0 100%);border-radius:16px;padding:24px}@media (prefers-color-scheme:dark){.plant-showcase{background:#10b98126}}.level-display{color:var(--text-h);margin:16px 0 12px;font-size:18px;font-weight:600}.growth-exp-bar{align-items:center;gap:12px;width:100%;max-width:300px;display:flex}.exp-bar-large{background:#fffc;border-radius:4px;flex:1;height:8px;overflow:hidden}.exp-fill-large{background:var(--success);border-radius:4px;height:100%;transition:width .3s}.exp-count{color:var(--text);text-align:right;min-width:60px;font-size:14px;font-weight:600}.next-level-hint{color:var(--success);margin:12px 0 0;font-size:14px}.stats-section{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;display:grid}.stats-section>.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:56px 24px;display:flex}.empty-state svg{animation:3s ease-in-out infinite float-anim}.stats-section>.empty-state .empty-illustration{margin:0 auto 16px;display:block}.stat-card{box-shadow:var(--shadow-sm);text-align:center;background:#fff;border-radius:12px;padding:16px}@media (prefers-color-scheme:dark){.stat-card{background:var(--card-bg)}}@media (width<=400px){.stats-section{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;display:grid}.stat-card{box-shadow:var(--shadow-sm);text-align:center;background:#fff;border-radius:12px;padding:16px}@media (prefers-color-scheme:dark){.stat-card{background:var(--card-bg)}}.stat-value{white-space:normal;word-break:break-word;font-size:20px}.stat-label{white-space:normal;word-break:break-word}}.stat-icon{margin-bottom:8px;font-size:18px}.stat-value{color:var(--text-h);margin-bottom:4px;font-size:18px;font-weight:600}.stat-label{color:var(--text-light);font-size:12px}.calendar-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.calendar-title{color:var(--text-h);margin:0 0 16px;font-size:18px;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:16px;display:grid}.calendar-empty{height:36px}.calendar-day{height:36px;color:var(--text-light);border-radius:50%;justify-content:center;align-items:center;font-size:13px;transition:all .2s;display:flex}.calendar-day.has-activity{background:var(--accent-light);color:var(--accent);font-weight:600}.calendar-day.is-today{border:2px solid var(--accent);color:var(--accent);font-weight:600}.calendar-legend{flex-flow:row;justify-content:center;align-items:center;gap:20px;margin-top:16px;display:flex}.legend-item{white-space:nowrap;color:var(--text-light);flex-direction:row;align-items:center;gap:6px;font-size:12px;display:flex}.legend-dot{border-radius:50%;width:12px;height:12px}.legend-dot.has-activity{background:var(--accent-light)}.legend-dot.is-today{border:2px solid var(--accent)}.focus-timer-overlay{z-index:9999;background:#1a1a2e;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:fixed;top:0;left:0}.focus-timmer-container{flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:500px;padding:24px;display:flex}.focus-timer-header{text-align:center;margin-bottom:32px}.focus-step-name{color:#fff;opacity:.9;margin:0;font-size:18px;font-weight:500}.focus-time{color:#fff;letter-spacing:.05em;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:56px;font-weight:600}.focus-finished{color:#4caf50;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.focus-timer-controls{justify-content:center;gap:12px;margin-bottom:20px;display:flex}.focus-btn{background:var(--bg-soft);cursor:pointer;width:30px;height:30px;transition:all var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.focus-btn:hover{background:var(--accent-soft);color:var(--accent);transform:scale(1.02)}.focus-btn:active{transform:scale(.98)}.focus-reset{background:#ffffff26}.focus-start{background:#4caf50}.focus-pause{background:#2196f3}.focus-btn.focus-mini{color:#fff;white-space:nowrap;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:16px;width:auto;height:auto;padding:12px 28px;font-size:15px;font-weight:600;animation:2s infinite pulse}.focus-minutes{color:#ffffffb3;justify-content:center;align-items:center;gap:16px;margin-bottom:16px;display:flex}.focus-minutes button{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:8px;padding:8px 16px;transition:all .2s}.focus-minutes button:hover{background:#ffffff26;border-color:#ffffff80}.focus-minutes span{font-size:14px}.whitenoise-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .2s}.whitenoise-btn:hover{background:#ffffff26;border-color:#ffffff80}.whitenoise-active{background:#4caf504d;border-color:#4caf50}.focus-abandon-btn{color:#f44336;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:8px;margin-top:24px;padding:8px 16px;font-size:14px;transition:opacity .2s}.focus-abandon-btn:hover{opacity:1}.focus-complete-alert{color:#4caf50;background:#4caf5033;border-radius:8px;margin-top:24px;padding:16px 24px;font-size:16px;font-weight:500;animation:.5s bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.focus-close-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex;position:absolute;top:20px;right:20px}.focus-close-btn:hover{background:#ffffff40}.focus-decision-state{text-align:center;padding:24px 0}.focus-decision-state .decision-icon{margin-bottom:12px;font-size:3rem;animation:.5s bounce}.focus-decision-state .decision-title{color:#fff;margin:0 0 8px;font-size:1.1rem;font-weight:600}.focus-decision-state .decision-subtitle{color:#ffffffb3;margin:0 0 24px;font-size:.9rem}.decision-buttons{justify-content:center;gap:12px;display:flex}.decision-btn{cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-size:.9rem;font-weight:500;transition:all .2s}.decision-continue{color:#fff;background:linear-gradient(135deg,#10b981,#059669)}.decision-continue:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.decision-finish{color:#fff;background:#ffffff26;border:1px solid #ffffff4d}.decision-finish:hover{background:#ffffff40}.focus-minutes{color:#ffffffb3;margin-top:16px;font-size:.875rem}.app-footer{display:none}.app-footer p{color:var(--text-light);opacity:.4;font-size:11px}.author-text{color:var(--text-light);opacity:.4;margin:4px 0 0;font-size:11px}.today-section{background:var(--card-bg);border-radius:var(--radius);margin-bottom:16px;padding:20px}.today-header{margin-bottom:16px}.today-header h3{color:var(--text-h);margin:0 0 4px;font-size:1.1rem}.today-subtitle{color:var(--text-light);margin:0;font-size:.85rem}.today-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.today-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:16px;padding:16px;transition:transform .2s,box-shadow .2s;display:flex}.today-card-left{flex-shrink:0}.today-card-right{flex:1;min-width:0}@media (width<=639px){.today-card{text-align:center;flex-direction:column;align-items:center}.today-card-left{margin-bottom:8px}.today-card-actions{justify-content:center}}@media (width>=769px){.today-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}}.today-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.today-card-title{color:var(--text-h);flex:1;margin:0;padding-right:8px;font-size:1rem;font-weight:600}.today-card-actions{align-items:center;gap:6px;display:flex}.today-rescue-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#f97316,#ea580c);border:none;border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:500;transition:transform .15s,box-shadow .15s}.today-rescue-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #f9731666}.today-stats{color:var(--text-light);text-align:center;margin-top:10px;font-size:.78rem}.today-progress{margin-bottom:14px}.today-progress-text{color:var(--text-light);margin-bottom:6px;font-size:.85rem;display:block}.today-progress-bar{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.today-progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .6s ease-out}.today-record-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;padding:12px 24px;font-size:.95rem;font-weight:500;transition:transform .15s,box-shadow .15s,background .15s}.today-record-btn:hover{box-shadow:var(--shadow);background:var(--accent-strong);transform:translateY(-1px)}.today-actions{gap:10px;margin-top:14px;display:flex}.today-actions .today-record-btn{flex:1}.today-actions .focus-btn{background:var(--bg-soft);cursor:pointer;width:30px;height:30px;transition:all var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.focus-btn:hover{background:var(--accent-soft);color:var(--accent)}@media (width<=768px){.today-cards{grid-template-columns:1fr}.today-card{padding:14px}}.heatmap-section{background:var(--card-bg);border-radius:var(--radius);margin-bottom:16px;padding:20px}.heatmap-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.heatmap-header h3{color:var(--text);margin:0;font-size:1rem}.heatmap-legend{color:var(--text-light);align-items:center;gap:4px;font-size:.75rem;display:flex}.legend-item{border-radius:3px;width:12px;height:12px}.legend-item.level-0{background:var(--border)}.legend-item.level-1{background:#9be9a8}.legend-item.level-2{background:#40c463}.legend-item.level-3{background:#30a14e}.legend-item.level-4{background:#216e39}.heatmap-scroll-wrapper{white-space:nowrap;width:100%}.heatmap-container{align-items:flex-start;gap:8px;display:flex}.heatmap-labels-left{flex-direction:column;justify-content:space-between;width:16px;padding:1px 0;display:flex}.week-label{color:var(--text-light);height:14px;font-size:10px;line-height:14px}.heatmap-grid{grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(5,1fr);gap:3px;max-width:100%;padding-bottom:8px;display:grid}.heatmap-cell{cursor:pointer;border-radius:3px;flex-shrink:0;justify-self:center;width:14px;height:14px;transition:transform .1s}.heatmap-cell:hover{transform:scale(1.3)}.heatmap-cell.level-0{background:var(--border)}.heatmap-cell.level-1{background:#9be9a8}.heatmap-cell.level-2{background:#40c463}.heatmap-cell.level-3{background:#30a14e}.heatmap-cell.level-4{background:#216e39}.heatmap-labels{justify-content:space-between;margin-top:8px;padding-left:2px;display:flex}.heatmap-label{color:var(--text-light);font-size:.7rem}.timer-whitenoise{margin-top:16px}.whitenoise-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;padding:10px 20px;font-size:.9rem;transition:all .2s}.whitenoise-btn:hover{background:var(--input-bg)}.whitenoise-btn.whitenoise-active{color:#fff;background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981}@media (width<=768px){.header-content{flex-direction:column;gap:16px}.header-title{text-align:center}.app-header h1{font-size:2rem}.heatmap-grid{gap:2px}.heatmap-cell{width:12px;height:12px}.app{background:var(--bg-soft,#f2f5f0);padding:0}.goals-grid{grid-template-columns:1fr}.settings-modal,.reminder-modal,.settings-modal,.reminder-modal,.confirm-modal,.addgoal-modal{background:var(--card-bg);width:min(360px,85vw);max-height:85vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:24px;overflow-y:auto}.timer-time{font-size:3rem}.timer-controls{flex-direction:column}.timer-btn{width:100%}.step-actions{opacity:1}}@media (width<=480px){.goal-card{background:var(--card-bg);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast);border-radius:16px;margin-bottom:12px;padding:16px}.goal-card:hover{box-shadow:var(--shadow-md);box-shadow:var(--shadow-md);transform:translateY(-2px)}.fab-btn{right:20px;bottom:calc(80px + env(safe-area-inset-bottom));color:#fff;cursor:pointer;width:52px;height:52px;transition:transform var(--transition-base);z-index:99;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;box-shadow:0 4px 16px #10b98159}.fab-btn svg{width:28px;height:28px}.fab-btn:active{transform:rotate(45deg)}.modal,.settings-modal,.addgoal-modal,.record-modal,.block-modal,.settings-modal,.reminder-modal,.settings-modal,.reminder-modal,.confirm-modal,.addgoal-modal{background:var(--card-bg);width:min(360px,85vw);max-height:85vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:24px;overflow-y:auto}}@media (width<=375px){.app-header{z-index:100;height:calc(52px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);background:var(--bg);justify-content:space-between;align-items:center;padding-inline:16px;display:flex;position:sticky;top:0}.app-header h1{font-size:1.3rem}.header-content{gap:8px}.tab-bar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:8px 16px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);z-index:100;background:#ffffffd9;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-item{color:var(--text-light);transition:all var(--transition-fast);border-top:3px solid #0000;flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px;display:flex}.tab-icon{height:22px}.tab-text{font-size:10px;font-weight:500}.goal-card{background:var(--card-bg);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast);border-radius:16px;margin-bottom:12px;padding:16px}.goal-card:hover{box-shadow:var(--shadow-md);box-shadow:var(--shadow-md);transform:translateY(-2px)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:56px 24px;display:flex}.empty-state svg{animation:3s ease-in-out infinite float-anim}@keyframes float-anim{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-icon{font-size:48px}}.goal-actions{align-items:center;gap:8px;display:flex}.reminder-badge{color:var(--accent);background:var(--accent-light);white-space:nowrap;border-radius:16px;padding:4px 10px;font-size:.85rem}.reminder-btn{cursor:pointer;opacity:.5;background:0 0;border:none;padding:4px;font-size:1.2rem;transition:opacity .2s}.reminder-btn:hover{opacity:1}.reminder-close{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1.5rem;transition:color .2s;position:absolute;top:16px;right:16px}.reminder-close:hover{color:var(--text-h);background:var(--bg-soft)}.reminder-hint{color:var(--text-light);margin:8px 0 20px;font-size:.9rem}.reminder-time-picker{margin-bottom:24px}.time-input{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);text-align:center;padding:14px;font-size:1.2rem;transition:border-color .2s}.time-input:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #1a5c331a}.reminder-btn-remove{border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);cursor:pointer;background:0 0;padding:12px 24px;font-size:.95rem;transition:all .2s}.reminder-btn-remove:hover{background:var(--danger-light)}.reminder-btn-save{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;padding:12px 32px;font-size:.95rem;font-weight:500;transition:transform .15s}.reminder-btn-save:hover{transform:scale(1.02)}.reminder-btn-save:active{transform:scale(.98)}.toast{z-index:99999;white-space:nowrap;text-overflow:ellipsis;background:var(--card-bg,#fff);opacity:1;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:12px;width:auto;min-width:200px;max-width:min(85vw,360px);padding:12px 40px 12px 16px;font-size:14px;font-weight:500;line-height:1.4;animation:.3s toastSlideDown;position:fixed;top:20px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 20px #00000026}@keyframes toastSlideDown{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.toast-reminder{color:#fff;background:#1a5c33}.toast-close{color:#fffc;cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.confirm-message{color:var(--text-h);text-align:center;margin-bottom:20px;font-size:16px;font-weight:500;line-height:1.5}.confirm-actions{gap:12px;display:flex}.confirm-actions button{cursor:pointer;border:none;border-radius:10px;flex:1;padding:12px;font-size:15px;font-weight:500}.btn-secondary{background:var(--bg-soft);color:var(--text)}.btn-danger{color:#fff;background:#ef4444}.settings-close{cursor:pointer;color:var(--text);background:0 0;border:none;font-size:1.5rem;transition:color .2s;position:absolute;top:12px;right:12px}.settings-close:hover{color:var(--text-h);background:var(--bg-soft)}.settings-modal h3{color:var(--text-h);margin:0 0 8px}.install-banner{background:#10b98114;border:1px solid #10b98133;border-radius:12px;margin-bottom:20px;padding:16px}.install-banner-content{gap:12px;margin-bottom:12px;display:flex}.install-banner-icon{flex-shrink:0;font-size:18px}.install-banner-text{flex:1}.install-banner-title{color:var(--text-h);margin-bottom:4px;font-size:14px;font-weight:500}.install-banner-desc{color:var(--text);font-size:12px;line-height:1.5}.install-banner-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;height:40px;font-size:14px;font-weight:500}.notification-section{margin-bottom:16px}.notification-section h4{color:var(--text-h);margin:0 0 12px;font-size:14px;font-weight:500}.notification-granted{align-items:center;display:flex}.notification-status{color:#10b981;font-size:14px;font-weight:500}.notification-denied{color:var(--text-light);margin:0;font-size:13px}.notification-actions{flex-direction:column;gap:12px;display:flex}.notification-hint{color:var(--text);margin:0;font-size:13px}.enable-notification-btn{color:#fff;cursor:pointer;background:#2d7a45;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500}.review-reminder-section{margin-bottom:16px}.review-reminder-section h4{color:var(--text-h);margin:0 0 12px;font-size:14px;font-weight:500}.review-reminder-row{align-items:center;gap:12px;display:flex}.review-time-input{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:8px;padding:8px 12px;font-size:14px}.review-toggle-btn{border:1px solid var(--border);background:var(--bg-soft);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:14px}.review-toggle-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.reminder-time-input{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:8px;padding:8px 12px;font-size:14px}.reminder-clear-btn{color:var(--text-light);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-size:13px}.reminder-clear-btn:hover{color:var(--text)}.settings-hint{color:var(--text-light);margin:0 0 20px;font-size:.9rem}.api-provider-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);width:100%;color:var(--text);box-sizing:border-box;cursor:pointer;margin-bottom:16px;padding:12px;font-size:.9rem}.feedback-section{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.feedback-textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);width:100%;color:var(--text);box-sizing:border-box;resize:vertical;min-height:80px;margin-bottom:12px;padding:12px;font-size:.9rem}.feedback-textarea::placeholder{color:var(--text-light)}.api-key-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);width:100%;color:var(--text);box-sizing:border-box;margin-bottom:16px;padding:12px;font-family:monospace;font-size:.9rem}.api-key-input::placeholder{color:var(--text-light)}.save-api-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;margin-bottom:8px;padding:12px 24px;font-weight:500;transition:background .15s}.save-api-btn:hover{background:var(--accent-strong)}.clear-api-btn{color:var(--text-light);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:100%;padding:10px 20px;transition:all .15s}.clear-api-btn:hover{background:var(--bg-soft)}.settings-section{border-bottom:1px solid var(--border);margin:16px 0;padding-bottom:16px}.settings-section:first-child{margin-top:0}.settings-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.settings-section h4{color:var(--text-h);margin:0 0 12px;font-size:.95rem}.coach-style-row{align-items:center;gap:8px;display:flex}.coach-style-label{font-size:18px}.coach-select{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;flex:1;padding:8px 12px;font-size:14px;transition:all .2s}.data-action-btn{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex:1;padding:10px 14px;font-size:.875rem;transition:all .15s}.data-action-btn:hover{background:var(--bg-soft);border-color:var(--accent);color:var(--accent)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.addgoal-close{cursor:pointer;color:var(--text);background:0 0;border:none;font-size:1.5rem;transition:color .2s;position:absolute;top:12px;right:12px}.addgoal-close:hover{color:var(--text-h);background:var(--bg-soft)}.addgoal-modal h3{color:var(--text-h);margin:0 0 20px;font-size:20px;font-weight:600}.addgoal-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{color:var(--text);margin-bottom:6px;font-size:13px;font-weight:500}.form-input{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:10px;padding:12px 14px;font-size:1rem}.form-input:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #1a5c331a}.form-input::placeholder{color:var(--text-light)}.radio-group{flex-direction:column;gap:10px;display:flex}.radio-option{background:var(--input-bg);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:12px;transition:background .2s;display:flex}.radio-option:hover{background:var(--border)}.radio-option input[type=radio]{cursor:pointer;width:18px;height:18px}.habit-type-cards{grid-template-columns:1fr 1fr;gap:12px;display:grid}.habit-type-card{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:4px;padding:16px 12px;transition:all .2s;display:flex}.habit-type-card:hover{border-color:var(--accent)}.habit-type-card.selected{border-color:var(--accent);background:var(--accent-soft)}.habit-type-icon{color:var(--accent);font-size:18px;font-weight:600}.habit-type-title{color:var(--text-h);font-size:14px;font-weight:600}.habit-type-desc{color:var(--text);font-size:11px}.habit-type-example{color:var(--text-light);margin-top:4px;font-size:10px}.radio-option span:first-of-type{color:var(--text);font-weight:500}.radio-description{color:var(--text-light);margin-left:auto;font-size:.85rem}.form-actions{gap:12px;margin-top:24px;display:flex}.btn-secondary{color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex:1;padding:12px 20px;font-size:.95rem;transition:all .15s}.btn-secondary:hover{background:var(--bg-soft)}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;flex:1;padding:12px 24px;font-size:.95rem;font-weight:500;transition:all .15s}.btn-primary:hover{background:var(--accent-strong)}.api-key-input{color:var(--text-h);font-size:.95rem}.data-actions{gap:10px;display:flex}.step-actions-row{gap:8px;width:100%;margin-top:12px;display:flex}.add-step-btn{border:2px dashed var(--border);border-radius:var(--radius-md);color:var(--text-light);cursor:pointer;transition:all var(--transition-fast);background:0 0;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:500;display:flex}.add-step-btn:hover{border-color:var(--accent);color:var(--accent);border-color:var(--accent)}.ai-decompose-btn{border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent);cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:500;display:flex}.ai-decompose-btn:hover:not(.loading){background:var(--accent);color:#fff}.ai-decompose-btn.loading{opacity:.7;cursor:not-allowed}.ai-decompose-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf64d}.ai-decompose-btn:disabled{opacity:.7;cursor:not-allowed}.ai-decompose-btn.loading{animation:1.5s infinite pulse}.coach-section{margin-top:16px}.coach-btn{border:1.5px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:14px;font-size:15px;font-weight:500}.coach-btn:hover,.coach-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.coach-btn:disabled{opacity:.7;cursor:not-allowed}.coach-btn.loading{animation:1.5s infinite pulse}.coach-feedback-card{border-left:3px solid var(--accent);background:var(--bg-soft);border-radius:0 var(--radius-md) var(--radius-md) 0;margin-top:16px;padding:16px}.coach-feedback-header{color:#ef4444;margin-bottom:8px;font-size:.9rem;font-weight:600}.coach-feedback-content{color:var(--text);font-size:.9rem;line-height:1.6}*{-webkit-touch-callout:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;touch-action:manipulation}button,input,textarea,select{-webkit-user-select:none;user-select:none}button:focus,input:focus,textarea:focus,select:focus{outline:none}.step-checkbox,.theme-toggle,.settings-toggle,.add-step-btn,.ai-decompose-btn,.coach-btn,.coach-select{min-width:44px;min-height:44px}.step-checkbox-wrapper{cursor:pointer;justify-content:center;align-items:center;width:44px;height:44px;margin:-10px;padding:10px;display:flex}.step-checkbox{border:2px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:28px;min-width:28px;height:28px;min-height:28px;transition:all .2s;display:flex}.step-checkbox.checked{background:var(--success);border-color:var(--success)}@media (width<=640px){.app{padding:0}.goals-grid{grid-template-columns:1fr;gap:16px}.goal-card{padding:14px}.header-content{flex-wrap:wrap;gap:12px}.header-actions{gap:6px}.theme-toggle,.settings-toggle,.coach-select{padding:8px 10px;font-size:1.1rem}.coach-select{min-width:120px;font-size:.85rem}.step-item{border-radius:var(--radius-sm);transition:background var(--transition-fast);align-items:center;gap:8px;padding:10px 12px;display:flex}.step-item:hover{background:var(--bg-soft);background:var(--bg-soft)}.reflection-textarea{min-height:100px}.ai-decompose-btn,.coach-btn{border:1.5px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:14px;font-size:15px;font-weight:500}.coach-btn:hover{border-color:var(--accent);color:var(--accent)}.step-actions-row{flex-direction:column}.heatmap-grid{gap:3px}.heatmap-cell{width:12px;height:12px}}@supports (padding-bottom:env(safe-area-inset-bottom)){.app{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}@media screen and (width<=640px){input,textarea,select{font-size:16px}}.settings-overlay,.reminder-overlay,.confirm-overlay,.addgoal-overlay,.record-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.record-close{color:var(--text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;font-size:1.5rem;transition:color .2s,background .2s;position:absolute;top:12px;right:12px}.record-close:hover{color:var(--text-h);background:var(--bg-soft)}.record-modal h3{color:var(--text-h);margin:0 0 20px;font-size:1.15rem}.record-form{flex-direction:column;gap:16px;display:flex}.quick-add-buttons{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.quick-add-btn{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);padding:10px 8px;font-size:.85rem;font-weight:500;transition:all .2s}.quick-add-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.quick-add-subtract{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.quick-add-subtract:hover{color:#fff;background:#ef4444;border-color:#ef4444}.plant-detail-modal{text-align:center;max-width:320px}.plant-detail-content{flex-direction:column;align-items:center;gap:12px;padding-top:20px;display:flex}.plant-stage-name{color:var(--text-h);margin:0;font-size:1.5rem;font-weight:600}.plant-next-hint{color:var(--text);margin:0;font-size:.9rem}.plant-stats-grid{grid-template-columns:repeat(2,1fr);gap:16px;width:100%;margin:8px 0;display:grid}.plant-stat-item{flex-direction:column;align-items:center;gap:4px;display:flex}.plant-stat-value{color:var(--accent);font-size:1.5rem;font-weight:600}.plant-stat-label{color:var(--text-light);font-size:.8rem}.plant-encourage-text{color:var(--text);margin:8px 0 0;font-size:.95rem;font-style:italic;line-height:1.5}.plan-section{padding-bottom:24px}.week-nav{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:8px;margin-bottom:20px;padding:12px;display:flex}.week-nav-btn{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:8px 12px;font-size:1rem;transition:all .2s;display:flex}.week-nav-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.week-days{flex:1;justify-content:space-between;gap:4px;display:flex}.week-day{cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-width:40px;padding:8px 6px;transition:all .2s;display:flex}.week-day:hover{background:var(--input-bg)}.week-day.selected{background:var(--accent);color:#fff}.week-day.today{background:var(--accent-light);color:var(--accent)}.week-day.today.selected{background:var(--accent);color:#fff}.day-number{font-size:1.1rem;font-weight:600}.day-label{opacity:.8;font-size:.7rem}.day-dot{background:var(--accent);border-radius:50%;width:4px;height:4px;margin-top:2px}.week-day.selected .day-dot{background:#fff}.day-items-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:16px}.day-items-empty{text-align:center;color:var(--text-light);padding:24px 16px;font-size:.9rem}.day-items-list{flex-direction:column;gap:12px;display:flex}.day-items-group{flex-direction:column;gap:8px;display:flex}.day-items-group-title{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding-bottom:4px;font-size:.8rem;font-weight:600}.day-item-row{background:var(--bg);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.day-item-text{color:var(--text);flex:1;font-size:.95rem}.day-item-progress{color:var(--accent);font-size:.85rem;font-weight:500}.day-item-source{color:var(--text-light);font-size:.75rem}.time-blocks-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:16px}.time-blocks-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.time-blocks-title{color:var(--text-h);margin:0;font-size:1rem;font-weight:600}.add-block-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 14px;font-size:.85rem;font-weight:500;transition:all .2s}.add-block-btn:hover{background:var(--accent-strong);transform:translateY(-1px)}.time-blocks-empty{text-align:center;color:var(--text-light);padding:20px;font-size:.9rem}.time-blocks-list{flex-direction:column;gap:8px;display:flex}.time-block-row{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:10px 12px;transition:all .2s;display:flex}.time-block-row:hover{background:var(--bg-soft);box-shadow:var(--shadow);transform:translateY(-1px)}.time-block-color{border-radius:4px;flex-shrink:0;width:8px;height:36px}.time-block-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.time-block-time{color:var(--text-light);font-size:.8rem}.time-block-label{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.time-block-delete{color:var(--text-light);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1.2rem;transition:all .2s}.time-block-row:hover .time-block-delete{opacity:1}.time-block-delete:hover{color:var(--danger);background:var(--danger-light)}.ai-plan-section{flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.ai-plan-btn{color:#fff;border-radius:var(--radius);cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#1a5c33);border:none;width:100%;max-width:300px;padding:14px 28px;font-size:1rem;font-weight:500;transition:all .2s}.ai-plan-btn:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666}.ai-plan-btn.disabled{opacity:.5;cursor:not-allowed;background:var(--border)}.ai-plan-hint{color:var(--text-light);margin:0;font-size:.8rem}.block-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal,.reminder-modal,.settings-modal,.reminder-modal,.confirm-modal,.addgoal-modal{background:var(--card-bg);width:min(360px,85vw);max-height:85vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:24px;overflow-y:auto}.block-modal-close{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1.5rem;transition:color .2s,background .2s;position:absolute;top:12px;right:12px}.block-modal-close:hover{color:var(--text-h);background:var(--bg-soft)}.block-modal h3{color:var(--text-h);margin:0 0 20px;font-size:1.15rem}.block-modal-form{flex-direction:column;gap:16px;display:flex}.block-modal-form .form-row{flex-direction:column;gap:8px;display:flex}.block-modal-form .form-row label{color:var(--text);font-size:.9rem;font-weight:500}.block-modal-form select,.block-modal-form input[type=text]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);width:100%;color:var(--text);box-sizing:border-box;padding:12px;font-size:1rem}.block-modal-form select:focus,.block-modal-form input[type=text]:focus{border-color:var(--accent);outline:none}.color-picker{gap:8px;display:flex}.color-option{cursor:pointer;border:3px solid #0000;border-radius:50%;width:36px;height:36px;transition:all .2s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--text-h);box-shadow:0 0 0 2px var(--card-bg)}.calendar-section{background:var(--bg-soft,#f2f5f0);padding:20px}.calendar-view-tabs{justify-content:center;gap:8px;margin-bottom:16px;padding-top:20px;display:flex}.calendar-view-tab{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:16px;padding:8px 24px;font-size:14px;font-weight:500;transition:all .15s}.calendar-view-tab.active{background:var(--accent);color:#fff}.calendar-view-tab:hover:not(.active){background:var(--bg-soft)}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calendar-nav-btn{background:var(--bg-soft);cursor:pointer;width:36px;height:36px;color:var(--text);border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.calendar-nav-btn:hover{background:var(--border)}.calendar-nav-title{color:var(--text-h);font-size:16px;font-weight:600}.calendar-week-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px;margin-bottom:16px;display:grid}.calendar-week-day{cursor:pointer;border:1.5px solid #0000;border-radius:8px;flex-direction:column;align-items:center;padding:12px 4px;transition:all .15s;display:flex}.calendar-week-day:hover{background:var(--bg-soft)}.calendar-week-day.today{background:var(--accent-soft)}.calendar-week-day.selected{border-color:var(--accent);background:var(--accent-light)}.calendar-weekday-label{color:var(--text-light);margin-bottom:4px;font-size:12px}.calendar-date-number{color:var(--text-h);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;font-weight:500;display:flex}.calendar-date-number.today{background:var(--accent);color:#fff}.calendar-color-dots{gap:3px;min-height:8px;margin-top:6px;display:flex}.calendar-dot{background:0 0;border:1.5px solid;border-radius:50%;width:8px;height:8px}.calendar-dot.hollow{background:0 0}.calendar-dot-extra{color:var(--text-light);font-size:10px;font-weight:500}.calendar-month-grid{background:var(--card-bg);border-radius:var(--radius);box-sizing:border-box;gap:2px;width:100%;display:block;overflow:visible}.calendar-month-header{background:var(--bg-soft);box-sizing:border-box;grid-template-columns:repeat(7,1fr);width:100%;display:grid}.calendar-month-header-cell{text-align:center;color:var(--text-light);padding:12px 0;font-size:12px;font-weight:500}.calendar-month-body{grid-template-columns:repeat(7,1fr);display:grid}.calendar-month-cell{box-sizing:border-box;text-align:center;cursor:pointer;outline:none;flex-direction:column;justify-content:center;align-items:center;width:100%;min-width:0;min-height:40px;padding:4px 2px;transition:all .15s;display:flex;overflow:hidden}.calendar-month-cell.empty{background:var(--bg-soft);cursor:default}.calendar-month-cell:hover:not(.empty){background:var(--bg-soft)}.calendar-month-cell.selected{background:var(--accent-light)}.calendar-month-date{color:var(--text-h);font-size:14px;font-weight:500}.calendar-month-date.today{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.calendar-month-dots{gap:2px;min-height:6px;margin-top:4px;display:flex}.calendar-day-timeline{background:var(--card-bg);border-radius:var(--radius);padding:16px}.calendar-unscheduled{background:var(--bg-soft);border-radius:var(--radius-sm);margin-bottom:16px;padding:12px}.calendar-unscheduled-label{color:var(--text-light);margin-bottom:8px;font-size:12px;font-weight:500}.calendar-unscheduled-items{flex-wrap:wrap;gap:8px;display:flex}.calendar-timeline{flex-direction:column;display:flex}.calendar-timeline-row{border-bottom:1px solid var(--border);min-height:64px;display:flex}.calendar-timeline-row:last-child{border-bottom:none}.calendar-timeline-time{width:60px;color:var(--text-light);opacity:.5;flex-shrink:0;padding:8px;font-size:12px}.calendar-timeline-content{flex-direction:column;flex:1;gap:4px;padding:4px 8px;display:flex}.calendar-task-block{cursor:pointer;border-left:4px solid;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-height:40px;padding:8px 12px;transition:opacity .15s;display:flex}.calendar-task-block:hover{opacity:.85}.calendar-task-block.scheduled{flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:10px 12px}.calendar-task-name{color:var(--text-h);font-size:14px;font-weight:500}.calendar-task-time{color:color-mix(in srgb, var(--text) 50%, transparent);margin-top:2px;font-size:11px}.calendar-task-schedule-btn{color:var(--accent);white-space:nowrap;font-size:11px}.calendar-unscheduled{margin-bottom:16px}.calendar-unscheduled-label{color:var(--text-light);opacity:.6;margin-bottom:8px;font-size:12px}.calendar-unscheduled-items{flex-direction:column;gap:8px;display:flex}.calendar-task-panel{background:var(--card-bg,#fff);border-radius:var(--radius,18px);flex-direction:column;flex:1;margin-top:16px;padding:16px;display:flex}.calendar-task-panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calendar-task-panel-title{color:var(--text-h);font-size:16px;font-weight:600}.calendar-task-panel-link{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:500}.calendar-task-panel-link:hover{text-decoration:underline}.calendar-task-empty{text-align:center;min-height:280px;color:var(--text-light);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.calendar-task-empty p{margin:8px 0}.calendar-task-empty-hint{opacity:.7;font-size:12px}.calendar-task-list{flex-direction:column;gap:16px;display:flex}.calendar-task-group{flex-direction:column;gap:8px;display:flex}.calendar-task-group-header{color:var(--text);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.calendar-task-group-dot{border-radius:3px;width:12px;height:12px}.calendar-task-item{box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;align-items:center;gap:12px;margin-bottom:8px;padding:11px;display:flex;position:relative;overflow:hidden}.calendar-task-item:before{content:"";background:var(--accent);width:3px;position:absolute;top:0;bottom:0;left:0}@media (prefers-color-scheme:dark){.calendar-task-item{background:var(--card-bg)}}@keyframes taskItemFadeIn{to{opacity:1;transform:translateY(0)}}.calendar-task-item-color{border-radius:2px;flex-shrink:0;width:0;height:100%;animation:.3s forwards colorBarExpand}@keyframes colorBarExpand{to{width:4px}}.calendar-task-item-name{color:var(--text-h);font-size:14px;font-weight:500}.calendar-task-item-sub{color:color-mix(in srgb, var(--text) 50%, transparent);margin-top:2px;font-size:11px}.calendar-task-item-actions{gap:8px;display:flex}.calendar-task-item-btn{cursor:pointer;width:36px;height:36px;color:var(--text);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.calendar-task-item-btn:hover{background:var(--border)}.calendar-task-item-btn.completed{color:#1a5c33;background:0 0;border-color:#1a5c33}@keyframes checkBounce{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.calendar-task-item-btn.record{color:#10b981;background:#10b9811a;border-radius:16px;width:auto;padding:6px 14px;font-size:13px;font-weight:500}.calendar-task-item-btn.focus{color:var(--accent)}.calendar-task-item-btn.complete{color:#1a5c33}.calendar-task-item.completing{animation:.3s forwards taskCompleteFade}@keyframes taskCompleteFade{to{opacity:0;height:0;margin:0;padding:0}}.calendar-task-item.flash-green{animation:.6s flashGreen}@keyframes flashGreen{0%,to{background:var(--bg-soft)}50%{background:#10b9811f}}.streak-bounce{animation:.3s streakBounce}@keyframes streakBounce{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.year-pixel-section{margin-top:32px;margin-bottom:32px}.year-pixel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.year-pixel-title{color:var(--text-h);margin:0;font-size:18px;font-weight:600}.year-pixel-count{color:var(--text-light);font-size:14px;font-weight:500}.year-pixel-wall-container{-webkit-overflow-scrolling:touch;width:100%;padding:8px 0;position:relative;overflow-x:auto}.year-pixel-wall-container::-webkit-scrollbar{height:6px}.year-pixel-wall-container::-webkit-scrollbar-track{background:var(--border);border-radius:3px}.year-pixel-wall-container::-webkit-scrollbar-thumb{background:var(--text-light);border-radius:3px}.year-pixel-weekday-labels{z-index:1;background:var(--bg);flex-direction:column;gap:2px;padding-right:8px;display:flex;position:absolute;top:28px;left:0}.year-pixel-weekday-label{height:10px;color:var(--text-light);justify-content:flex-end;align-items:center;width:12px;font-size:10px;display:flex}.year-pixel-weeks{gap:2px;margin-left:22px;display:flex}.year-pixel-week{flex-direction:column;gap:2px;display:flex}.year-pixel-month-label{color:var(--text);align-items:center;height:14px;margin-bottom:4px;font-size:10px;display:flex}.year-pixel-week-days{flex-direction:column;gap:2px;display:flex}.year-pixel{cursor:pointer;opacity:.88;border-radius:2px;width:10px;height:10px;transition:transform .15s,opacity .15s}.year-pixel:hover{z-index:10;opacity:1;transform:scale(1.3)}.year-pixel.today{border:1.5px solid var(--accent);opacity:1}.year-pixel.recent{opacity:1}.year-pixel-empty{cursor:default;background:0 0}.year-pixel-empty:hover{transform:none}.year-pixel-tooltip{background:var(--card-bg);box-shadow:var(--shadow);color:var(--text);white-space:nowrap;z-index:1000;pointer-events:none;border-radius:8px;padding:8px 12px;font-size:12px;position:absolute;transform:translate(-50%)}.daily-review-section{margin-top:32px;margin-bottom:32px}.daily-review-title{color:var(--text-h);margin:0 0 16px;font-size:18px;font-weight:600}.daily-review-textarea{border:1px solid var(--border);width:100%;height:88px;color:var(--text);background:var(--card-bg);resize:vertical;border-radius:12px;padding:12px;font-family:inherit;font-size:14px;line-height:1.6}.daily-review-textarea:focus{border-color:var(--accent);outline:none}.daily-review-actions{justify-content:flex-end;margin-top:12px;display:flex}.ai-review-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .15s}.ai-review-btn:hover:not(.disabled){background:#134a28;transform:translateY(-1px)}.ai-review-btn.disabled{background:var(--border);color:var(--text-light);cursor:not-allowed}.ai-comment-card{background:var(--input-bg);border-left:3px solid var(--accent);border-radius:8px;margin-top:16px;padding:12px}.ai-comment-label{color:var(--text-light);margin-bottom:8px;font-size:12px;font-weight:500}.ai-comment-text{color:var(--text);font-size:14px;line-height:1.6}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}}.tasks-section,.growth-section{padding:0 16px;padding-bottom:calc(96px + env(safe-area-inset-bottom));background:var(--bg-soft,#f2f5f0);flex-direction:column;flex:1;display:flex}.calendar-section{padding:16px;padding-bottom:calc(96px + env(safe-area-inset-bottom));background:var(--bg-soft,#f2f2f7);flex-direction:column;flex:1;display:flex}.mini-growth-bar{background:var(--bg,#fff);align-items:center;gap:8px;padding:6px 20px 10px;display:flex}.mini-growth-level{color:#1b7a3d;white-space:nowrap;font-size:12px;font-weight:600}.mini-growth-track{background:#e8e8ed;border-radius:2px;flex:1;height:4px;overflow:hidden}.mini-growth-fill{background:linear-gradient(90deg,#4ade80,#1b7a3d);border-radius:2px;height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.mini-growth-exp{color:#86868b;white-space:nowrap;font-size:11px}.exp-float-anim{color:#1b7a3d;pointer-events:none;z-index:99999;text-shadow:0 2px 12px #1b7a3d40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#ffffffeb;border-radius:12px;padding:10px 22px;font-size:20px;font-weight:700;animation:1.8s ease-out forwards expFloatUp;position:fixed;top:38%;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000001a}@keyframes expFloatUp{0%{opacity:0;transform:translate(-50%)translateY(0)scale(.5)}20%{opacity:1;transform:translate(-50%)translateY(-20px)scale(1.1)}to{opacity:0;transform:translate(-50%)translateY(-120px)scale(.8)}}.app-header{padding:12px 16px 8px}.goal-card,.add-step-btn,.ai-decompose-btn,.coach-btn,.reflection-textarea{box-sizing:border-box;width:100%}.goal-card *{max-width:100%}.reflection-section,.coach-section,.step-actions-row,.steps-section{box-sizing:border-box;width:100%}.reflection-textarea,.coach-btn,.add-step-btn,.ai-decompose-btn{box-sizing:border-box;width:100%;max-width:100%}.step-text{white-space:normal;word-break:break-word;background:0 0;border:none;flex:1;width:auto;min-width:0;padding:0;overflow:visible}.goal-card{overflow:visible}.reflection-textarea,.coach-btn,.add-step-btn,.ai-decompose-btn{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.reflection-section,.coach-section,.step-actions-row{box-sizing:border-box;width:100%;overflow:hidden}.app-title{margin:0 0 2px;font-size:15px;font-weight:600;line-height:1.3}.page-title{letter-spacing:-.5px;margin:0;font-size:28px;font-weight:600}.page-subtitle{opacity:.5;margin:0 0 12px;font-size:12px;line-height:1.4}.goal-header{justify-content:space-between;align-items:center;width:100%;margin-bottom:8px;display:flex}.goal-title{flex:1;margin:0;font-size:16px;font-weight:600}.goal-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.reminder-btn,.delete-btn{cursor:pointer;opacity:.5;background:0 0;border:none;align-items:center;padding:4px;display:flex}.reminder-btn:hover,.delete-btn:hover{opacity:1}.plan-generator-form .card-group{grid-template-columns:1fr 1fr;gap:10px;display:grid}.plan-generator-form .card-option{all:unset;box-sizing:border-box;text-align:center;border:1.5px solid var(--border);background:var(--card-bg);min-height:52px;color:var(--text-h);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:14px 12px;font-size:14px;font-weight:500;line-height:1.3;transition:all .18s;display:flex}.plan-generator-form .card-option:hover:not(.is-disabled){border-color:var(--accent);background:var(--accent-bg,#1a5c330a)}.plan-generator-form .card-option.is-selected{border-color:var(--accent);background:var(--accent-light,#1a5c3314);color:var(--accent);font-weight:600}.plan-generator-form .card-option.is-selected:before{content:"✓";font-size:13px;font-weight:600}.plan-generator-form .card-option.is-disabled{opacity:.4;cursor:not-allowed}.plan-generator-form .card-option:active:not(.is-disabled){transform:scale(.97)}.form-label-hint{color:var(--text-muted,#9ca3af);margin-left:6px;font-size:12px;font-weight:400}.step-text-group{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.step-text-title{width:100%;color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;outline:none;padding:0;font-family:inherit;font-size:15px;font-weight:500;overflow:hidden}.step-text-title:focus{text-overflow:clip}.step-text-detail{color:var(--text-muted,#9ca3af);white-space:normal;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.goal-card,.stat-card,.record-modal,.addgoal-modal{box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f,0 12px 32px #0000000a}.app-header h1,.page-title{letter-spacing:-.5px;font-weight:600}.section-title,.goal-name{letter-spacing:-.2px;font-weight:600}.btn-primary,.generate-plan-submit-btn,.ai-decompose-btn{letter-spacing:.3px;border-radius:12px;font-weight:600;transition:all .2s cubic-bezier(.34,1.56,.64,1)}.btn-primary:active,.generate-plan-submit-btn:active{transform:scale(.96)}.bottom-nav{-webkit-backdrop-filter:blur(20px);background:#ffffffeb;border-top:1px solid #0000000f}.step-item{border-radius:12px;margin-bottom:4px;padding:12px 14px}.fab-btn,.fab-button{transition:all .2s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #10b98159}.fab-btn:active,.fab-button:active{transform:scale(.93)}.calendar-task-item-btn.delete{color:#ef4444;opacity:.5}.calendar-task-item-btn.delete:hover{opacity:1}.step-text{font-size:15px;font-weight:500}.step-detail{color:var(--text-muted,#9ca3af);word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.step-focus-shortcut{cursor:pointer;color:var(--text-muted,#9ca3af);background:0 0;border:none;border-radius:8px;align-items:center;padding:4px;transition:color .15s,background .15s;display:flex}.step-focus-shortcut:hover{color:var(--accent);background:var(--accent-bg,#1a5c3314)}.calendar-task-item-actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:4px;min-width:100px;display:flex}.calendar-task-item-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.calendar-task-item-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.step-text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.step-text:focus{white-space:normal;overflow:visible}.step-text{width:100%;color:var(--text-h);background:0 0;border:none;outline:none;min-height:22px;padding:0;font-family:inherit;font-size:15px;font-weight:500;line-height:1.4}.empty-title{color:var(--text-h);margin-bottom:6px;font-size:20px;font-weight:600}.empty-sub{color:var(--text-muted,#9ca3af);margin-bottom:20px;font-size:14px}.quick-start-cards{grid-template-columns:1fr 1fr 1fr;gap:10px;width:100%;margin-bottom:16px;display:grid}.quick-start-card{border:1.5px solid var(--border);background:var(--card-bg);cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;transition:all .18s;display:flex}.quick-start-card:hover{border-color:var(--accent);background:var(--accent-bg,#1a5c330a);transform:translateY(-2px)}.quick-start-icon{margin-bottom:6px;font-size:28px;line-height:1;display:block}.quick-start-label{color:var(--text-h);font-size:13px;font-weight:600}.quick-start-desc{color:#86868b;-webkit-line-clamp:1;text-overflow:ellipsis;-webkit-box-orient:vertical;font-size:11px;display:-webkit-box;overflow:hidden}.calendar-day.today .day-number{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-weight:600;display:flex}.calendar-day.selected{background:var(--accent-bg,#1a5c330f);border-radius:12px}.calendar-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.calendar-task-list-header{color:var(--text-h);letter-spacing:-.3px;margin:16px 0 10px;font-size:16px;font-weight:600}.calendar-task-item{border:.5px solid #0000000f;border-radius:12px;padding:13px 14px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a}.bottom-nav,.app-bottom-nav{-webkit-backdrop-filter:blur(24px);background:#ffffffe0;border-top:.5px solid #00000014}.daily-review-optional{color:var(--text-muted,#9ca3af);background:var(--bg-soft,#f3f4f6);border-radius:10px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:400}.daily-summary-stats{gap:12px;margin-bottom:16px;display:flex}.daily-stat-item{background:var(--bg-soft,#f8f9fa);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px 8px;display:flex}.daily-stat-num{color:var(--accent);font-size:28px;font-weight:600;line-height:1}.daily-stat-label{color:var(--text-muted,#9ca3af);font-size:11px}.ai-review-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:14px;font-size:15px;font-weight:600;transition:all .2s}.ai-review-btn:disabled{opacity:.6;cursor:not-allowed}.toast.plant{opacity:1;color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;font-size:13px;line-height:1.6}.toast.unlock{opacity:1;color:#854d0e;white-space:pre-line;background:#fefce8;border:1px solid #fde68a;font-size:13px;font-weight:600;line-height:1.6}.plant-collection-section{background:var(--card-bg);border-radius:16px;margin-bottom:16px;padding:16px;box-shadow:0 1px 3px #0000000f,0 4px 12px #0000000a}.plant-collection-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.plant-collection-title{color:var(--text-h);font-size:15px;font-weight:600}.plant-collection-count{color:var(--text-muted,#9ca3af);background:var(--bg-soft,#f3f4f6);border-radius:10px;padding:2px 10px;font-size:12px}.plant-collection-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.plant-collection-item{border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;transition:all .2s;display:flex}.plant-collection-item.unlocked{background:var(--bg-soft,#f0fdf4);border:1.5px solid #bbf7d0}.plant-collection-item.locked{background:var(--bg-soft,#f9fafb);border:1.5px solid var(--border);opacity:.5}.plant-collection-emoji{font-size:26px;line-height:1}.plant-collection-item.locked .plant-collection-emoji{filter:grayscale();opacity:.4}.plant-collection-name{color:var(--text-h);text-align:center;font-size:11px;font-weight:600}.plant-collection-item.locked .plant-collection-name{color:var(--text-muted,#9ca3af)}.plant-collection-date{color:#16a34a;font-size:10px}.plant-collection-hint{text-align:center;color:var(--text-muted,#9ca3af);margin-top:8px;padding:8px 0;font-size:13px}.growth-plant-card{background:linear-gradient(160deg,#e8f5e9 0%,#f1f8e9 100%);border-radius:16px;flex-direction:column;align-items:center;gap:16px;margin-bottom:16px;padding:24px 20px 20px;display:flex}.growth-plant-wrap{justify-content:center;align-items:center;padding:8px 0;display:flex;overflow:visible}.growth-level-info{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.growth-level-badge{color:#2e7d32;font-size:15px;font-weight:600}.growth-exp-bar{background:#00000014;border-radius:99px;width:100%;height:8px;overflow:hidden}.growth-exp-fill{background:#4caf50;border-radius:99px;height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.growth-exp-text{color:#558b2f;font-size:12px}.growth-today-stats{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.growth-today-stat{background:var(--card-bg);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;display:flex;box-shadow:0 1px 4px #0000000f}.growth-today-icon{font-size:20px}.growth-today-num{color:var(--accent);font-size:26px;font-weight:600;line-height:1}.growth-today-label{color:var(--text-muted,#9ca3af);font-size:11px}.plant-rules-btn{color:var(--accent);background:var(--accent-bg,#1a5c3314);cursor:pointer;border:none;border-radius:10px;padding:3px 10px;font-size:11px}.plant-rules-panel{background:var(--bg-soft,#f8f9fa);border-radius:12px;flex-direction:column;gap:8px;margin-bottom:14px;padding:12px;display:flex}.plant-rule-item{opacity:.5;align-items:center;gap:10px;padding:6px 0;display:flex}.plant-rule-item.unlocked{opacity:1}.plant-rule-emoji{flex-shrink:0;font-size:20px}.plant-rule-info{flex-direction:column;flex:1;gap:1px;display:flex}.plant-rule-name{color:var(--text-h);font-size:13px;font-weight:600}.plant-rule-desc{color:var(--text-muted,#9ca3af);font-size:11px}.plant-rule-check{color:#16a34a;font-size:14px;font-weight:600}.step-text-group{flex:1;min-width:0;overflow:hidden}.step-text-title{white-space:nowrap;text-overflow:ellipsis;width:100%;color:var(--text-h);background:0 0;border:none;outline:none;padding:0;font-family:inherit;font-size:15px;font-weight:500;display:block;overflow:hidden}.toast{text-align:center;white-space:pre-line}.toast.plant,.toast.unlock{text-align:center}.focus-timmer-container{gap:16px;padding:16px}.goals-section-header{cursor:default;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:14px 4px 10px;display:flex}.goals-section-title{color:var(--text-h);letter-spacing:-.2px;font-size:14px;font-weight:600}.goals-section-count{color:var(--text-muted,#9ca3af);background:var(--bg-soft,#f3f4f6);border-radius:10px;padding:2px 8px;font-size:11px}.completed-goals-list{flex-direction:column;gap:8px;margin-top:4px;display:flex}.completed-goal-item{background:var(--bg-soft,#f8f9fa);opacity:.85;border-radius:12px;align-items:center;gap:12px;padding:14px;display:flex}.completed-goal-icon{font-size:18px}.completed-goal-info{flex-direction:column;flex:1;gap:2px;display:flex}.completed-goal-name{color:var(--text-h);opacity:.7;font-size:14px;font-weight:600;text-decoration:line-through}.completed-goal-meta{color:var(--text-muted,#9ca3af);font-size:11px}.completed-goal-delete{cursor:pointer;opacity:.4;background:0 0;border:none;padding:4px;font-size:14px}.completed-goal-delete:hover{opacity:1}.focus-timmer-container{padding:16px}.focus-timer-header{margin-bottom:16px}.focus-tree-area{margin-bottom:12px}.focus-timer-display{margin-bottom:16px}.focus-mini-start{margin-top:4px;margin-bottom:8px}.focus-minutes{margin-bottom:8px}.focus-whitenoise{margin-top:8px}.toast{white-space:pre-line;text-overflow:unset;text-align:center;color:var(--text-h);overflow:visible}.toast-plant{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.toast-unlock{color:#854d0e;background:#fefce8;border:1px solid #fde68a;font-weight:600}.toast-success{color:#fff;background:#10b981}.toast-error{color:#fff;background:#ef4444}.toast-info{color:#fff;background:#1e1e1eeb}.toast-close{color:currentColor;opacity:.5}.settings-btn{background:var(--bg-soft,#f3f4f6);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:background .15s;display:flex}.settings-btn:hover{background:var(--border)}.coach-select-grid{flex-direction:column;gap:10px;display:flex}.coach-select-card{border:1.5px solid var(--border);background:var(--card-bg);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;width:100%;padding:14px;transition:all .18s;display:flex}.coach-select-card.selected{border-color:var(--accent);background:var(--accent-bg,#1a5c330f)}.coach-card-name{color:var(--text-h);font-size:16px;font-weight:600}.coach-card-slogan{color:var(--text-muted,#9ca3af);font-size:12px;font-style:italic}.coach-card-examples{flex-direction:column;gap:3px;margin-top:2px;display:flex}.coach-card-example{color:var(--text-secondary,#6b7280);background:var(--bg-soft,#f3f4f6);border-radius:8px;padding:4px 8px;font-size:12px;line-height:1.4}.coach-card-check{color:var(--accent);margin-top:2px;font-size:11px;font-weight:600}.contact-cards{flex-direction:column;gap:10px;margin-top:12px;display:flex}.contact-card{background:var(--bg-soft,#f8f9fa);border-radius:12px;align-items:center;gap:12px;padding:14px;display:flex}.contact-icon{flex-shrink:0;font-size:22px}.contact-info{flex-direction:column;flex:1;gap:3px;display:flex}.contact-label{color:var(--text-muted,#9ca3af);font-size:11px;line-height:1.3}.contact-value{color:var(--text-h);letter-spacing:.5px;font-size:16px;font-weight:600}.contact-copy-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;padding:7px 14px;font-size:13px;font-weight:500}.goal-card-title{color:var(--text-h);word-break:break-all;font-size:16px;font-weight:600}.goal-card-meta{color:var(--text-muted,#9ca3af);font-size:12px}.goal-card-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.goal-expand-arrow{color:var(--text-muted,#9ca3af);padding:2px;font-size:14px}.goal-card-body{flex-direction:column;gap:8px;margin-top:12px;display:flex}.coach-call-btn{background:var(--bg-soft,#f3f4f6);color:var(--text-h);cursor:pointer;border:none;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px;font-size:13px;display:flex}.notes-btn{background:var(--bg-soft,#f3f4f6);color:var(--text-h);cursor:pointer;white-space:nowrap;border:none;border-radius:10px;align-items:center;gap:4px;padding:9px 14px;font-size:13px;display:flex}.goal-card.completed .goal-card-title{opacity:.6;text-decoration:line-through}.goal-card-header-right{flex-shrink:0;align-items:center;gap:4px;padding-top:2px;display:flex}.goal-notif-btn,.goal-delete-btn{cursor:pointer;color:var(--text-muted,#9ca3af);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:color .15s,background .15s;display:flex}.goal-notif-btn:hover{color:#1a5c33;background:#1a5c3314}.goal-delete-btn:hover{color:#ef4444;background:#ef444414}.goal-expand-arrow{color:var(--text-muted,#9ca3af);margin-left:2px;padding:6px 4px;font-size:12px}.add-step-btn{border:1.5px dashed var(--border);color:var(--text-muted,#9ca3af);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:6px;width:100%;padding:11px 14px;font-size:13px;transition:border-color .15s,color .15s;display:flex}.add-step-btn:hover{border-color:var(--accent);color:var(--accent)}.coach-btn{background:var(--bg-soft,#f3f4f6);color:var(--text-h);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;width:100%;padding:11px;font-size:13px;font-weight:500;display:flex}.goal-actions-row{gap:8px;margin-top:0;display:flex}.coach-call-btn{flex:1;padding:9px 8px;font-size:12px}.notes-btn{padding:9px 12px;font-size:12px}.goals-section-header{background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:14px 4px 10px;display:flex}.goals-section-header.collapsed{cursor:pointer;border-top:.5px solid var(--border);margin-top:4px;padding-top:16px}.goals-section-arrow{color:var(--text-muted,#9ca3af);margin-left:auto;font-size:12px}.goal-card-header{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:4px;display:flex}.goal-card-header-left{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.goal-card-header-right{flex-shrink:0;align-items:center;padding-top:0;display:flex}.goal-card-header-right .goal-notif-btn,.goal-card-header-right .goal-delete-btn{display:none}.goal-expand-arrow{color:var(--text-muted,#9ca3af);margin-left:0;padding:8px 4px;font-size:11px;line-height:1}.goal-card-footer{border-top:.5px solid var(--border);justify-content:flex-end;gap:4px;margin-top:8px;padding-top:12px;display:flex}.goal-card-footer .footer-btn{cursor:pointer;color:var(--text-muted,#9ca3af);background:0 0;border:none;border-radius:8px;align-items:center;gap:4px;padding:6px 10px;font-size:12px;display:flex}.goal-card-footer .footer-btn:hover{background:var(--bg-soft,#f3f4f6)}.goal-card-footer .footer-btn.danger:hover{color:#ef4444;background:#ef44440f}.goal-card-footer{border-top:.5px solid var(--border);gap:8px;margin-top:8px;padding-top:12px;display:flex}.footer-btn{background:var(--bg-soft,#f3f4f6);color:var(--text-secondary,#6b7280);cursor:pointer;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:4px;padding:8px;font-size:12px;display:flex}.footer-btn.danger{color:#ef4444}.footer-btn:hover{background:var(--border,#e5e7eb)}.empty-state-inline{padding:16px 0}.empty-input-row{gap:8px;width:100%;margin:16px 0 8px;display:flex;overflow:hidden}.quick-context-card{border:1.5px solid var(--accent);background:#fff;border-radius:16px;flex-direction:column;gap:12px;margin-top:8px;padding:16px;display:flex}.quick-context-goal{color:var(--text-h);margin:0;font-size:15px;font-weight:600}.quick-context-tip{color:var(--text-light);margin:0;font-size:13px}.quick-context-row{flex-direction:column;gap:8px;display:flex}.quick-context-label{color:var(--text);font-size:13px;font-weight:500}.quick-chips{flex-wrap:wrap;gap:8px;display:flex}.quick-chip{border:1.5px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:16px;padding:6px 14px;font-size:13px}.quick-chip-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.quick-context-input{box-sizing:border-box;border:1.5px solid var(--border);width:100%;height:40px;color:var(--text-h);border-radius:10px;outline:none;padding:0 12px;font-size:13px}.quick-context-input:focus{border-color:var(--accent)}.quick-context-actions{gap:8px;display:flex}.quick-context-cancel{border:1.5px solid var(--border);height:44px;color:var(--text);cursor:pointer;background:#fff;border-radius:10px;flex:1;font-size:14px}.quick-context-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;flex:2;height:44px;font-size:14px;font-weight:600}.empty-goal-input{border:1.5px solid var(--border);height:48px;color:var(--text-h);box-sizing:border-box;background:#fff;border-radius:12px;outline:none;flex:1;max-width:100%;padding:0 14px;font-size:14px}.empty-goal-input::placeholder{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty-goal-input:focus{border-color:var(--accent)}.empty-input-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#1b7a3d;border:none;border-radius:12px;height:48px;padding:0 18px;font-size:15px;font-weight:600;box-shadow:0 4px 12px #1b7a3d4d}.empty-or{color:var(--text-light);margin:4px 0 12px;font-size:12px}.quick-start-refresh{border:1px solid var(--border);color:var(--text-light);cursor:pointer;background:0 0;border-radius:16px;margin:10px auto 0;padding:6px 16px;font-size:13px;display:block}.empty-hero{color:var(--text-h);text-align:center;margin:32px 0 8px;font-size:20px;font-weight:600}.empty-subtitle{text-align:center;color:var(--text-muted,#9ca3af);margin:0 0 24px;font-size:14px}.reminder-modal{padding:28px 24px 20px;position:relative}.reminder-modal h3{margin:0 0 4px;font-size:17px}.reminder-close{color:var(--text-muted,#9ca3af);z-index:2;font-size:1.4rem}.coach-btn.primary-cta{color:#fff;background:linear-gradient(135deg,#10b981,#059669);padding:14px;font-size:14px;font-weight:600}.plan-generator-modal{max-height:82vh;padding:20px;overflow-y:auto}.plan-generator-modal h3{margin:0 0 14px;font-size:16px}.plan-generator-form{padding-bottom:24px}.plan-generator-form .form-group{margin-bottom:14px}.plan-generator-form .form-label{margin-bottom:8px;font-size:13px}.plan-generator-form .card-group{gap:6px}.plan-generator-form .card-option{padding:8px 12px;font-size:13px}.growth-plant-card{min-height:240px;padding:32px 20px 20px}.growth-plant-wrap{justify-content:center;align-items:center;width:100%;height:auto;min-height:160px;display:flex;overflow:visible}.growth-plant-wrap svg{max-width:180px;height:auto;overflow:visible}.goal-card{align-items:stretch}.goal-card-body{width:100%}.goal-card-body>*{box-sizing:border-box;width:100%}.goal-actions-row,.goal-card-footer{width:100%}.goal-card.completed{opacity:.85;background:var(--bg-soft,#f8f9fa);box-shadow:none}.goal-card.completed:hover{transform:none}.clear-today-btn{color:var(--text-muted,#9ca3af);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;padding:5px 10px;font-size:12px;transition:all .15s}.clear-today-btn:hover{color:#ef4444;background:#ef44440d;border-color:#ef4444}.relax-today-btn{color:var(--text-muted,#9ca3af);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;flex-shrink:0;padding:4px 10px;font-size:11px}.relax-today-btn:hover{color:#f59e0b;border-color:#f59e0b}.focus-timer-overlay{-webkit-overflow-scrolling:touch;touch-action:pan-y;align-items:flex-start;padding:24px 0 60px;overflow-y:auto}.focus-timmer-container{justify-content:flex-start;gap:16px;width:100%;max-width:480px;margin:0 auto;padding:16px 24px}.focus-btn.focus-start{color:#fff;background:#10b981;padding:14px 32px;font-size:16px;font-weight:600}.focus-btn.focus-pause{color:#fff;background:#f59e0b;font-weight:600}.focus-btn.focus-mini{color:#ffffffd9;background:#ffffff1a;border:1px solid #fff3;width:100%}.focus-timmer-container{-webkit-overflow-scrolling:touch;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:480px;padding:20px 24px 40px;display:flex;overflow-y:auto}.focus-timer-overlay{touch-action:pan-y;align-items:flex-start;padding-top:16px;overflow-y:auto}.focus-step-name{color:#fff;text-align:center;opacity:.85;max-width:280px;margin:0;font-size:15px;font-weight:500;line-height:1.4}.focus-tree-area{margin:0}.focus-time{color:#fff;letter-spacing:2px;margin:0;font-size:64px;font-weight:600;line-height:1}.focus-main-action{width:100%}.focus-main-btn{cursor:pointer;letter-spacing:.5px;border:none;border-radius:12px;width:100%;padding:16px;font-size:17px;font-weight:600}.focus-main-btn.start{color:#fff;background:#10b981}.focus-main-btn.pause{color:#fff;background:#f59e0b}.focus-time-adjust{color:#fff9;align-items:center;gap:20px;font-size:14px;display:flex}.focus-time-adjust button{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;padding:6px 16px;font-size:15px}.focus-secondary-row{gap:10px;width:100%;display:flex}.focus-secondary-btn{color:#fffc;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff26;border-radius:10px;flex:1;padding:11px 8px;font-size:13px}.focus-secondary-btn.active{background:#fff3;border-color:#fff6}.focus-abandon-btn{color:#ffffff59;cursor:pointer;background:0 0;border:none;margin-top:-4px;padding:4px 12px;font-size:13px}.decompose-modal{background:var(--card-bg);border-radius:16px;flex-direction:column;gap:20px;width:min(360px,88vw);padding:24px;display:flex;position:relative}.decompose-modal-title{color:var(--text-h);margin:0;font-size:17px;font-weight:600}.decompose-modal-sub{color:var(--text-muted,#9ca3af);margin:-12px 0 0;font-size:13px}.decompose-field{flex-direction:column;gap:10px;display:flex}.decompose-label{color:var(--text-h);font-size:14px;font-weight:600}.decompose-options{flex-wrap:wrap;gap:8px;display:flex}.decompose-option{border:1.5px solid var(--border);color:var(--text-h);cursor:pointer;background:0 0;border-radius:16px;padding:8px 14px;font-size:13px;transition:all .15s}.decompose-option.selected{border-color:var(--accent);background:var(--accent-bg,#1a5c3314);color:var(--accent);font-weight:600}.decompose-confirm-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:12px;width:100%;margin-top:4px;padding:14px;font-size:15px;font-weight:600}.confirm-modal{text-align:center}.confirm-title{color:var(--text-h);margin:0 0 8px;font-size:20px;font-weight:600}.confirm-subtitle{color:var(--text-muted,#9ca3af);margin:0 0 24px;font-size:14px;line-height:1.5}.app-brand{align-items:center;gap:10px;display:flex}.app-brand-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 0 3px #10b98133}.app-brand-text{flex-direction:column;gap:1px;display:flex}.app-brand-name{color:var(--text-h);letter-spacing:-.3px;font-size:15px;font-weight:600;line-height:1.2}.app-brand-sub{color:var(--text-muted,#9ca3af);letter-spacing:.2px;font-size:10px;line-height:1}.app-header-hidden{display:none}.tasks-section:before,.growth-section:before{content:"";display:block}.page-title-row{align-items:center;gap:8px;margin-bottom:2px;display:flex}.reminder-overlay{z-index:99999;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.reminder-modal{z-index:100000;background:var(--card-bg);border-radius:16px;width:min(320px,88vw);padding:24px;position:relative;box-shadow:0 20px 60px #0000004d}.reminder-time-picker{margin:20px 0}.time-input{color:var(--text-h);border:2px solid var(--border);text-align:center;background:var(--bg-soft);border-radius:12px;width:100%;padding:12px 16px;font-size:32px;font-weight:600}.reminder-controls{justify-content:stretch;gap:10px;display:flex}.reminder-btn-save{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:10px;flex:1;padding:13px;font-size:15px;font-weight:600}.reminder-btn-remove{background:var(--bg-soft);color:var(--text-muted);cursor:pointer;border:none;border-radius:10px;padding:13px;font-size:14px}.reminder-time-picker{justify-content:center;margin:20px 0;display:flex}.time-input{text-align:center;border:2px solid var(--border);background:var(--bg-soft,#f3f4f6);width:auto;min-width:160px;color:var(--text-h);-webkit-appearance:none;letter-spacing:2px;border-radius:12px;padding:14px 20px;font-size:28px;font-weight:600}.install-guide-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:99998;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.install-guide-modal{background:var(--card-bg,white);text-align:center;border-radius:20px;width:100%;max-width:340px;padding:28px 24px 24px;box-shadow:0 20px 60px #0000004d}.install-guide-icon{margin-bottom:8px;font-size:44px}.install-guide-title{color:var(--text-h);margin:0 0 6px;font-size:18px;font-weight:700}.install-guide-sub{color:var(--text-muted,#9ca3af);margin:0 0 20px;font-size:13px}.install-guide-steps{text-align:left;flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.install-guide-step{background:var(--bg-soft,#f9fafb);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.install-step-num{color:#fff;background:#10b981;border-radius:6px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:700}.install-step-text{color:var(--text-h);font-size:13px;line-height:1.5}.install-step-text strong{color:#10b981;font-weight:600}.install-guide-btn{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:12px;width:100%;padding:13px;font-size:15px;font-weight:600}.garden-card{background:var(--card-bg,white);border:.5px solid #0000000a;border-radius:16px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px 3px #0000000f,0 8px 24px #0000000d}.garden-scene{background:linear-gradient(#e8f4f0 0%,#c5e0d0 40%,#8bbf9a 75%,#5a9e6e 100%);width:100%;height:260px;position:relative;overflow:hidden}.garden-sun{z-index:1;filter:drop-shadow(0 0 8px #fbbf2466);font-size:32px;animation:30s linear infinite sunRotate,6s ease-in-out infinite sunFloat;position:absolute;top:14px;right:18px}@keyframes sunRotate{0%{transform:rotate(0)translateY(0)}to{transform:rotate(360deg)translateY(0)}}@keyframes sunFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.garden-cloud{z-index:1;opacity:.85;font-size:24px;position:absolute}.cloud-1{animation:16s ease-in-out infinite cloudFloat1;top:10px;left:18%}.cloud-2{font-size:20px;animation:22s ease-in-out infinite cloudFloat2;top:28px;left:56%}@keyframes cloudFloat1{0%,to{transform:translate(0)}50%{transform:translate(20px)}}@keyframes cloudFloat2{0%,to{transform:translate(0)}50%{transform:translate(-25px)}}.garden-grass{z-index:0;background:linear-gradient(#0000,#22c55e40);height:24px;position:absolute;bottom:0;left:0;right:0}.garden-grass:before{content:"";background-image:radial-gradient(6px 4px at 10% 60%,#16a34a80,#0000),radial-gradient(6px 4px at 30% 80%,#16a34a66,#0000),radial-gradient(6px 4px at 50% 60%,#16a34a80,#0000),radial-gradient(6px 4px at 70% 80%,#16a34a66,#0000),radial-gradient(6px 4px at 90% 60%,#16a34a80,#0000);position:absolute;inset:0}.garden-plant-item{transform-origin:bottom;filter:drop-shadow(0 2px 3px #00000014);cursor:pointer;-webkit-user-select:none;user-select:none;animation:.6s ease-out backwards plantAppear,4s ease-in-out infinite plantSway;display:inline-block;position:absolute}@keyframes plantAppear{0%{opacity:0;transform:translateY(20px)scale(0)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes plantSway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.garden-plant-item:hover{z-index:10;transition:transform .2s;animation:none;transform:scale(1.2)rotate(0)}.garden-empty{z-index:5;flex-direction:column;justify-content:flex-start;align-items:center;padding-top:16px;display:flex;position:absolute;inset:0}.garden-empty-text{text-align:center;background:linear-gradient(#fff0 0%,#ffffffe6 100%);padding:20px 16px 14px;position:absolute;bottom:0;left:0;right:0}.garden-empty-title{color:#1a3a1a;margin:0 0 2px;font-size:15px;font-weight:600}.garden-empty-sub{color:#2d5a2d;opacity:.9;margin:0;font-size:12px;line-height:1.5}.garden-info{flex-direction:column;gap:8px;padding:14px 18px 16px;display:flex}.garden-info-top{justify-content:space-between;align-items:center;display:flex}.garden-level-badge{color:var(--text-h);letter-spacing:-.2px;font-size:14px;font-weight:600}.garden-collection-count{color:var(--text-muted,#9ca3af);background:var(--bg-soft,#f3f4f6);border-radius:10px;padding:3px 10px;font-size:12px;font-weight:600}.garden-exp-bar{background:#0000000f;border-radius:99px;width:100%;height:6px;overflow:hidden}.garden-exp-fill{background:linear-gradient(90deg,#4ade80,#22c55e);border-radius:99px;height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.garden-exp-text{color:var(--text-muted,#9ca3af);font-size:11px}.app-container,body,#root{background:var(--bg)}.share-garden-btn{color:#fff;letter-spacing:.5px;cursor:pointer;background:linear-gradient(135deg,#16a34a,#15803d);border:none;border-radius:12px;width:100%;margin-bottom:16px;padding:13px;font-size:15px;font-weight:600;transition:all .2s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #16a34a4d}.share-garden-btn:active{transform:scale(.97);box-shadow:0 2px 8px #16a34a40}.share-overlay{z-index:99999;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.share-card-wrap{flex-direction:column;align-items:center;gap:14px;width:100%;max-width:360px;display:flex}.share-card{background:linear-gradient(175deg,#c0e8c8 0%,#d1fae5 40%,#f0fdf4 100%);border-radius:16px;width:100%;position:relative;overflow:hidden;box-shadow:0 20px 60px #0006}.share-card-sky{background:linear-gradient(#c0e8c8,#d1fae5);height:80px;position:relative}.share-sun{font-size:30px;position:absolute;top:14px;right:20px}.share-cloud{opacity:.85;font-size:22px;position:absolute}.share-cloud-1{top:20px;left:18%}.share-cloud-2{font-size:18px;top:38px;left:52%}.share-card-title-block{flex-direction:column;align-items:center;gap:4px;padding:4px 20px 12px;display:flex}.share-brand-dot{background:#16a34a;border-radius:50%;width:6px;height:6px;margin-bottom:4px;box-shadow:0 0 0 3px #16a34a33}.share-card-title{color:#166534;letter-spacing:-.5px;margin:0;font-size:22px;font-weight:600}.share-card-sub{color:#4d7c0f;margin:0;font-size:13px;font-weight:500}.share-plants-area{min-height:120px;padding:8px 16px 12px}.share-empty{flex-direction:column;align-items:center;padding:20px 0;display:flex}.share-plants-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.share-plant-item{flex-direction:column;align-items:center;gap:3px;animation:.4s cubic-bezier(.34,1.56,.64,1) both sharePlantPop;display:flex}@keyframes sharePlantPop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.share-plant-emoji{font-size:30px;line-height:1}.share-plant-name{color:#4d7c0f;text-align:center;font-size:9px;font-weight:600;line-height:1.2}.share-card-stats{background:#ffffff80;border-radius:12px;justify-content:space-around;align-items:center;margin:0 16px 12px;padding:12px 20px;display:flex}.share-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.share-stat-num{color:#166534;font-size:20px;font-weight:700;line-height:1}.share-stat-label{color:#4d7c0f;font-size:10px;font-weight:500}.share-stat-divider{background:#16a34a33;width:1px;height:28px}.share-card-footer{background:linear-gradient(#0000,#16a34a1f);flex-direction:column;align-items:center;gap:2px;padding:10px 20px 16px;display:flex}.share-footer-brand{color:#166534;font-size:14px;font-weight:600}.share-footer-url{color:#4d7c0f;opacity:.7;font-size:10px}.share-tip{color:#ffffffd9;text-align:center;margin:0;font-size:13px;font-weight:500}.share-close-btn{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:16px;padding:10px 32px;font-size:14px}.share-nickname-wrap{width:100%}.share-nickname-input{color:#fff;text-align:center;box-sizing:border-box;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff26;border:1.5px solid #ffffff4d;border-radius:12px;outline:none;width:100%;padding:12px 16px;font-size:14px}.share-nickname-input::placeholder{color:#ffffff80}.share-nickname-input:focus{background:#ffffff38;border-color:#fff9}.share-save-btn{color:#fff;cursor:pointer;letter-spacing:.3px;background:#16a34a;border:none;border-radius:12px;width:100%;padding:13px;font-size:15px;font-weight:600;transition:all .15s;box-shadow:0 4px 14px #16a34a59}.share-save-btn:active{transform:scale(.97)}.coach-feedback-card,.ai-comment-card{border-left:3px solid var(--accent);border-radius:12px;padding:12px 14px}.coach-feedback-header,.ai-comment-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.coach-name-tag{letter-spacing:.2px;border-radius:16px;padding:3px 10px;font-size:12px;font-weight:600}.coach-tag-label{color:var(--text-muted,#9ca3af);font-size:11px;font-weight:500}.goal-note{color:var(--text-light);white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin:2px 0 4px;font-size:12px;display:block;overflow:hidden}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn-primary{letter-spacing:.3px;border-radius:12px;height:52px;font-weight:600;box-shadow:0 2px 8px #1a5c3333}.btn-primary:active{transform:scale(.97)}.fab{transition:transform .2s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #1a5c3347}.goal-progress-bar{border-radius:4px;height:5px;overflow:hidden}.goal-progress-fill{border-radius:4px}.quick-start-card{transition:transform .18s,box-shadow .18s}.quick-start-card:active{transform:scale(.96);box-shadow:0 1px 2px #0000000a}.quick-chip{transition:all .15s}.empty-input-btn{background:#1a5c33;border-radius:12px;transition:all .18s;box-shadow:0 2px 8px #1a5c3333}.empty-input-btn:active{opacity:.88;transform:scale(.96)}.quick-context-submit{letter-spacing:.3px;background:#1a5c33;border-radius:12px}.garden-scene{border-radius:16px 18px 0 0}button{transition:all .18s}.empty-hero{letter-spacing:-.5px;color:#1a2e1a;font-size:22px}.empty-subtitle{color:#7a9a7a;font-size:15px;line-height:1.6}.goal-note{color:#7a9a7a;font-size:12px}.ob-btn,.onboarding-btn{letter-spacing:.3px;background:#1a5c33;border-radius:16px;box-shadow:0 2px 12px #1a5c3338}.garden-share-btn{background:#1a5c33;border-radius:12px}.step-item.today,.step-item.current{background:#1a5c330a;border-left:2px solid #1a5c33}.toast{letter-spacing:.2px;border-radius:12px;font-size:14px}.step-item.step-today{background:#1a5c330a;border-left:2.5px solid #1a5c33;border-radius:12px;padding-left:10px}.step-item.step-today .step-text-title{color:#134a28;font-weight:600}.step-item.step-overdue-item{background:#f59e0b08;border-left:2.5px solid #f59e0b;border-radius:12px;padding-left:10px}*{-webkit-font-smoothing:antialiased}.goal-card,.garden-card,.calendar-task-panel,.quick-start-card,.ob-demo,.ob-coach-card,.quick-context-card{border:.5px solid #0000000d;box-shadow:0 1px 4px #0000000a,0 0 0 .5px #00000008}.app-header{background:linear-gradient(180deg, #e8f5ea 0%, var(--bg-soft,#f2f5f0) 100%);border-bottom:.5px solid #1a5c3314}.tab-item.active:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;margin:2px auto 0;display:block}.btn-primary,.empty-input-btn,.quick-context-submit,.ob-btn,.onboarding-btn{letter-spacing:.3px;border-radius:12px;font-weight:600;transition:all .18s}.btn-primary{box-shadow:0 2px 10px #1a5c332e}.empty-input-btn{background:#1a5c33;box-shadow:0 2px 10px #1a5c3333}.quick-context-submit{background:#1a5c33}.ob-btn,.onboarding-btn{background:#1a5c33;box-shadow:0 3px 12px #1a5c3338}.btn-primary:active,.empty-input-btn:active,.quick-context-submit:active,.ob-btn:active{transform:scale(.97)}.fab{background:#1a5c33;transition:transform .2s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 16px #1a5c3347}.fab:active{transform:scale(.9)}input:focus,textarea:focus{border-color:#1a5c33;outline:none;box-shadow:0 0 0 3px #1a5c3314}.quick-chip-active{color:#1a5c33;background:#1a5c3314;border-color:#1a5c33;font-weight:600}.quick-chip:active{transform:scale(.94)}.quick-start-card:active{transform:scale(.97)}.garden-exp-fill{background:linear-gradient(90deg,#4ade80,#22c55e);border-radius:99px;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.toast{letter-spacing:.2px;border-radius:12px}.share-garden-btn{letter-spacing:.3px;background:#1a5c33;border-radius:16px;box-shadow:0 2px 10px #1a5c3333}.task-filter-bar{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;margin:12px 0 16px;display:flex;overflow-x:auto}.task-filter-bar::-webkit-scrollbar{display:none}.task-filter-btn{border:1px solid var(--border,#e2e8f0);background:var(--card-bg,white);color:var(--text-light,#94a3b8);cursor:pointer;white-space:nowrap;border-radius:16px;flex-shrink:0;align-items:center;gap:4px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .18s;display:flex}.task-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;box-shadow:0 2px 8px #1a5c332e}.task-filter-btn:active{transform:scale(.96)}.task-filter-count{opacity:.8;font-size:11px;font-weight:600}.task-filter-empty{text-align:center;color:var(--text-light,#94a3b8);padding:48px 20px}.task-filter-empty p{color:var(--text,#475569);margin:0 0 6px;font-size:15px;font-weight:500}.task-filter-empty span{opacity:.7;font-size:13px}.todo-actions{padding:12px 0}.todo-complete-btn{color:#fff;cursor:pointer;background:#1a5c33;border:none;border-radius:12px;width:100%;height:48px;font-size:15px;font-weight:600;transition:all .18s}.todo-complete-btn:active{opacity:.88;transform:scale(.97)}.habit-tracking-card{padding:8px 0 12px}.habit-stats-row{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.habit-stat{text-align:center;background:var(--bg-soft,#f2f5f0);border-radius:12px;padding:12px 8px}.habit-stat-num{color:#1a5c33;font-size:22px;font-weight:600;line-height:1.2;display:block}.habit-stat-label{color:var(--text-light,#94a3b8);margin-top:4px;font-size:11px;display:block}.habit-checkin-btn{color:#fff;cursor:pointer;background:#1a5c33;border:none;border-radius:12px;width:100%;height:48px;font-size:15px;font-weight:600;transition:all .18s}.habit-checkin-btn:active{opacity:.88;transform:scale(.97)}.habit-done-today{text-align:center;color:#1a5c33;background:#1a5c330f;border-radius:12px;padding:14px;font-size:15px;font-weight:600}.todo-date-row{background:var(--bg-soft,#f2f5f0);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:12px 14px;display:flex}.todo-date-info{flex-direction:column;gap:2px;display:flex}.todo-date-text{color:var(--text-h);font-size:15px;font-weight:600}.todo-countdown{color:var(--text-light,#94a3b8);font-size:12px}.todo-date-change-btn{color:#1a5c33;cursor:pointer;background:#fff;border:1px solid #1a5c3333;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:500;position:relative}.install-banner{z-index:999;background:#fff;border-radius:16px;justify-content:space-between;align-items:center;width:calc(100% - 32px);max-width:460px;padding:14px 16px;animation:.4s cubic-bezier(.34,1.56,.64,1) slideUpBanner;display:flex;position:fixed;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #0000001f,0 0 0 .5px #0000000f}@keyframes slideUpBanner{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.install-banner-left{align-items:center;gap:12px;display:flex}.install-banner-icon{font-size:28px}.install-banner-title{color:var(--text-h);margin:0 0 2px;font-size:14px;font-weight:600}.install-banner-desc{color:var(--text-light);margin:0;font-size:12px}.install-banner-actions{align-items:center;gap:8px;display:flex}.install-banner-btn{color:#fff;cursor:pointer;background:#1a5c33;border:none;border-radius:10px;height:36px;padding:0 16px;font-size:14px;font-weight:600}.install-banner-close{background:var(--bg-soft);width:28px;height:28px;color:var(--text-light);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex}.growth-subtabs{background:var(--bg,#fff);border-bottom:1px solid #f2f2f7;gap:8px;padding:12px 20px 0;display:flex}.growth-subtab{color:#86868b;cursor:pointer;background:0 0;border:none;border-bottom:2.5px solid #0000;border-radius:0;flex:1;padding:9px 0;font-size:14px;font-weight:600;transition:all .2s}.growth-subtab.active{color:#1b7a3d;border-bottom-color:#1b7a3d}.mine-view{background:#f2f2f7;min-height:70vh;padding:16px 20px 100px}.mine-wallet{gap:10px;margin-bottom:16px;display:flex}.wallet-item{text-align:center;background:#fff;border-radius:14px;flex:1;padding:14px 8px;box-shadow:0 1px 4px #0000000a}.wallet-icon{margin-bottom:4px;font-size:22px;display:block}.wallet-num{color:#1d1d1f;font-size:20px;font-weight:700;display:block}.wallet-label{color:#86868b;margin-top:2px;font-size:11px;display:block}.cut-zone{text-align:center;background:#1a1a2e;border-radius:20px;margin-bottom:20px;padding:28px 20px 24px;box-shadow:0 4px 20px #1a1a2e33}.cut-ore-display{margin-bottom:12px;font-size:64px;animation:3s ease-in-out infinite oreFloat}@keyframes oreFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.cut-cost-hint{color:#fff9;margin-bottom:4px;font-size:13px}.cut-prob-hint{color:#ffffff59;margin-bottom:20px;font-size:11px}.cut-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2ecc71,#1b7a3d);border:none;border-radius:14px;width:100%;padding:15px;font-size:17px;font-weight:700;transition:transform .15s,opacity .15s;box-shadow:0 4px 16px #2ecc7159}.cut-btn:active{transform:scale(.97)}.cut-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.mine-section{margin-bottom:20px}.mine-section-title{color:#1d1d1f;margin:0 0 10px;font-size:15px;font-weight:600}.gem-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.gem-card{text-align:center;border:1.5px solid var(--gem-color,#e5e5ea);box-shadow:0 0 0 0 var(--gem-color,transparent);background:#fff;border-radius:12px;padding:12px 6px;transition:transform .15s}.gem-card:active{transform:scale(.95)}.gem-emoji{margin-bottom:4px;font-size:28px;display:block}.gem-name{color:#3a3a3c;font-size:10px;font-weight:500;display:block}.gem-rarity-label{color:var(--gem-color,#86868b);margin-top:2px;font-size:9px;font-weight:600;display:block}.mine-empty{text-align:center;color:#86868b;padding:40px 20px;font-size:14px;line-height:1.7}.gem-reveal-modal{text-align:center;border-radius:24px;width:min(300px,85vw);animation:.45s cubic-bezier(.34,1.56,.64,1) gemPop;position:relative;overflow:hidden}.gem-reveal-bg{padding:48px 32px 36px;position:relative}.gem-reveal-bg.common{background:linear-gradient(160deg,#f8f9fa 0%,#e9ecef 100%)}.gem-reveal-bg.fine{background:linear-gradient(160deg,#f3f0ff 0%,#ddd6fe 100%)}.gem-reveal-bg.rare{background:linear-gradient(160deg,#e8f4fd 0%,#bfdbfe 100%)}.gem-reveal-bg.legend{background:linear-gradient(160deg,#fef9e7 0%,#fde68a 100%)}.gem-reveal-bg.epic{background:linear-gradient(160deg,#fdf2f8 0%,#fbcfe8 100%)}.gem-reveal-glow{filter:blur(30px);opacity:.5;z-index:0;border-radius:50%;width:120px;height:120px;animation:2s ease-in-out infinite glowPulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-60%)}.gem-reveal-glow.common{background:#9ca3af}.gem-reveal-glow.fine{background:#8b5cf6}.gem-reveal-glow.rare{background:#3b82f6}.gem-reveal-glow.legend{background:#f59e0b}.gem-reveal-glow.epic{background:#ec4899}@keyframes glowPulse{0%,to{opacity:.4;transform:translate(-50%,-60%)scale(1)}50%{opacity:.7;transform:translate(-50%,-60%)scale(1.3)}}.gem-reveal-emoji{z-index:1;margin-bottom:16px;font-size:80px;animation:.6s cubic-bezier(.34,1.56,.64,1) .2s both gemBounce;position:relative}@keyframes gemBounce{0%{opacity:0;transform:scale(0)rotate(-15deg)}to{opacity:1;transform:scale(1)rotate(0)}}.gem-reveal-name{color:#1d1d1f;z-index:1;font-size:24px;font-weight:700;position:relative}.gem-reveal-rarity{z-index:1;margin-top:4px;font-size:15px;font-weight:700;position:relative}.gem-reveal-btn{color:#fff;cursor:pointer;z-index:1;background:#1b7a3d;border:none;border-radius:14px;width:calc(100% - 64px);margin:20px 32px 32px;padding:14px;font-size:16px;font-weight:600;position:relative}.cutting-overlay{text-align:center}.cutting-rock{font-size:72px;animation:.25s infinite rockShake;display:block}.cutting-hammer{margin-top:-12px;font-size:40px;animation:.5s infinite hammerStrike;display:block}@keyframes rockShake{0%,to{transform:rotate(-4deg)scale(1)}50%{transform:rotate(4deg)scale(1.05)}}@keyframes hammerStrike{0%{transform:rotate(-30deg)translateY(-10px)}50%{transform:rotate(10deg)translateY(5px)}to{transform:rotate(-30deg)translateY(-10px)}}.plant-visual{cursor:pointer;justify-content:center;align-items:center;transition:transform .3s;display:inline-flex}.plant-visual[role=button]:hover{transform:scale(1.05)}.plant-visual[role=button]:active{transform:scale(.98)}.plant-floating-anim,.plant-thriving-anim,.plant-wilting-anim{animation:3s ease-in-out infinite plant-float}.plant-dead-anim{animation:none}.plant-thriving{filter:drop-shadow(0 0 6px #4caf5099)}.plant-wilting{filter:saturate(.4);transform:rotate(-8deg)}.plant-dead{filter:grayscale()opacity(.5)}@keyframes plant-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.bottom-sheet-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a80;animation:.3s cubic-bezier(.32,.72,0,1) forwards overlayFadeIn;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.bottom-sheet{background:var(--bg);z-index:1001;border-radius:16px 16px 0 0;max-height:60vh;animation:.3s cubic-bezier(.32,.72,0,1) forwards slide-up;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet-handle{background:var(--border);border-radius:2px;width:60px;height:4px;margin:12px auto}.bottom-sheet-content{padding:16px 20px 32px}.bottom-sheet-stat-row{justify-content:space-between;margin-bottom:12px;display:flex}.bottom-sheet-stat{flex-direction:column;gap:4px;display:flex}.bottom-sheet-stat-label{color:var(--text-light);font-size:11px}.bottom-sheet-stat-value{color:var(--text-h);font-size:16px;font-weight:600}.time-sheet{padding:8px 4px 24px}.time-sheet-header{flex-direction:column;gap:4px;margin-bottom:20px;display:flex}.time-sheet-title{color:var(--text-h);font-size:18px;font-weight:600}.time-sheet-date{color:var(--text-light);font-size:13px}.time-sheet-section{margin-bottom:16px}.time-sheet-row{background:var(--bg-soft);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:14px;transition:background .15s;display:flex}.time-sheet-row:hover{background:var(--border)}.time-sheet-label{color:var(--text);font-size:13px}.time-sheet-value{color:var(--text-h);font-size:13px}.time-sheet-value.unscheduled{color:color-mix(in srgb, var(--text) 40%, transparent)}.time-picker{background:var(--bg-soft);border-radius:10px;margin-top:12px;padding:16px}.time-picker-row{justify-content:center;align-items:center;gap:12px;display:flex}.time-picker-row select{border:1px solid var(--border);background:var(--input-bg);color:var(--text);cursor:pointer;border-radius:8px;padding:10px 14px;font-size:14px}.time-picker-row select:focus{border-color:var(--accent);outline:none}.time-picker-sep{color:var(--text-light);font-size:16px}.time-picker-clear{color:var(--text-light);cursor:pointer;background:0 0;border:none;margin:12px auto 0;padding:8px 16px;font-size:13px;display:block}.time-picker-clear:hover{color:var(--text)}.time-sheet-actions{margin-top:20px}.time-sheet-actions .btn-primary{border-radius:10px;width:100%;padding:14px}@media (prefers-reduced-motion:reduce){.bottom-sheet-overlay,.bottom-sheet{animation:none!important}}.ob-overlay{z-index:1000;isolation:isolate;background:#fff;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.ob-skip{z-index:10;color:#bbb;cursor:pointer;background:0 0;border:none;padding:8px 4px;font-size:14px;position:absolute;top:20px;right:20px}.ob-stage{flex:1;position:relative;overflow:hidden}.ob-slide{box-sizing:border-box;opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:60px 24px 24px;transition:transform .32s cubic-bezier(.4,0,.2,1),opacity .32s;display:flex;position:absolute;inset:0;overflow-y:auto;transform:translate(100%)}.ob-slide-active{opacity:1;pointer-events:auto;transform:translate(0)}.ob-slide-past{opacity:0;pointer-events:none;transform:translate(-40%)}.ob-slide-future{opacity:0;pointer-events:none;transform:translate(100%)}@media (prefers-reduced-motion:reduce){.ob-slide{transition:opacity .2s}.ob-slide-active,.ob-slide-past,.ob-slide-future{transform:none}.ob-slide-active{opacity:1}}.ob-step{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:320px;display:flex}.ob-step-scroll{justify-content:flex-start;max-width:340px;padding-top:8px}.ob-logo{margin-bottom:20px}.ob-tag{color:#2e7d32;letter-spacing:1px;background:#e6f4ea;border-radius:20px;margin-bottom:16px;padding:4px 14px;font-size:12px;font-weight:600;display:inline-block}.ob-title{color:#1a1a1a;margin:0 0 12px;font-size:22px;font-weight:600;line-height:1.4}.ob-desc{color:#666;margin:0;font-size:15px;line-height:1.7}.ob-demo{background:#f0faf1;border:1px solid #d4edda;border-radius:16px;flex-direction:column;gap:10px;width:100%;margin-bottom:22px;padding:14px;display:flex}.ob-demo-input{background:#fff;border:1px solid #e8f5e9;border-radius:10px;flex-direction:column;gap:3px;padding:10px 14px;display:flex}.ob-demo-label{color:#9ca3af;font-size:11px;font-weight:500}.ob-demo-value{color:#1f2937;font-size:15px;font-weight:600}.ob-demo-arrow{text-align:center;color:#4caf50;background:#e8f5e9;border-radius:20px;padding:5px 10px;font-size:12px;font-weight:600}.ob-demo-results{flex-direction:column;gap:7px;display:flex}.ob-demo-item{color:#374151;text-align:left;background:#fff;border:1px solid #e8f5e9;border-radius:9px;align-items:center;gap:8px;padding:9px 12px;font-size:13px;font-weight:500;display:flex}.ob-check{color:#fff;background:#4caf50;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:flex}.ob-plant-row{align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.ob-plant-item{flex-direction:column;align-items:center;gap:6px;display:flex}.ob-plant-label{color:#9ca3af;font-size:12px;font-weight:500}.ob-plant-arrow{color:#4caf50;margin-bottom:20px;font-size:24px;font-weight:300}.ob-badges{align-items:center;gap:10px;margin-top:18px;font-size:22px;display:flex}.ob-badge-locked{opacity:.28;filter:grayscale()}.ob-coach-list{flex-direction:column;gap:10px;width:100%;display:flex}.ob-coach-card{text-align:left;cursor:pointer;background:#fafafa;border:1.5px solid #e5e7eb;border-radius:16px;width:100%;padding:14px 16px;transition:border-color .15s,background .15s}.ob-coach-card:active{transform:scale(.98)}.ob-coach-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.ob-coach-name{color:#1f2937;font-size:16px;font-weight:700}.ob-coach-check{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:flex}.ob-coach-slogan{color:#9ca3af;margin:0 0 8px;font-size:12px;font-style:italic}.ob-coach-eg{color:#374151;background:#f3f4f6;border-radius:8px;padding:5px 10px;font-size:12px;line-height:1.4;display:block}.ob-footer{padding:16px 24px env(safe-area-inset-bottom,24px);padding-bottom:max(env(safe-area-inset-bottom), 28px);background:#fff;border-top:1px solid #f0f0f0;flex-direction:column;flex-shrink:0;align-items:center;gap:14px;display:flex}.ob-dots{gap:8px;display:flex}.ob-dot{cursor:pointer;background:#ddd;border-radius:50%;width:8px;height:8px;transition:background .2s,transform .2s}.ob-dot-active{background:#4caf50;transform:scale(1.3)}.ob-btn{background:var(--accent,#4caf50);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;height:52px;font-size:16px;font-weight:600;transition:opacity .15s,transform .1s}.ob-btn:active{opacity:.9;transform:scale(.98)}.growing-tree-container{flex-direction:column;align-items:center;display:flex;position:relative}.growing-tree-canvas{background:linear-gradient(#c8edd8 0%,#5d9b3a 70%,#5c3a1e 100%);border-radius:20px;display:block}.growing-tree-container.complete .growing-tree-canvas{animation:.6s ease-out tree-mature}@keyframes tree-mature{0%{transform:scale(1)}45%{transform:scale(1.05)}to{transform:scale(1)}}.growing-tree-container.abandoned .growing-tree-canvas{filter:saturate(.3)brightness(.75);transform-origin:bottom;transition:filter 1.8s,transform 1.8s;transform:rotate(8deg)}.abandoned-message{color:#9e9e9e;text-align:center;margin-top:12px;font-size:14px}
