:root{--bg:#f4f1ec;--surface:#fafaf7;--border:#e7e5e0;--text:#1c1917;--text-2:#78716c;--text-3:#a8a29e;--green:#2d6a4f;--green-2:#40916c;--green-light:#d8f3dc;--amber:#d97706;--amber-light:#fef3c7;--amber-border:#fde68a;--red:#dc2626;--red-light:#fee2e2;--sans:system-ui, -apple-system, "Segoe UI", sans-serif;--serif:Georgia, "Palatino Linotype", serif;--radius:12px;--shadow:0 2px 8px #00000012}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{min-height:100%;font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}#root{flex-direction:column;max-width:480px;min-height:100svh;margin:0 auto;display:flex}.page{min-height:100svh;padding:0 20px max(20px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.app-header{border-bottom:1px solid var(--border);margin-bottom:24px;padding:52px 0 20px}.app-title{color:var(--green);letter-spacing:-.4px;font-size:26px;font-weight:700}.app-date{color:var(--text-2);text-transform:capitalize;margin-top:4px;font-size:14px}.goal-list{flex-direction:column;display:flex}.goal-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:20px}.goal-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.goal-title{color:var(--text);font-size:17px;font-weight:600}.streak{text-align:right;flex-shrink:0}.streak-number{color:var(--amber);font-size:26px;font-weight:700;line-height:1;display:block}.streak-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.6px;font-size:10px}.goal-creed{font-family:var(--serif);color:var(--text-2);margin-bottom:14px;font-size:14px;font-style:italic;line-height:1.65}.nudge{background:var(--amber-light);border:1px solid var(--amber-border);color:#92400e;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:14px;line-height:1.5}.goal-actions{align-items:center;gap:10px;display:flex}.btn-checkin{background:var(--green);color:#fff;cursor:pointer;font-size:15px;font-weight:500;font-family:var(--sans);border:none;border-radius:8px;flex:1;padding:11px 16px}.btn-checkin:hover{background:var(--green-2)}.btn-delete{border:1.5px solid var(--border);color:var(--text-3);cursor:pointer;background:0 0;border-radius:8px;padding:9px 14px;font-size:20px;line-height:1;transition:color .15s,border-color .15s}.btn-delete:hover{color:var(--red);border-color:var(--red)}.today-status{text-align:center;border-radius:8px;flex:1;padding:11px 16px;font-size:14px;font-weight:500}.today-status.status-done{background:var(--green-light);color:var(--green)}.today-status.status-min{background:var(--amber-light);color:#92400e}.today-status.status-skip{color:var(--text-3);background:#f3f4f6}.empty-state{text-align:center;color:var(--text-2);padding:72px 0 32px;font-size:15px;line-height:1.7}.home-footer{margin-top:auto;padding:24px 0}.btn-add{background:var(--green);color:#fff;border-radius:var(--radius);cursor:pointer;width:100%;font-size:16px;font-weight:600;font-family:var(--sans);letter-spacing:.1px;border:none;padding:16px}.btn-add:hover{background:var(--green-2)}.max-goals{text-align:center;color:var(--text-2);font-size:14px}.page-header{border-bottom:1px solid var(--border);align-items:center;gap:16px;margin-bottom:24px;padding:52px 0 20px;display:flex}.btn-back{color:var(--green);cursor:pointer;font-size:15px;font-family:var(--sans);background:0 0;border:none;flex-shrink:0;padding:0}.page-header h1{color:var(--text);font-size:20px;font-weight:600}.page-header h2{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:17px;font-weight:600;overflow:hidden}.input-section{flex-direction:column;flex:1;gap:16px;padding-top:8px;display:flex}.input-hint{color:var(--text-2);font-size:16px}.goal-input{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;font-size:16px;font-family:var(--sans);background:var(--surface);color:var(--text);outline:none;padding:14px 16px;transition:border-color .15s,box-shadow .15s}.goal-input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-light)}.goal-input::placeholder{color:var(--text-3)}.chat-page{padding-bottom:0}.chat-messages{flex-direction:column;flex:1;gap:10px;padding-bottom:8px;display:flex;overflow-y:auto}.message{border-radius:18px;max-width:86%;padding:12px 16px;font-size:15px;line-height:1.65}.message p{margin:0}.message.user{background:var(--green);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.message.assistant{background:var(--surface);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px;align-self:flex-start}.message.loading{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start;align-items:center;gap:6px;padding:16px 18px;display:flex}.dot{background:var(--text-3);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite blink}.dot:nth-child(2){animation-delay:.22s}.dot:nth-child(3){animation-delay:.44s}@keyframes blink{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.chat-input-row{padding:12px 0 max(20px, env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg);gap:8px;display:flex}.chat-input{border:1.5px solid var(--border);font-size:15px;font-family:var(--sans);background:var(--surface);color:var(--text);border-radius:24px;outline:none;flex:1;padding:12px 16px;transition:border-color .15s}.chat-input:focus{border-color:var(--green)}.chat-input::placeholder{color:var(--text-3)}.btn-send{background:var(--green);color:#fff;cursor:pointer;font-size:15px;font-weight:600;font-family:var(--sans);border:none;border-radius:24px;padding:12px 20px;transition:background .15s}.btn-send:hover{background:var(--green-2)}.btn-send:disabled{opacity:.4;cursor:not-allowed}.review-page>.btn-primary{margin-top:0;margin-bottom:24px}.goal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex:1;margin-bottom:16px;padding:24px;overflow-y:auto}.goal-card-title{color:var(--green);margin-bottom:12px;font-size:20px;font-weight:700}.goal-card-creed{font-family:var(--serif);color:var(--text);border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:20px;font-size:17px;font-style:italic;line-height:1.7}.goal-card-field{flex-direction:column;gap:3px;margin-bottom:14px;display:flex}.label{text-transform:uppercase;letter-spacing:.8px;color:var(--text-3);font-size:10px;font-weight:700}.goal-card-field span:last-child{color:var(--text);font-size:14px;line-height:1.5}.goal-card-reasons ul{color:var(--text);margin:6px 0 0 16px;font-size:14px;line-height:1.75}.checkin-page.choose-state{justify-content:space-between}.checkin-header{padding:52px 0 0}.checkin-goal-title{color:var(--text);margin-bottom:4px;font-size:20px;font-weight:700}.creed-block{flex:1;justify-content:center;align-items:center;padding:32px 0;display:flex}.creed-text{font-family:var(--serif);color:var(--text);text-align:center;font-size:22px;font-style:italic;line-height:1.7}.checkin-buttons{padding-bottom:max(32px, env(safe-area-inset-bottom));flex-direction:column;gap:12px;display:flex}.btn-checkin-choice{border-radius:var(--radius);cursor:pointer;font-size:17px;font-weight:600;font-family:var(--sans);border:none;padding:18px;transition:transform .1s}.btn-checkin-choice:active{transform:scale(.98)}.btn-checkin-choice.done{background:var(--green);color:#fff}.btn-checkin-choice.done:hover{background:var(--green-2)}.btn-checkin-choice.min{background:var(--amber-light);color:#92400e;border:1.5px solid var(--amber-border)}.btn-checkin-choice.min:hover{background:var(--amber-border)}.btn-checkin-choice.skip{background:var(--surface);color:var(--text-2);border:1.5px solid var(--border)}.btn-checkin-choice.skip:hover{background:var(--border)}.checkin-page.loading-state{justify-content:center;align-items:center}.loading-dots{gap:8px;display:flex}.checkin-page.reflection-state{padding-top:48px;padding-bottom:max(32px, env(safe-area-inset-bottom));justify-content:center;gap:24px}.status-badge{border-radius:20px;align-self:center;padding:8px 20px;font-size:14px;font-weight:600}.status-badge.status-done{background:var(--green-light);color:var(--green)}.status-badge.status-min{background:var(--amber-light);color:#92400e}.status-badge.status-skip{color:var(--text-2);background:#f3f4f6}.reflection-text{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.reflection-text p{font-family:var(--serif);color:var(--text);font-size:18px;line-height:1.8}.btn-primary{background:var(--green);color:#fff;border-radius:var(--radius);cursor:pointer;width:100%;font-size:16px;font-weight:600;font-family:var(--sans);letter-spacing:.1px;border:none;padding:16px;transition:background .15s}.btn-primary:hover{background:var(--green-2)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.error-msg{background:var(--red-light);color:var(--red);border:1px solid #fecaca;border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.5}@media (prefers-reduced-motion:reduce){.dot{opacity:.4;animation:none}.btn-checkin-choice,.btn-primary,.btn-send,.btn-checkin{transition:none}}:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:4px}
