:root{--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-app:#f8fafc;--bg-surface:#fff;--bg-surface-elevated:#f1f5f9;--bg-surface-subtle:#e2e8f0;--text-main:#0f172a;--text-muted:#64748b;--text-faint:#94a3b8;--border-subtle:#0f172a14;--border-strong:#0f172a29;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-text:#fff;--primary-light:#eff6ff;--primary-glow:#2563eb33;--streak-fire:#f97316;--streak-fire-bg:#fff7ed;--streak-fire-border:#f9731640;--streak-activity:#0284c7;--streak-activity-bg:#f0f9ff;--streak-activity-border:#0284c740;--status-hit:#10b981;--status-hit-bg:#ecfdf5;--status-hit-border:#10b98140;--status-miss:#ef4444;--status-miss-bg:#fef2f2;--status-miss-border:#ef444440;--status-pending:#f59e0b;--status-pending-bg:#fffbeb;--status-pending-border:#f59e0b40;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--header-height:56px;--bottom-nav-height:calc(60px + var(--safe-bottom));--touch-target:48px;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 16px #0f172a0f;--shadow-sheet:0 -10px 40px #0f172a1f}[data-theme=dark]{--bg-app:#080c14;--bg-surface:#0f1726;--bg-surface-elevated:#162032;--bg-surface-subtle:#1e2b42;--text-main:#f8fafc;--text-muted:#94a3b8;--text-faint:#64748b;--border-subtle:#ffffff14;--border-strong:#ffffff26;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-text:#fff;--primary-light:#3b82f626;--primary-glow:#3b82f659;--streak-fire:#fb923c;--streak-fire-bg:#fb923c1f;--streak-fire-border:#fb923c4d;--streak-activity:#38bdf8;--streak-activity-bg:#38bdf81f;--streak-activity-border:#38bdf84d;--status-hit:#34d399;--status-hit-bg:#34d3991f;--status-hit-border:#34d3994d;--status-miss:#f87171;--status-miss-bg:#f871711f;--status-miss-border:#f871714d;--status-pending:#fbbf24;--status-pending-bg:#fbbf241f;--status-pending-border:#fbbf244d;--shadow-sm:0 1px 3px #0006;--shadow-md:0 6px 24px #00000073;--shadow-sheet:0 -12px 48px #000000b3}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{overscroll-behavior:none;width:100%;height:100%;font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);letter-spacing:-.012em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45;overflow:hidden}::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}*{scrollbar-width:none!important;-ms-overflow-style:none!important}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;outline:none;justify-content:center;align-items:center;transition:transform .12s cubic-bezier(.34,1.56,.64,1),opacity .15s,background-color .15s;display:inline-flex}button:active{transform:scale(.96)}.mobile-app-shell{background-color:var(--bg-app);border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);flex-direction:column;width:100%;max-width:480px;height:100dvh;max-height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 50px #00000040}.mobile-content{width:100%;max-width:100%;height:100%;padding-top:calc(var(--header-height) + var(--safe-top) + 10px);padding-bottom:calc(var(--bottom-nav-height) + 16px);-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;flex:1;padding-left:14px;padding-right:14px;overflow:hidden auto}.sheet-backdrop{-webkit-backdrop-filter:blur(8px);z-index:100;background:#000000a6;flex-direction:column;justify-content:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.bottom-sheet{background:var(--bg-surface);border-top:1px solid var(--border-subtle);max-height:88dvh;box-shadow:var(--shadow-sheet);padding-bottom:max(16px, var(--safe-bottom));border-top-left-radius:24px;border-top-right-radius:24px;flex-direction:column;width:100%;max-width:480px;margin:0 auto;animation:.28s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow:hidden}.sheet-handle-bar{justify-content:center;width:100%;padding:12px 0 6px;display:flex}.sheet-handle{background-color:var(--border-strong);border-radius:999px;width:40px;height:4px}.sheet-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.sheet-title{color:var(--text-main);letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.sheet-body{-webkit-overflow-scrolling:touch;flex-direction:column;gap:14px;padding:16px 18px;display:flex;overflow:hidden auto}.sheet-footer{border-top:1px solid var(--border-subtle);gap:10px;padding:12px 18px 8px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}70%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.badge{border-radius:var(--radius-sm);letter-spacing:.02em;align-items:center;gap:4px;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-daily{color:#3b82f6;background-color:#3b82f61f;border:1px solid #3b82f640}.badge-weekly{color:#a855f7;background-color:#a855f71f;border:1px solid #a855f740}.badge-monthly{color:#10b981;background-color:#10b9811f;border:1px solid #10b98140}.badge-oneoff{color:#f59e0b;background-color:#f59e0b1f;border:1px solid #f59e0b40}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-hover));color:var(--primary-text);border-radius:var(--radius-md);letter-spacing:-.01em;width:100%;box-shadow:0 2px 10px var(--primary-glow);padding:13px 18px;font-size:.92rem;font-weight:700}.btn-primary:hover{opacity:.95}.btn-secondary{background-color:var(--bg-surface-elevated);color:var(--text-main);border-radius:var(--radius-md);border:1px solid var(--border-subtle);padding:13px 18px;font-size:.92rem;font-weight:600}.btn-secondary:hover{background-color:var(--bg-surface-subtle)}.btn-danger{background-color:var(--status-miss-bg);color:var(--status-miss);border-radius:var(--radius-md);border:1px solid var(--status-miss-border);padding:13px 18px;font-size:.92rem;font-weight:600}.btn-icon{border-radius:var(--radius-full);width:40px;height:40px;color:var(--text-muted);justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background-color:var(--bg-surface-elevated);color:var(--text-main)}
