:root{color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--blue: #3b82f6;--blue-light: #60a5fa;--blue-bg: #eff6ff;--green: #22c55e;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-400: #9ca3af;--gray-600: #4b5563;--gray-800: #1f2937;--gray-900: #111827}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh;background:var(--gray-50);color:var(--gray-800)}.app{max-width:480px;margin:0 auto;padding:1.5rem 1rem 3rem;display:flex;flex-direction:column;gap:1.5rem}.reminder-toast{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:var(--blue-bg);border:1px solid var(--blue);border-radius:.75rem;color:var(--gray-800);font-size:.9rem;font-weight:500;box-shadow:0 4px 16px #3b82f633;cursor:pointer;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-1rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}.reminder-icon{font-size:1.25rem}.header{text-align:center}.title{margin:0;font-size:1.5rem;font-weight:700;color:var(--blue)}.subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--gray-400)}.progress-section{display:flex;flex-direction:column;align-items:center;gap:.5rem}.ring-wrapper{position:relative;width:180px;height:180px}.ring-svg{width:100%;height:100%}.ring-progress{transition:stroke-dashoffset .4s ease,stroke .3s}.ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-count{font-size:2.5rem;font-weight:700;color:var(--gray-900);line-height:1}.ring-label{font-size:.8rem;color:var(--gray-400)}.pct-text{font-size:.85rem;color:var(--gray-600)}.goal-met{font-size:.95rem;font-weight:600;color:var(--green)}.action-row{display:flex;gap:.75rem;justify-content:center}.btn{border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{flex:1;max-width:280px;padding:.85rem 1.5rem;background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-light)}.btn-outline{padding:.85rem 1.25rem;background:#fff;color:var(--gray-600);border:1px solid var(--gray-200)}.btn-outline:hover:not(:disabled){background:var(--gray-100)}.btn-sm{padding:.4rem .85rem;font-size:.85rem}.goal-section{display:flex;justify-content:center}.goal-display{background:none;border:1px dashed var(--gray-200);border-radius:.5rem;padding:.5rem 1rem;font-size:.85rem;color:var(--gray-600);cursor:pointer;transition:border-color .15s}.goal-display:hover{border-color:var(--blue);color:var(--blue)}.goal-edit{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center}.goal-label{font-size:.85rem;color:var(--gray-600)}.goal-input{width:60px;padding:.4rem;border:1px solid var(--gray-200);border-radius:.35rem;font-size:.9rem;text-align:center}.goal-input:focus{outline:2px solid var(--blue);outline-offset:-1px;border-color:var(--blue)}.history-section{display:flex;flex-direction:column;gap:.75rem}.section-title{margin:0;font-size:1rem;font-weight:600;color:var(--gray-800)}.chart-row{display:flex;align-items:flex-end;gap:.5rem;height:140px;padding:.5rem 0}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;height:100%}.chart-bar-bg{flex:1;width:100%;max-width:36px;background:var(--gray-100);border-radius:.35rem;position:relative;overflow:hidden;display:flex;align-items:flex-end}.chart-bar-fill{width:100%;background:var(--blue);border-radius:.35rem;transition:height .4s ease;min-height:0}.chart-count{font-size:.75rem;font-weight:600;color:var(--gray-600)}.chart-label{font-size:.7rem;color:var(--gray-400)}.table-section{display:flex;flex-direction:column;gap:.75rem}.empty-text{margin:0;font-size:.85rem;color:var(--gray-400);text-align:center;padding:1rem 0}.table-wrap{overflow-x:auto}.log-table{width:100%;border-collapse:collapse;font-size:.85rem}.log-table th{text-align:left;padding:.5rem .75rem;border-bottom:2px solid var(--gray-200);color:var(--gray-600);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.log-table td{padding:.5rem .75rem;border-bottom:1px solid var(--gray-100);color:var(--gray-800)}.row-met td{background:#22c55e0f}.log-table tbody tr:hover{background:var(--blue-bg)}@media(max-width:380px){.app{padding:1rem .75rem 2rem}.ring-wrapper{width:150px;height:150px}.ring-count{font-size:2rem}}
