:root{--color-primary:#f4f4f5;--color-primary-contrast:#0a0a0b;--color-secondary:#c4c4cc;--color-accent:#f4f4f5;--color-bg:#0a0a0b;--color-fg:#f4f4f5;--color-card:#ffffff0f;--color-muted:#ffffff14;--color-muted-fg:#9a9aa2;--color-border:#ffffff24;--color-destructive:#f87171;--color-glow-1:#ffffff0f;--color-glow-2:#ffffff0a;--nav-bar-bg:#111114;--brand-green:#0fd47a;--accent-fill:var(--color-primary);--accent-on-fill:var(--color-primary-contrast);--accent-text:var(--color-accent);--on-brand-green:#062313;--brand-green-text:var(--brand-green);--logo-green:var(--brand-green);--glass-blur:blur(20px);--nav-height:72px;--bottom-nav-h:88px;font-family:Work Sans,system-ui,sans-serif}:root[data-theme=light]{--color-primary:#0a0a0b;--color-primary-contrast:#fafafa;--color-secondary:#45454c;--color-accent:#0a0a0b;--color-bg:#fafafa;--color-fg:#18181b;--color-card:#0a0a0b0b;--color-muted:#0a0a0b12;--color-muted-fg:#6b6b73;--color-border:#0a0a0b47;--color-destructive:#dc2626;--color-glow-1:#0a0a0b0a;--color-glow-2:#0a0a0b08;--brand-green-text:#0b9d5b;--accent-fill:var(--brand-green);--accent-on-fill:var(--on-brand-green);--accent-text:var(--brand-green-text);--logo-green:var(--brand-green-text)}@media (width>=768px){:root{--bottom-nav-h:0px}}*{box-sizing:border-box;accent-color:var(--color-fg);-webkit-tap-highlight-color:transparent}html,body,#root{overscroll-behavior:none;background:radial-gradient(circle at 15% 0%, var(--color-glow-1), transparent 45%), radial-gradient(circle at 85% 100%, var(--color-glow-2), transparent 45%), var(--color-bg);height:100%;color:var(--color-fg);margin:0;transition:background-color .2s,color .2s;overflow:hidden}.app-shell{height:100%;padding-top:env(safe-area-inset-top);display:flex;position:relative;overflow:hidden}.page-viewport{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.page-scroll{flex:1;min-height:0;overflow-y:auto}button,input,select,textarea{font:inherit}input,select,textarea{font-size:16px}button{transition:transform .1s}button:active{transform:scale(.95)}@media (prefers-reduced-motion:reduce){button{transition:none}button:active{transform:none}}a,button,input,select,[tabindex]{outline-color:var(--color-fg)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-fg);outline-offset:2px}.tabular{font-variant-numeric:tabular-nums}.glass-surface{background:var(--color-card);-webkit-backdrop-filter:var(--glass-blur);box-shadow:0 8px 20px #0000002e}.select-clean{appearance:none}.select-clean::-ms-expand{display:none}.profile-chip{border:1px solid var(--color-border);background:var(--color-card);max-width:46vw;height:44px;-webkit-backdrop-filter:var(--glass-blur);border-radius:999px;align-items:center;gap:8px;padding:0 12px 0 6px;display:flex;position:static;box-shadow:0 8px 18px #00000038}.profile-chip-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:32px;height:32px}.profile-chip-avatar-fallback{background:var(--color-primary);color:var(--color-primary-contrast);justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.profile-chip-name{color:var(--color-fg);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.theme-toggle{border:2px solid var(--color-border);background:var(--color-card);width:44px;height:44px;-webkit-backdrop-filter:var(--glass-blur);color:var(--color-fg);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s;display:flex;position:static;box-shadow:0 8px 18px #00000038}.theme-toggle:active{transform:scale(.88)}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.4s ease-in-out infinite pulse}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.notebook-line{stroke-dasharray:7;stroke-dashoffset:7px;animation:3.2s ease-in-out infinite notebook-draw}@media (prefers-reduced-motion:reduce){.notebook-line{stroke-dashoffset:0;animation:none}}@keyframes notebook-draw{0%,8%{stroke-dashoffset:7px}45%,53%{stroke-dashoffset:0}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:no-preference){.today-pulse{animation:1.8s ease-out infinite today-pulse-ring}}@keyframes today-pulse-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--brand-green) 70%, transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb, var(--brand-green) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--brand-green) 0%, transparent)}}@media (prefers-reduced-motion:no-preference){.period-card-active{animation:1.8s ease-in-out infinite period-pulse-border}.period-range-active{animation:1.8s ease-in-out infinite period-pulse-pill}.period-card-active-orange{animation:1.8s ease-in-out infinite period-pulse-border-orange}.period-range-active-orange{animation:1.8s ease-in-out infinite period-pulse-pill-orange}}@keyframes period-pulse-pill{0%,to{border-color:color-mix(in srgb, var(--brand-green) 40%, transparent);background:color-mix(in srgb, var(--brand-green) 8%, transparent)}50%{border-color:var(--brand-green);background:color-mix(in srgb, var(--brand-green) 22%, transparent)}}@keyframes period-pulse-pill-orange{0%,to{background:#f9731614;border-color:#f9731666}50%{background:#f9731638;border-color:#f97316}}@keyframes period-pulse-border-orange{0%,to{border-color:#f9731666;box-shadow:0 8px 20px #0000002e,0 0 #f9731659}50%{border-color:#f97316;box-shadow:0 8px 20px #0000002e,0 0 0 4px #f973161f}}@media (prefers-reduced-motion:no-preference){.online-dot{animation:1.4s ease-in-out infinite online-dot-pulse}}@keyframes online-dot-pulse{0%,to{box-shadow:0 0 #22c55e99}50%{box-shadow:0 0 0 4px #22c55e00}}@media (prefers-reduced-motion:no-preference){.theme-toggle-pulse{animation:1.8s ease-in-out infinite theme-toggle-pulse-ring}}@keyframes theme-toggle-pulse-ring{0%,to{border-color:#a855f766;box-shadow:0 8px 18px #00000038,0 0 #a855f759}50%{border-color:#a855f7;box-shadow:0 8px 18px #00000038,0 0 0 4px #a855f726}}@media (prefers-reduced-motion:no-preference){.theme-toggle-pulse-yellow{animation:1.8s ease-in-out infinite theme-toggle-pulse-ring-yellow}}@keyframes theme-toggle-pulse-ring-yellow{0%,to{border-color:#facc1566;box-shadow:0 8px 18px #00000038,0 0 #facc1559}50%{border-color:#facc15;box-shadow:0 8px 18px #00000038,0 0 0 4px #facc1526}}@keyframes period-pulse-border{0%,to{border-color:color-mix(in srgb, var(--brand-green) 40%, transparent);box-shadow:0 8px 20px #0000002e, 0 0 0 0 color-mix(in srgb, var(--brand-green) 35%, transparent)}50%{border-color:var(--brand-green);box-shadow:0 8px 20px #0000002e, 0 0 0 4px color-mix(in srgb, var(--brand-green) 12%, transparent)}}.sidebar{display:none}.sidebar-brand{border-bottom:1px solid #0000;border-image:linear-gradient(90deg, var(--color-border), transparent) 1;flex-shrink:0;align-items:center;gap:11px;margin-bottom:14px;padding:2px 8px 16px;display:flex}.sidebar-brand-mark{background:var(--color-primary);width:36px;height:36px;color:var(--color-primary-contrast);box-shadow:0 6px 16px color-mix(in srgb, var(--color-primary) 26%, transparent), inset 0 1px 0 color-mix(in srgb, var(--color-primary-contrast) 18%, transparent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-brand-mark svg{width:20px;height:20px}.sidebar-brand-text{letter-spacing:-.012em;color:var(--color-fg);white-space:nowrap;font-size:16px;font-weight:700}.sidebar-nav{flex-direction:column;gap:3px;min-height:0;display:flex}.nav-link{min-height:46px;color:var(--color-muted-fg);letter-spacing:-.005em;border-radius:13px;align-items:center;gap:11px;padding:5px 12px 5px 7px;font-size:14px;font-weight:500;text-decoration:none;transition:transform .1s,background .18s,color .18s;display:flex;position:relative}.nav-link:before{content:"";background:var(--accent-fill);border-radius:0 3px 3px 0;width:3px;height:0;transition:height .24s cubic-bezier(.34,1.56,.64,1);position:absolute;top:50%;left:-13px;transform:translateY(-50%)}.nav-link-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-link .nav-icon-bubble-sm{background:var(--color-muted);width:32px;height:32px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-border) 55%, transparent);border-radius:10px;flex-shrink:0}.nav-link .nav-icon-bubble-sm svg{width:19px;height:19px}@media (hover:hover){.nav-link:hover{background:color-mix(in srgb, var(--color-muted) 65%, transparent);color:var(--color-fg)}.nav-link:hover .nav-icon-bubble-sm{background:var(--color-muted);transform:translateY(-1px)}}.nav-link:active{background:var(--color-muted);transform:scale(.97)}.nav-link.active{background:color-mix(in srgb, var(--accent-fill) 12%, transparent);color:var(--accent-text);font-weight:600}.nav-link.active:before{height:22px}.nav-link.active .nav-icon-bubble-sm{background:var(--accent-fill);color:var(--accent-on-fill);box-shadow:0 5px 14px color-mix(in srgb, var(--accent-fill) 34%, transparent)}@media (prefers-reduced-motion:reduce){.nav-link,.nav-link:before,.nav-icon-bubble-sm{transition:none}.nav-link:hover .nav-icon-bubble-sm{transform:none}}.bottom-nav{bottom:max(6px, env(safe-area-inset-bottom));transform:translateX(-50%) translateY(var(--nav-shift,0px));opacity:var(--nav-fade,1);background:linear-gradient(180deg, color-mix(in srgb, var(--color-fg) 3%, transparent), transparent 45%), color-mix(in srgb, var(--color-bg) 82%, transparent);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);box-shadow:0 16px 34px #00000042, inset 0 1px 0 color-mix(in srgb, var(--color-fg) 7%, transparent);z-index:10;border-radius:24px;align-items:stretch;gap:2px;padding:7px 8px 5px;transition:transform .26s cubic-bezier(.4,0,.2,1),opacity .18s,box-shadow .15s;display:flex;position:absolute;left:50%}.bottom-nav:active{transform:translateX(-50%) translateY(var(--nav-shift,0px)) scale(.97);box-shadow:0 8px 20px #0000003d}.bottom-nav-link{letter-spacing:-.005em;min-width:56px;min-height:52px;color:var(--color-muted-fg);border-radius:17px;flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:4px;padding:9px 6px 7px;font-size:10.5px;font-weight:500;text-decoration:none;transition:background .18s,color .18s;display:flex;position:relative}.bottom-nav-link:after{content:"";background:var(--accent-fill);border-radius:3px;width:0;height:3px;transition:width .24s cubic-bezier(.34,1.56,.64,1);position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.nav-icon-bubble{width:34px;height:34px;color:inherit;background:var(--color-muted);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-border) 55%, transparent);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .4s cubic-bezier(.34,1.56,.64,1),background .2s,box-shadow .2s;display:flex;position:relative}.nav-icon-bubble svg{width:20px;height:20px}.nav-label{transition:opacity .15s}.bottom-nav-link:active .nav-icon-bubble{transition:transform 80ms ease-out;transform:scale(.82)}.bottom-nav-link.active{background:color-mix(in srgb, var(--accent-fill) 12%, transparent);color:var(--accent-text);font-weight:600}.bottom-nav-link.active:after{width:16px}.bottom-nav-link.active .nav-icon-bubble{background:var(--accent-fill);color:var(--accent-on-fill);box-shadow:0 5px 14px color-mix(in srgb, var(--accent-fill) 34%, transparent);transform:none}@media (prefers-reduced-motion:reduce){.bottom-nav,.bottom-nav-link,.bottom-nav-link:after,.nav-icon-bubble{transition:none}}@media (width>=768px){.sidebar{width:236px;padding:22px 13px 18px;padding-top:max(22px, env(safe-area-inset-top));background:linear-gradient(180deg, color-mix(in srgb, var(--color-fg) 3%, transparent), transparent 42%), var(--color-card);-webkit-backdrop-filter:var(--glass-blur);border-right:1px solid var(--color-border);box-shadow:1px 0 0 color-mix(in srgb, var(--color-fg) 3%, transparent);scrollbar-width:thin;flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:var(--color-muted);border-radius:3px}.bottom-nav{display:none}}html.auth-mode,html.auth-mode body{background:#f7faf8}:root[data-theme=dark].auth-mode,:root[data-theme=dark].auth-mode body{background:#101713}.auth-screen{--auth-bg:#f7faf8;--auth-card:#fff;--auth-border:#dcefe3;--auth-fg:#151918;--auth-fg-2:#5c635f;--auth-green:var(--brand-green);--auth-on-green:var(--on-brand-green);--auth-danger:#c62222;--auth-shadow:0 2px 4px #1519180a, 0 12px 30px #15191814}:root[data-theme=dark] .auth-screen{--auth-bg:#101713;--auth-card:#18211c;--auth-border:#2c3b32;--auth-fg:#f4f7f5;--auth-fg-2:#aeb8b3;--auth-danger:#ff7b72;--auth-shadow:0 6px 14px #0000006b, 0 20px 44px #0000005c}.auth-screen{min-height:100%;padding:24px;padding-top:calc(24px + env(safe-area-inset-top));background:var(--auth-bg);color:var(--auth-fg);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;overflow-y:auto}.auth-card{border:1px solid var(--auth-border);background:var(--auth-card);width:100%;max-width:380px;box-shadow:var(--auth-shadow);border-radius:18px;padding:30px 24px 26px}.auth-logo{width:52px;height:52px;margin:0 auto 18px;display:block}.auth-spinner{border:4px solid color-mix(in srgb, var(--auth-green) 20%, transparent);border-top-color:var(--auth-green);border-radius:50%;width:46px;height:46px;margin:0 auto 16px;animation:.9s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.auth-spinner{animation-duration:2.6s}}.auth-badge{border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;margin:0 auto 16px;display:flex}.auth-badge-ok{background:var(--brand-green);color:var(--on-brand-green);box-shadow:0 6px 16px color-mix(in srgb, var(--brand-green) 34%, transparent)}.auth-badge-err{background:color-mix(in srgb, var(--auth-danger) 13%, transparent);color:var(--auth-danger);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--auth-danger) 42%, transparent)}.auth-title{color:var(--auth-fg);margin:0 0 6px;font-size:17px;font-weight:700}.auth-sub{color:var(--auth-fg-2);margin:0;font-size:13.5px}.auth-name{color:var(--auth-fg);margin:0 0 20px;font-size:15px;font-weight:600}.auth-btn{background:var(--auth-green);width:100%;min-height:48px;color:var(--auth-on-green);cursor:pointer;border:none;border-radius:12px;font-size:15px;font-weight:700;transition:background .15s,transform .1s}.auth-btn:hover{background:color-mix(in srgb, var(--brand-green) 88%, #000)}.auth-btn:active{background:color-mix(in srgb, var(--brand-green) 78%, #000);transform:scale(.97)}@media (prefers-reduced-motion:reduce){.auth-btn{transition:none}.auth-btn:active{transform:none}[aria-expanded] svg{transition:none!important}}
