*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #1a1a1a;--surface-2: #242424;--border: #2e2e2e;--text: #f0f0f0;--text-muted: #888;--text-dim: #555;--green: #22c55e;--red: #ef4444;--yellow: #eab308;--blue: #3b82f6;--accent: #6366f1;--accent-dim: #4f52c2;--radius: 12px;--radius-sm: 8px;--nav-h: calc(60px + env(safe-area-inset-bottom)) ;--header-h: 52px;font-size:16px}html,body{height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}#app{height:100%;display:flex;flex-direction:column}.screen{flex:1;display:flex;flex-direction:column;height:100dvh;overflow:hidden}.hidden{display:none!important}.onboarding-inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;padding-top:calc(32px + env(safe-area-inset-top));padding-bottom:calc(32px + env(safe-area-inset-bottom));gap:16px;max-width:420px;margin:0 auto;width:100%}.onboarding-logo{width:72px;height:72px;background:var(--accent);border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:800;color:#fff;letter-spacing:-1px}.onboarding-title{font-size:28px;font-weight:800;letter-spacing:-.5px}.onboarding-sub{color:var(--text-muted);font-size:15px;margin-top:-8px}.onboarding-steps{display:flex;flex-direction:column;gap:10px;width:100%;background:var(--surface);border-radius:var(--radius);padding:16px;border:1px solid var(--border)}.step{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text-muted)}.step-icon{font-size:16px;flex-shrink:0}.onboarding-form{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:8px}.header{height:var(--header-h);padding:0 16px;padding-top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;z-index:10}.header-title{font-size:17px;font-weight:800;letter-spacing:1px;color:var(--text)}.header-actions{display:flex;align-items:center;gap:8px}.sync-status{font-size:11px;color:var(--text-dim)}.sync-status.syncing{color:var(--accent)}.sync-status.error{color:var(--red)}.sync-status.cached{color:var(--yellow)}.content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}.tab-panel{display:none;padding:16px 16px 24px;min-height:100%}.tab-panel.active{display:block}.tab-header{margin-bottom:20px}.tab-header h2{font-size:20px;font-weight:700}.tab-desc{font-size:13px;color:var(--text-muted);margin-top:4px}.bottom-nav{display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0}.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px 0;background:none;border:none;color:var(--text-dim);font-size:10px;font-weight:500;cursor:pointer;transition:color .15s;-webkit-tap-highlight-color:transparent;letter-spacing:.3px}.nav-btn .nav-icon{width:22px;height:22px;transition:stroke .15s}.nav-btn.active{color:var(--accent)}.nav-btn.active .nav-icon{stroke:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 18px;border-radius:var(--radius-sm);border:none;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97);opacity:.85}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dim)}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-full{width:100%;margin-top:4px}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent}.icon-btn:hover{background:var(--surface);color:var(--text)}.icon-btn.spinning svg{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:15px;padding:11px 14px;outline:none;transition:border-color .15s;-webkit-appearance:none}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-dim)}.input-sm{width:90px;flex:none}input[type=date].input{color-scheme:dark;width:auto;flex:1}.input-row{display:flex;align-items:center;gap:8px}.input-unit{font-size:14px;color:var(--text-muted);white-space:nowrap}.field-label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.field-hint{font-size:12px;color:var(--text-dim);margin-top:5px;line-height:1.5}.settings-group{margin-bottom:24px}.settings-footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-dim);text-align:center}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:24px}.day-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;letter-spacing:.3px}.day-btn .day-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:background .15s}.day-btn.active{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:var(--accent);color:var(--accent)}.day-btn.active .day-dot{background:var(--accent)}.scoring-legend{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:24px}.scoring-legend h3{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.legend-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted);padding:4px 0}.pill{min-width:30px;text-align:center;padding:2px 6px;border-radius:6px;font-size:12px;font-weight:700;flex-shrink:0}.pill.green{background:color-mix(in srgb,var(--green) 20%,transparent);color:var(--green)}.pill.yellow{background:color-mix(in srgb,var(--yellow) 20%,transparent);color:var(--yellow)}.pill.red{background:color-mix(in srgb,var(--red) 20%,transparent);color:var(--red)}.pill.blue{background:color-mix(in srgb,var(--blue) 20%,transparent);color:var(--blue)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:2px}.stat-value{font-size:22px;font-weight:800;line-height:1}.stat-value.green{color:var(--green)}.stat-value.red{color:var(--red)}.stat-value.accent{color:var(--accent)}.stat-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.view-selector{display:flex;gap:6px;margin-bottom:12px}.view-btn{padding:6px 14px;background:var(--surface);border:1px solid var(--border);border-radius:20px;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.view-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.chart-container{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 8px 8px;width:100%}.chart-container canvas{max-height:260px}.sync-note{font-size:12px;color:var(--yellow);text-align:center;margin-top:10px;padding:8px;background:color-mix(in srgb,var(--yellow) 10%,transparent);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--yellow) 25%,transparent)}.center-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 24px;text-align:center;color:var(--text-muted);font-size:14px;line-height:1.5}.error-icon{font-size:36px}.spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.toast{position:fixed;bottom:calc(var(--nav-h) + 12px);left:50%;transform:translate(-50%) translateY(8px);background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:13px;font-weight:500;padding:10px 16px;border-radius:20px;white-space:nowrap;opacity:0;transition:opacity .2s,transform .2s;z-index:1000;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
