:root{--bg: #f4f3ee;--surface: #ffffff;--surface-2: #eeede8;--surface-3: #e2e1db;--border: #e2e0d9;--border-2: #cccbc4;--text: #1a1916;--text-2: #706e66;--text-3: #aaa9a1;--green: #16a34a;--green-2: #15803d;--green-bg: #f0fdf4;--green-muted:#dcfce7;--amber: #d97706;--amber-2: #b45309;--amber-bg: #fffbeb;--amber-muted:#fef3c7;--red: #dc2626;--red-bg: #fef2f2;--blue: #2563eb;--blue-bg: #eff6ff;--purple: #7c3aed;--purple-bg: #f5f3ff;--orange: #ea580c;--orange-bg: #fff7ed;--radius: 8px;--radius-lg: 14px;--radius-xl: 20px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 12px 32px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.05);--font: "Plus Jakarta Sans", sans-serif;--font-mono: "JetBrains Mono", monospace}[data-theme=dark]{--bg: #111110;--surface: #1c1c1a;--surface-2: #252523;--surface-3: #2e2e2c;--border: #2e2e2c;--border-2: #3d3d39;--text: #f0efe9;--text-2: #a09e96;--text-3: #5e5d57;--green: #22c55e;--green-2: #16a34a;--green-bg: #0c2318;--green-muted:#122d1e;--amber: #f59e0b;--amber-2: #d97706;--amber-bg: #271c06;--amber-muted:#33240a;--red: #f87171;--red-bg: #2a0f0f;--blue: #60a5fa;--blue-bg: #0f1d30;--purple: #c084fc;--purple-bg: #1e0f2e;--orange: #fb923c;--orange-bg: #2a1506;--shadow-xs: 0 1px 2px rgba(0,0,0,.25);--shadow-sm: 0 1px 3px rgba(0,0,0,.35), 0 1px 2px rgba(0,0,0,.2);--shadow: 0 4px 12px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.2);--shadow-lg: 0 12px 32px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:var(--font);cursor:pointer;border:none;outline:none;background:none}input,textarea{font-family:var(--font);outline:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.layout{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:24px 0;position:fixed;top:0;left:0;height:100vh;z-index:20}.main-content{margin-left:248px;flex:1;padding:40px;max-width:calc(100vw - 248px);min-height:100vh}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes checkPop{0%,to{transform:scale(1)}30%{transform:scale(1.4)}60%{transform:scale(.88)}80%{transform:scale(1.08)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes heatmapIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{box-shadow:0 0 0 0 currentColor}50%{box-shadow:0 0 0 6px transparent}}@keyframes bounceIn{0%{opacity:0;transform:scale(.5)}60%{transform:scale(1.15)}80%{transform:scale(.95)}to{opacity:1;transform:scale(1)}}.anim-up{animation:fadeUp .3s ease backwards}.anim-in{animation:fadeIn .2s ease both}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--radius)}.input{width:100%;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);padding:10px 14px;font-size:14px;font-weight:500;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--green);box-shadow:0 0 0 3px #16a34a1f}.input::placeholder{color:var(--text-3);font-weight:400}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--radius);font-size:14px;font-weight:600;transition:all .15s;cursor:pointer;white-space:nowrap;position:relative;overflow:hidden}.btn:active{transform:scale(.97)}.btn-primary{background:var(--green);color:#fff;box-shadow:0 1px 3px #16a34a4d}.btn-primary:hover{background:var(--green-2);box-shadow:0 2px 8px #16a34a59}.btn-secondary{background:var(--green-bg);color:var(--green);border:1.5px solid var(--green-muted)}.btn-secondary:hover{background:var(--green-muted)}.btn-ghost{background:transparent;color:var(--text-2);border:1.5px solid var(--border)}.btn-ghost:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-2)}.btn-danger{background:var(--red-bg);color:var(--red);border:1.5px solid transparent}.btn-danger:hover{border-color:var(--red)}.btn-sm{padding:6px 12px;font-size:13px}.btn-icon{width:32px;height:32px;padding:0;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;font-size:15px;transition:all .15s}.btn-icon:hover{background:var(--surface-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-hover{transition:box-shadow .2s,transform .15s}.card-hover:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s,transform .15s,border-color .2s;position:relative;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--border-2)}.stat-card .icon-wrap{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.stat-card .value{font-size:28px;font-weight:800;letter-spacing:-.04em;line-height:1}.stat-card .label{font-size:12px;font-weight:500;color:var(--text-2)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:.01em}.badge-green{background:var(--green-bg);color:var(--green-2)}.badge-amber{background:var(--amber-bg);color:var(--amber-2)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-blue{background:var(--blue-bg);color:var(--blue)}.badge-neutral{background:var(--surface-2);color:var(--text-2)}.trend-up{color:var(--green);background:var(--green-bg);padding:2px 7px;border-radius:99px;font-size:11px;font-weight:700}.trend-down{color:var(--red);background:var(--red-bg);padding:2px 7px;border-radius:99px;font-size:11px;font-weight:700}.trend-flat{color:var(--text-3);background:var(--surface-2);padding:2px 7px;border-radius:99px;font-size:11px;font-weight:700}.insight-card{padding:16px 18px;border-radius:var(--radius);border:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.seg-control{display:inline-flex;background:var(--surface-2);border-radius:var(--radius);padding:3px;gap:2px}.seg-btn{padding:6px 14px;border-radius:6px;font-size:13px;font-weight:600;color:var(--text-2);transition:all .15s;cursor:pointer}.seg-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.seg-btn:not(.active):hover{color:var(--text)}.section-title{font-size:22px;font-weight:800;letter-spacing:-.025em}.section-sub{font-size:13px;color:var(--text-2);margin-top:3px}.divider{height:1px;background:var(--border);margin:0 -1px}.tooltip-box{position:fixed;z-index:9999;background:var(--text);color:var(--bg);padding:6px 10px;border-radius:6px;font-size:12px;font-weight:500;font-family:var(--font-mono);pointer-events:none;white-space:nowrap;box-shadow:var(--shadow);animation:fadeIn .1s ease}.tooltip-box:after{content:"";position:absolute;left:50%;bottom:-4px;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--text);border-bottom:0}.progress-track{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;transition:width .7s cubic-bezier(.4,0,.2,1);will-change:width}.empty-state{text-align:center;padding:64px 24px;border:1.5px dashed var(--border-2);border-radius:var(--radius-xl)}.empty-state-icon{font-size:48px;margin-bottom:16px;animation:bounceIn .6s cubic-bezier(.4,0,.2,1) both}.habit-toggle:not(:disabled):hover{transform:scale(1.1)}.habit-toggle:not(:disabled):active{transform:scale(.92)}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-2);border-top-color:var(--green);animation:spin .7s linear infinite}.bottom-nav{display:none}@media (max-width: 768px){.sidebar{display:none}.hide-mobile{display:none!important}.main-content{margin-left:0;width:100%;max-width:100vw;overflow-x:hidden;padding:20px 14px;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px));min-height:100vh}h1{font-size:22px!important}.bottom-nav{display:block;position:fixed;bottom:0;left:0;right:0;z-index:50;padding:0 12px;padding-bottom:max(12px,env(safe-area-inset-bottom,12px));pointer-events:none}.bottom-nav-inner{pointer-events:all;background:var(--surface);border-radius:28px;box-shadow:0 8px 32px #00000021,0 2px 8px #00000012;border:1px solid var(--border);display:flex;align-items:center;padding:6px 8px;height:68px;margin-bottom:8px}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-3);font-size:10px;font-weight:600;padding:6px 4px;border-radius:var(--radius);transition:color .15s;background:none;border:none;cursor:pointer;letter-spacing:.01em}.bottom-nav-item.active,.bottom-nav-item:where(a).active{color:var(--green)}.bottom-nav-item:active{opacity:.7}.bottom-nav-plus{width:52px;height:52px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin:0 6px;box-shadow:0 4px 18px #16a34a73;transition:transform .15s,box-shadow .15s;border:none;cursor:pointer}.bottom-nav-plus:active{transform:scale(.92);box-shadow:0 2px 10px #16a34a59}}
