:root{--color-bg:#f7f5f2;--color-surface:#fff;--color-border:#e8e5e0;--color-text:#1c1c1e;--color-text-secondary:#6e6e73;--color-accent:#ff8a3d;--color-success:#34c759;--color-danger:#e0483e;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--shadow-card:0 1px 3px #0000000a, 0 1px 2px #00000008;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}ul{margin:0;padding:0;list-style:none}h1,h2,h3,p{margin:0}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{padding:calc(env(safe-area-inset-top,0px) + 14px) 20px 14px;background:var(--color-bg);z-index:10;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-title{letter-spacing:-.01em;color:var(--color-accent);font-size:20px;font-weight:700}.logout-btn{color:var(--color-text-secondary);background:0 0;border:none;min-height:44px;padding:10px 4px;font-size:15px}.app-main{padding:4px 20px calc(env(safe-area-inset-bottom,0px) + 100px);flex:1;width:100%;max-width:560px;margin:0 auto}.bottom-nav{-webkit-backdrop-filter:saturate(180%)blur(14px);border-top:1px solid var(--color-border);padding:8px 4px calc(env(safe-area-inset-bottom,0px) + 8px);z-index:20;background:#ffffffeb;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--color-text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:44px;padding:4px 0;display:flex}.nav-item.active{color:var(--color-accent)}.nav-icon{width:24px;height:24px;display:block}.nav-label{font-size:11px;font-weight:500}.page-title{letter-spacing:-.02em;margin:12px 0 16px;font-size:28px;font-weight:700}.section-title{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:28px 0 10px;font-size:13px;font-weight:600}.empty-state{color:var(--color-text-secondary);background:var(--color-surface);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-card);padding:28px 20px}.btn{border-radius:var(--radius-sm);border:none;min-height:44px;padding:12px 18px;font-size:16px;font-weight:600}.btn-primary{background:var(--color-accent);color:#fff}.btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-text{color:var(--color-accent);background:0 0;border:none;padding:10px 2px;font-weight:600}.btn:disabled{opacity:.55}.btn-block{width:100%}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field-label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.field-input,.field-select{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);min-height:44px;color:var(--color-text);width:100%;padding:12px 14px;font-size:16px}.field-input:focus,.field-select:focus{outline:2px solid var(--color-accent);outline-offset:1px}.form-error,.push-error,.occurrence-error{color:var(--color-danger);margin:-4px 0 4px;font-size:14px}.form-actions{gap:10px;margin-top:4px;display:flex}.login-screen{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.login-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);width:100%;max-width:360px;padding:32px 24px}.login-title{text-align:center;color:var(--color-accent);letter-spacing:-.02em;margin:0 0 4px;font-size:30px;font-weight:800}.login-subtitle{text-align:center;color:var(--color-text-secondary);margin:0 0 24px;font-size:15px}.occurrence-list{flex-direction:column;gap:10px;display:flex}.occurrence{background:var(--color-surface);border-radius:var(--radius-md);min-width:0;box-shadow:var(--shadow-card);border-left:4px solid #0000;flex-direction:column;gap:10px;padding:12px;transition:opacity .3s;display:flex}.occurrence.overdue{border-left-color:var(--color-danger)}.occurrence.done{opacity:.45}.occurrence-name{overflow-wrap:break-word;font-size:15px;font-weight:600}.occurrence-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.occurrence-status{color:var(--color-text-secondary);overflow-wrap:break-word;font-size:12px}.occurrence.overdue .occurrence-status{color:var(--color-danger);font-weight:600}.complete-btn{border:2px solid var(--color-border);background:var(--color-surface);color:#0000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;margin-left:auto;transition:background .15s,border-color .15s,color .15s,transform .1s;display:flex;position:relative}.complete-btn:active:not(:disabled){transform:scale(.92)}.complete-btn .check-icon{width:22px;height:22px}.complete-btn.completing,.complete-btn.done{background:var(--color-success);border-color:var(--color-success);color:#fff}.complete-btn.done .check-icon{animation:.4s check-pop}@keyframes check-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}.complete-btn.static-check{cursor:default;pointer-events:none}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{opacity:0;border-radius:2px;width:6px;height:6px;animation:.6s ease-out forwards confetti-burst;position:absolute;top:50%;left:50%}.confetti i:first-child{--dx:-18px;--dy:-22px;background:var(--color-accent)}.confetti i:nth-child(2){--dx:18px;--dy:-22px;background:var(--color-success);animation-delay:20ms}.confetti i:nth-child(3){--dx:-24px;--dy:4px;background:var(--color-danger);animation-delay:40ms}.confetti i:nth-child(4){--dx:24px;--dy:4px;background:var(--color-accent);animation-delay:10ms}.confetti i:nth-child(5){--dx:-10px;--dy:-30px;background:var(--color-success);animation-delay:30ms}.confetti i:nth-child(6){--dx:10px;--dy:-30px;background:var(--color-danger);animation-delay:50ms}@keyframes confetti-burst{0%{opacity:1;transform:translate(-50%,-50%)translate(0)scale(1)}to{transform:translate(-50%, -50%) translate(var(--dx), var(--dy)) scale(.2);opacity:0}}.add-task-toggle{margin:4px 0 16px}.task-list{flex-direction:column;gap:10px;display:flex}.task-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:16px}.task-card.inactive{opacity:.55}.task-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.task-name{margin:0 0 2px;font-size:16px;font-weight:600}.task-freq{color:var(--color-text-secondary);font-size:13px}.badge-inactive{color:var(--color-text-secondary);background:var(--color-bg);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600}.task-actions{gap:8px;margin-top:12px;display:flex}.task-edit-form{border-top:1px solid var(--color-border);margin-top:14px;padding-top:14px}.account-user{color:var(--color-text-secondary);margin:0 0 20px;font-size:15px}.hint-card,.push-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-bottom:16px;padding:18px}.hint-title,.push-title{margin:0 0 8px;font-size:16px;font-weight:700}.hint-text,.push-text{color:var(--color-text-secondary);margin:0 0 12px;font-size:14px;line-height:1.45}
