:root{--bg:#0f0f1a;--bg-card:#1a1a2e;--bg-card-hover:#22223a;--bg-nav:#0f0f1aeb;--fg:#e0e0e0;--fg-muted:#88a;--accent:#00d4ff;--accent-dim:#00d4ff26;--green:#22c55e;--red:#ef4444;--orange:#f59e0b;--purple:#7c3aed;--pink:#ec4899;--radius:14px;--radius-sm:8px;--shadow:0 4px 20px #0000004d}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#app{flex-direction:column;max-width:430px;height:100%;margin:0 auto;display:flex;position:relative}.header{flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 16px 8px;display:flex}.header h1{background:linear-gradient(135deg, var(--accent), var(--purple));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:20px;font-weight:700}.header .energy{color:var(--orange);align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.header .energy svg{width:16px;height:16px}.view-container{-webkit-overflow-scrolling:touch;flex:1;padding:8px 16px 80px;overflow:hidden auto}.view-container::-webkit-scrollbar{display:none}.tab-view{display:none}.tab-view.active{animation:.2s fadeIn;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.bottom-nav{background:var(--bg-nav);-webkit-backdrop-filter:blur(16px);width:100%;max-width:430px;padding:6px 0 calc(env(safe-area-inset-bottom) + 6px);z-index:100;border-top:1px solid #ffffff0f;flex-shrink:0;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{cursor:pointer;color:var(--fg-muted);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 0;transition:color .2s;display:flex}.nav-item:active{opacity:.6}.nav-item svg{width:22px;height:22px}.nav-item span{font-size:10px;font-weight:500}.nav-item.active{color:var(--accent)}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:16px}.card-title{color:var(--fg-muted);margin-bottom:12px;font-size:14px;font-weight:600}.month-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.month-nav .month-label{color:var(--fg);font-size:16px;font-weight:600}.month-nav button{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:4px 8px;display:flex}.month-nav button:active{color:var(--accent)}.month-nav button svg{width:20px;height:20px}.day-grid-header{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px;display:grid}.day-grid-header span{text-align:center;color:var(--fg-muted);padding:4px 0;font-size:11px;font-weight:500}.day-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.day-cell{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff08;justify-content:center;align-items:center;min-height:36px;font-size:12px;transition:all .15s;display:flex;position:relative}.day-cell.other-month{opacity:.2}.day-cell.today{border:1.5px solid var(--accent)}.day-cell.has-habits:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.day-cell.all-done:after{background:var(--green)}.habit-item{border-radius:var(--radius-sm);background:#ffffff0a;align-items:center;gap:12px;margin-bottom:6px;padding:10px 12px;transition:all .15s;display:flex}.habit-item:active{background:#ffffff14}.habit-item .emoji{text-align:center;width:32px;font-size:22px}.habit-item .name{flex:1;font-size:14px;font-weight:500}.habit-item .check-btn{border:2px solid var(--fg-muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:all .2s;display:flex}.habit-item .check-btn.done{background:var(--green);border-color:var(--green)}.habit-item .check-btn.done svg{stroke:#fff}.habit-item .check-btn svg{stroke:#0000;width:14px;height:14px}.add-habit-btn{border-radius:var(--radius-sm);color:var(--fg-muted);cursor:pointer;background:0 0;border:1px dashed #ffffff26;align-items:center;gap:8px;width:100%;padding:10px 12px;font-size:13px;transition:all .15s;display:flex}.add-habit-btn:active{border-color:var(--accent);color:var(--accent)}.add-habit-btn svg{width:16px;height:16px}.todo-input-wrap{gap:8px;margin-bottom:12px;display:flex}.todo-input-wrap input{border-radius:var(--radius-sm);color:var(--fg);background:#ffffff0f;border:1px solid #ffffff1a;outline:none;flex:1;padding:10px 14px;font-size:14px}.todo-input-wrap input:focus{border-color:var(--accent)}.todo-input-wrap input::placeholder{color:var(--fg-muted)}.todo-input-wrap button{background:var(--accent);border-radius:var(--radius-sm);color:#000;cursor:pointer;white-space:nowrap;border:none;padding:8px 14px;font-size:13px;font-weight:600}.todo-item{border-radius:var(--radius-sm);align-items:center;gap:10px;margin-bottom:4px;padding:10px 12px;transition:all .15s;display:flex}.todo-item .todo-check{border:2px solid var(--fg-muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.todo-item .todo-check.done{background:var(--green);border-color:var(--green)}.todo-item .todo-check.done svg{stroke:#fff}.todo-item .todo-check svg{width:12px;height:12px}.todo-item .todo-text{flex:1;font-size:14px}.todo-item .todo-text.done{color:var(--fg-muted);text-decoration:line-through}.todo-item .todo-del{color:var(--fg-muted);cursor:pointer;opacity:0;background:0 0;border:none;padding:4px;transition:opacity .15s}.todo-item:hover .todo-del{opacity:1}.todo-item .todo-del:active{color:var(--red)}.todo-item .todo-del svg{width:16px;height:16px}.pomodoro-display{text-align:center;padding:32px 0 24px}.pomodoro-display .timer-ring{background:conic-gradient(var(--accent) var(--progress,0%), var(--bg-card) 0%);border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;margin:0 auto;display:flex;position:relative}.pomodoro-display .timer-ring:before{content:"";background:var(--bg);border-radius:50%;position:absolute;inset:6px}.pomodoro-display .timer-text{z-index:1;font-variant-numeric:tabular-nums;font-size:48px;font-weight:700;position:relative}.pomodoro-display .timer-text.stopped{color:var(--fg-muted)}.pomodoro-display .timer-label{color:var(--fg-muted);margin-top:8px;font-size:13px}.pomodoro-controls{justify-content:center;gap:16px;margin-top:20px;display:flex}.pomodoro-controls button{background:var(--bg-card);width:56px;height:56px;color:var(--fg);cursor:pointer;border:2px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.pomodoro-controls button:active{transform:scale(.92)}.pomodoro-controls button.primary{background:var(--accent);color:#000;border-color:var(--accent)}.pomodoro-controls button svg{width:22px;height:22px}.pomodoro-stats{text-align:center;color:var(--fg-muted);margin-top:12px;font-size:13px}.garden-scene{grid-template-columns:repeat(4,1fr);gap:12px;padding:16px 0;display:grid}.plant{aspect-ratio:1;border-radius:var(--radius);background:#ffffff08;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:28px;transition:all .3s;display:flex;position:relative;overflow:hidden}.plant.grown{background:#22c55e1a}.plant .plant-stage{color:var(--fg-muted);font-size:10px}.plant .energy-bar{background:var(--green);border-radius:0 2px 0 0;height:3px;transition:width .3s;position:absolute;bottom:0;left:0}.garden-energy-display{text-align:center;padding:16px}.garden-energy-display .big-energy{color:var(--orange);font-size:42px;font-weight:700}.garden-energy-display .label{color:var(--fg-muted);margin-top:4px;font-size:13px}.mood-picker{justify-content:center;gap:8px;margin-bottom:12px;display:flex}.mood-btn{background:var(--bg-card);cursor:pointer;border:2px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;transition:all .15s;display:flex}.mood-btn.selected{border-color:var(--accent);background:var(--accent-dim)}.mood-btn:active{transform:scale(.9)}.mood-note{border-radius:var(--radius-sm);width:100%;color:var(--fg);resize:none;background:#ffffff0f;border:1px solid #ffffff1a;outline:none;padding:10px 14px;font-family:inherit;font-size:14px}.mood-note:focus{border-color:var(--accent)}.stats-row{gap:12px;margin-bottom:12px;display:flex}.stat-card{background:var(--bg-card);border-radius:var(--radius);text-align:center;flex:1;padding:14px}.stat-card .stat-value{color:var(--accent);font-size:24px;font-weight:700}.stat-card .stat-label{color:var(--fg-muted);margin-top:4px;font-size:11px}.stat-card .stat-value.green{color:var(--green)}.stat-card .stat-value.orange{color:var(--orange)}.stat-card .stat-value.purple{color:var(--purple)}.week-chart{justify-content:space-between;align-items:flex-end;gap:4px;height:60px;padding:0 4px;display:flex}.week-bar-wrap{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.week-bar{background:var(--accent);opacity:.6;border-radius:4px 4px 0 0;width:100%;max-width:28px;min-height:2px;transition:height .3s}.week-bar.today{opacity:1}.week-bar-label{color:var(--fg-muted);font-size:9px}.overlay{z-index:200;background:#0009;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:var(--radius);width:calc(100% - 48px);max-width:360px;padding:20px;box-shadow:0 8px 40px #00000080}.modal h3{margin-bottom:12px;font-size:16px;font-weight:600}.modal input,.modal select{border-radius:var(--radius-sm);width:100%;color:var(--fg);background:#ffffff0f;border:1px solid #ffffff1a;outline:none;margin-bottom:12px;padding:10px 14px;font-size:14px}.modal input:focus{border-color:var(--accent)}.modal .emoji-grid{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.modal .emoji-grid button{border-radius:var(--radius-sm);cursor:pointer;background:#ffffff0a;border:2px solid #0000;width:38px;height:38px;font-size:18px;transition:all .1s}.modal .emoji-grid button.selected{border-color:var(--accent);background:var(--accent-dim)}.modal .color-grid{gap:8px;margin-bottom:16px;display:flex}.modal .color-grid button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:all .1s}.modal .color-grid button.selected{border-color:#fff;transform:scale(1.15)}.modal .modal-actions{justify-content:flex-end;gap:8px;display:flex}.modal .modal-actions button{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 20px;font-size:14px;font-weight:600}.modal .modal-actions .cancel{color:var(--fg-muted);background:#ffffff14}.modal .modal-actions .confirm{background:var(--accent);color:#000}.toast{background:var(--bg-card);color:var(--fg);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:300;border:1px solid #ffffff14;padding:10px 20px;font-size:13px;font-weight:500;animation:.25s toastIn,.25s 1.5s forwards toastOut;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(12px)}}.streak-badge{color:orange;white-space:nowrap;background:#ffa50026;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.habit-del{color:var(--fg-muted);cursor:pointer;opacity:0;background:0 0;border:none;padding:4px;transition:opacity .15s}.habit-item:hover .habit-del,.habit-item:active .habit-del{opacity:1}.habit-del:active{color:var(--red)}.habit-del svg{width:16px;height:16px}.profile-habit-item{border-bottom:1px solid #ffffff0a;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.profile-habit-item:last-child{border-bottom:none}@keyframes pop{0%{opacity:.3;transform:scale(.6)}70%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.habit-item .check-btn.done{animation:.25s pop}.tab-view.active{animation:.25s slideUp}.plant{transition:all .4s cubic-bezier(.34,1.56,.64,1)}.plant:hover{transform:scale(1.06)}.day-cell{transition:all .12s}.day-cell:active{transform:scale(.88)}.empty-state{text-align:center;color:var(--fg-muted);padding:32px 16px}.empty-state .big-emoji{margin-bottom:12px;font-size:48px}.empty-state p{font-size:13px;line-height:1.5}.auth-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:32px 24px;animation:.3s fadeIn;display:flex}.auth-logo{margin-bottom:8px;font-size:64px}.auth-title{background:linear-gradient(135deg, var(--accent), var(--purple));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:4px;font-size:28px;font-weight:700}.auth-subtitle{color:var(--fg-muted);margin-bottom:24px;font-size:14px}.auth-tabs{background:#ffffff0d;border-radius:8px;gap:0;width:200px;margin-bottom:20px;padding:3px;display:flex}.auth-tab{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:8px;font-size:14px;transition:all .15s}.auth-tab.active{background:var(--accent);color:#000;font-weight:600}.auth-form{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.auth-form.hidden{display:none}.auth-input{width:100%;color:var(--fg);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:8px;outline:none;padding:12px 16px;font-size:15px}.auth-input:focus{border-color:var(--accent)}.auth-btn{background:var(--accent);color:#000;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px;font-size:15px;font-weight:600}.auth-btn:active{opacity:.7}.auth-skip{width:100%;color:var(--fg-muted);cursor:pointer;background:0 0;border:1px solid #ffffff1f;border-radius:8px;margin-bottom:4px;padding:10px;font-size:13px}.auth-skip:active{background:#ffffff0d}.auth-error{color:var(--red);margin:-4px 0;font-size:13px}.auth-hint{color:var(--fg-muted);margin-top:20px;font-size:12px}.profile-auth-card{background:var(--bg-card);border-radius:14px;margin-bottom:12px;padding:16px;box-shadow:0 4px 20px #0000004d}.profile-user-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.profile-avatar{background:#00d4ff26;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.profile-user-info{flex:1}.profile-user-info .name{font-size:15px;font-weight:600}.profile-user-info .email{color:var(--fg-muted);font-size:12px}.profile-group-card{background:var(--bg-card);border-radius:14px;margin-bottom:12px;padding:16px}.group-member{align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.group-member .avatar{background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.invite-code{background:#ffffff0a;border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:14px;display:flex}.invite-code .code{color:var(--accent);letter-spacing:2px;font-family:monospace;font-size:16px;font-weight:700}.logout-btn{width:100%;color:var(--red);cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:8px;margin-top:8px;padding:10px;font-size:14px}.logout-btn:active{background:#ef44441a}
