*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--accent:#00d4ff;--accent-dim:#00d4ff1a;--accent-mid:#00d4ff4d;--accent-glow:0 0 20px #00d4ff66, 0 0 6px #00d4ff26;--bg:#04080f;--bg-card:#080f1ee0;--bg-input:#ffffff0d;--text:#def;--text-2:#ddeeff8c;--text-3:#ddeeff47;--border:#00d4ff14;--border-2:#00d4ff38;--shadow-sm:0 1px 6px #00000073;--shadow:0 4px 24px #0000008c, 0 1px 4px #00000059;--shadow-md:0 8px 48px #000000a6, 0 2px 10px #0006;--radius:16px;--radius-sm:10px;--radius-lg:24px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);--nav-h:64px;--header-h:60px}html,body,#root{height:100%;font-family:var(--font);background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;background-image:radial-gradient(80% 50% at 50% -8%,#00b4ff1a 0%,#0000 60%),linear-gradient(#00d4ff06 1px,#0000 1px),linear-gradient(90deg,#00d4ff06 1px,#0000 1px);background-size:100% 100%,60px 60px,60px 60px;background-attachment:fixed,fixed,fixed;font-size:16px}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea{border:none;outline:none;font-family:inherit}a{color:inherit;text-decoration:none}.app-container{flex-direction:column;max-width:480px;height:100%;margin:0 auto;display:flex;position:relative}.page{padding-bottom:calc(var(--nav-h) + 16px);flex:1;overflow-y:auto}.page-padded{padding:16px}.header{height:var(--header-h);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:10;background:#040814eb;align-items:center;gap:12px;padding:0 16px;display:flex;position:sticky;top:0}.header-title{color:var(--text);flex:1;font-size:17px;font-weight:600}.bottom-nav{height:var(--nav-h);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);background:#030710f5;flex-shrink:0;justify-content:space-around;align-items:center;padding:0 8px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--text-3);letter-spacing:.02em;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;font-size:11px;font-weight:500;transition:color .2s;display:flex}.nav-item.active{color:var(--accent);text-shadow:0 0 10px #00d4ff80}.nav-item svg{stroke-width:1.8px}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff08;padding:16px;transition:border-color .22s,box-shadow .22s}.card:hover{box-shadow:var(--shadow-sm), 0 0 0 1px #00d4ff12, inset 0 1px 0 #ffffff0a;border-color:#00d4ff33}.btn{border-radius:var(--radius-sm);transition:all .18s var(--ease);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:15px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{background:var(--accent);color:#030a14;font-weight:700;box-shadow:0 0 20px #00d4ff61,0 4px 14px #00d4ff2e}.btn-primary:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 0 32px #00d4ff8c,0 4px 20px #00d4ff47}.btn-primary:disabled{box-shadow:none;filter:none}.btn-secondary{color:var(--text);background:#ffffff0f;border:1px solid #ffffff17}.btn-secondary:hover{background:#ffffff1a;border-color:#ffffff26}.btn-ghost{color:var(--text-2);background:0 0;padding:8px 12px}.btn-ghost:hover{color:var(--text);background:#ffffff0f}.btn-danger{color:#f87171;background:#ef444424;border:1px solid #ef44443d}.btn-danger:hover{background:#ef44443d}.btn-full{width:100%}.btn-sm{border-radius:8px;padding:8px 14px;font-size:13px}.input-group{flex-direction:column;gap:6px;display:flex}.input-label{color:var(--text-2);font-size:13px;font-weight:500}.input{background:var(--bg-input);border-radius:var(--radius-sm);color:var(--text);border:1.5px solid #00d4ff1a;width:100%;padding:12px 14px;font-size:15px;transition:border-color .15s,box-shadow .15s,background .15s}.input:focus{border-color:var(--accent);background:#00d4ff0a;box-shadow:0 0 0 3px #00d4ff1f,0 0 12px #00d4ff14}.input::placeholder{color:var(--text-3)}.sheet-overlay{-webkit-backdrop-filter:blur(5px);z-index:100;animation:fade-in .2s var(--ease);background:#0009;position:fixed;inset:0}.sheet{-webkit-backdrop-filter:blur(28px);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:480px;padding:0 0 env(safe-area-inset-bottom,16px);z-index:101;animation:slide-up .3s var(--ease);background:#050b16f7;border-top:1px solid #00d4ff29;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -12px 60px #000000bf,0 0 0 1px #00d4ff0a}.sheet-handle{background:#00d4ff38;border-radius:2px;width:36px;height:4px;margin:14px auto 6px}.sheet-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px 16px;display:flex}.sheet-title{color:var(--text);font-size:17px;font-weight:700}.sheet-body{flex-direction:column;gap:16px;padding:20px;display:flex}.progress-bar{background:#ffffff0f;border-radius:99px;height:4px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .5s var(--ease);border-radius:99px;box-shadow:0 0 8px #00d4ff8c}.empty-state{text-align:center;color:var(--text-2);padding:60px 24px}.empty-state .icon{margin-bottom:16px;font-size:48px}.empty-state h3{color:var(--text);margin-bottom:8px;font-size:17px;font-weight:600}.empty-state p{font-size:14px;line-height:1.6}.fab{bottom:calc(var(--nav-h) + 18px);background:var(--accent);color:#030a14;z-index:20;width:54px;height:54px;transition:transform .18s var(--ease), filter .18s;border-radius:50%;justify-content:center;align-items:center;animation:3s ease-in-out infinite fab-pulse;display:flex;position:fixed;right:calc(50% - 224px)}.fab:active{transform:scale(.89)}@media (width<=480px){.fab{right:16px}}@keyframes fab-pulse{0%,to{box-shadow:0 0 24px #00d4ff80,0 4px 16px #00d4ff38}50%{box-shadow:0 0 40px #00d4ffbf,0 4px 24px #00d4ff61}}.checkbox{border:2px solid var(--border-2);width:22px;height:22px;transition:all .16s var(--ease);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.checkbox.checked{background:var(--accent);border-color:var(--accent);color:#030a14;box-shadow:0 0 10px #00d4ff73}.divider{background:var(--border);height:1px;margin:4px 0}.badge{border-radius:100px;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-green{color:var(--accent);background:#00d4ff1f}.badge-gray{color:var(--text-2);background:#ffffff0f}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translate(-50%)translateY(100%)}to{transform:translate(-50%)translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{border:2px solid #00d4ff26;border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff08 25%,#00d4ff14 50%,#ffffff08 75%) 0 0/200% 100%;animation:1.4s infinite shimmer}.type-personal{color:#a78bfa}.type-tasks{color:#38bdf8}.type-shopping{color:#fb923c}.type-bg-personal{background:#a78bfa1f;border:1px solid #a78bfa2e}.type-bg-tasks{background:#38bdf81f;border:1px solid #38bdf82e}.type-bg-shopping{background:#fb923c1f;border:1px solid #fb923c2e}.auth-page{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(#00b4ff1a 0%,#0000 68%);border-radius:50%;width:700px;height:500px;position:fixed;top:-25%;left:50%;transform:translate(-50%)}.auth-page:after{content:"";pointer-events:none;background:radial-gradient(#7828ff12 0%,#0000 68%);border-radius:50%;width:450px;height:450px;position:fixed;bottom:-25%;right:-15%}.auth-card{-webkit-backdrop-filter:blur(28px);border-radius:var(--radius-lg);z-index:1;background:#050c19eb;border:1px solid #00d4ff26;width:100%;max-width:400px;padding:40px 32px;position:relative;box-shadow:0 0 0 1px #00d4ff0a,0 32px 72px #000000a6,inset 0 1px #00d4ff14}.auth-logo{text-align:center;margin-bottom:36px}.auth-logo .logo-icon{width:62px;height:62px;color:var(--accent);background:#00d4ff1a;border:1.5px solid #00d4ff61;border-radius:20px;justify-content:center;align-items:center;margin:0 auto 18px;animation:3s ease-in-out infinite logo-glow;display:flex;box-shadow:0 0 30px #00d4ff52,inset 0 0 12px #00d4ff14}@keyframes logo-glow{0%,to{box-shadow:0 0 28px #00d4ff47,inset 0 0 10px #00d4ff0f}50%{box-shadow:0 0 46px #00d4ff80,inset 0 0 16px #00d4ff1f}}.auth-logo h1{letter-spacing:-1px;background:linear-gradient(130deg,#00d4ff 20%,#a855f7 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:30px;font-weight:800}.auth-logo p{color:var(--text-3);letter-spacing:.02em;margin-top:6px;font-size:14px}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-switch{text-align:center;color:var(--text-3);margin-top:26px;font-size:14px}.auth-switch a{color:var(--accent);cursor:pointer;text-shadow:0 0 10px #00d4ff4d;font-weight:600}.error-msg{color:#f87171;border-radius:var(--radius-sm);background:#ef44441f;border:1px solid #ef444438;padding:10px 14px;font-size:13px}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.text-sm{font-size:13px}.text-xs{font-size:11px}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-muted{color:var(--text-2)}.text-hint{color:var(--text-3)}.text-accent{color:var(--accent)}.line-through{text-decoration:line-through}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[data-theme=light]{--accent:#08a;--accent-dim:#0088aa1a;--accent-mid:#0088aa47;--accent-glow:0 0 14px #0088aa38, 0 0 4px #0088aa1a;--bg:#f0f5fa;--bg-card:#fffffff0;--bg-input:#0000000a;--text:#0a1628;--text-2:#0a162894;--text-3:#0a162852;--border:#0088aa1a;--border-2:#0088aa42;--shadow-sm:0 1px 4px #00000012, 0 1px 2px #0000000a;--shadow:0 4px 20px #00000014, 0 1px 4px #0000000d;--shadow-md:0 8px 40px #0000001a, 0 2px 8px #0000000f}html[data-theme=light],html[data-theme=light] body{color:#0a1628;background-color:#f0f5fa;background-image:radial-gradient(80% 50% at 50% -8%,#008cc814 0%,#0000 60%),linear-gradient(#0088aa0a 1px,#0000 1px),linear-gradient(90deg,#0088aa0a 1px,#0000 1px);background-size:100% 100%,60px 60px,60px 60px;background-attachment:fixed,fixed,fixed}[data-theme=light] .header{background:#f0f5faf0;border-bottom-color:#0088aa1a}[data-theme=light] .bottom-nav{background:#f0f5faf5;border-top-color:#0088aa1a}[data-theme=light] .nav-item.active{text-shadow:none}[data-theme=light] .card{box-shadow:var(--shadow-sm);border-color:#0088aa17}[data-theme=light] .card:hover{box-shadow:var(--shadow-sm), 0 0 0 1px #0088aa0f;border-color:#08a3}[data-theme=light] .btn-primary{color:#fff}[data-theme=light] .btn-secondary{background:#0000000d;border:1px solid #00000014}[data-theme=light] .btn-secondary:hover{background:#00000017;border-color:#00000021}[data-theme=light] .btn-ghost:hover{background:#0000000d}[data-theme=light] .btn-danger{color:#dc2626;background:#dc262614;border-color:#dc26262e}[data-theme=light] .btn-danger:hover{background:#dc262624}[data-theme=light] .input{background:#ffffffe0;border-color:#0088aa24}[data-theme=light] .input:focus{background:#fff;box-shadow:0 0 0 3px #0088aa1f}[data-theme=light] .sheet-overlay{background:#00000052}[data-theme=light] .sheet{background:#f7fafffa;border-top-color:#0088aa29;box-shadow:0 -8px 40px #0000001a}[data-theme=light] .sheet-handle{background:#0088aa38}[data-theme=light] .progress-bar{background:#00000012}[data-theme=light] .progress-fill{box-shadow:0 0 6px #0088aa59}[data-theme=light] .fab{color:#fff;animation:3s ease-in-out infinite fab-pulse-light}@keyframes fab-pulse-light{0%,to{box-shadow:0 0 18px #0088aa61,0 4px 12px #0088aa2e}50%{box-shadow:0 0 30px #0088aa94,0 4px 18px #0088aa4d}}[data-theme=light] .spinner{border-color:#0088aa24;border-top-color:var(--accent)}[data-theme=light] .skeleton{background:linear-gradient(90deg,#0000000a 25%,#0088aa17 50%,#0000000a 75%) 0 0/200% 100%;animation:1.4s infinite shimmer}[data-theme=light] .badge-green{background:#0088aa1a}[data-theme=light] .badge-gray{color:var(--text-2);background:#0000000f}[data-theme=light] .type-bg-personal{background:#6d28d914;border-color:#6d28d929}[data-theme=light] .type-bg-tasks{background:#07598514;border-color:#07598529}[data-theme=light] .type-bg-shopping{background:#9a341214;border-color:#9a341229}[data-theme=light] .error-msg{color:#dc2626;background:#dc262612;border-color:#dc262629}[data-theme=light] .auth-page:before{background:radial-gradient(#008cc817 0%,#0000 68%)}[data-theme=light] .auth-page:after{background:radial-gradient(#6428c80d 0%,#0000 68%)}[data-theme=light] .auth-card{background:#fffffff0;border-color:#0088aa26;box-shadow:0 0 0 1px #0088aa0a,0 24px 60px #0000001a,inset 0 1px #fffc}[data-theme=light] .auth-logo .logo-icon{background:#0088aa14;border-color:#0088aa52;animation:3s ease-in-out infinite logo-glow-light}@keyframes logo-glow-light{0%,to{box-shadow:0 0 22px #0088aa38,inset 0 0 8px #0088aa0d}50%{box-shadow:0 0 36px #0088aa61,inset 0 0 14px #0088aa1a}}[data-theme=light] .auth-logo h1{background:linear-gradient(130deg,#08a 20%,#7c3aed 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}[data-theme=light] .auth-switch a{text-shadow:none}
