:root{--lilac-50:#faf5ff;--lilac-100:#f3e8ff;--lilac-200:#e9d5ff;--lilac-300:#d8b4fe;--lilac-400:#c084fc;--lilac-500:#a855f7;--lilac-600:#9333ea;--lilac-700:#7e22ce;--lilac-800:#6b21a8;--lilac-900:#581c87;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:var(--lilac-50);--bg-gradient:radial-gradient(1200px 500px at 50% -10%, var(--lilac-200) 0%, transparent 70%), linear-gradient(180deg, var(--lilac-100) 0%, var(--lilac-50) 45%);--surface:#fff;--surface-soft:#f7f1fe;--border:#ecdffb;--border-strong:var(--lilac-300);--primary:var(--lilac-600);--primary-soft:var(--lilac-300);--primary-grad:linear-gradient(135deg, var(--lilac-500), var(--lilac-700));--on-primary:#fff;--accent-ink:var(--lilac-800);--text:#271a45;--text-muted:#6f5f93;--task-done:#15803d;--color-error:#be185d;--error-soft:#fde7f0;--ring:#9333ea4d;--header-bg:#faf5ffc7;--shadow-sm:0 1px 3px #581c8712, 0 1px 2px #581c870d;--shadow:0 10px 30px -8px #7c3aed29, 0 2px 8px #581c870f;--shadow-lg:0 18px 45px -10px #7c3aed4d}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#151022;--bg-gradient:radial-gradient(1200px 500px at 50% -10%, #2b1d4e 0%, transparent 70%), linear-gradient(180deg, #1a1330 0%, #151022 45%);--surface:#1f1837;--surface-soft:#29204a;--border:#352a59;--border-strong:#4c3d7c;--primary:var(--lilac-400);--primary-soft:var(--lilac-700);--primary-grad:linear-gradient(135deg, var(--lilac-500), var(--lilac-700));--on-primary:#fff;--accent-ink:var(--lilac-200);--text:#ece6f9;--text-muted:#a797cf;--task-done:#4ade80;--color-error:#f472b6;--error-soft:#f472b624;--ring:#c084fc66;--header-bg:#151022c7;--shadow-sm:0 1px 3px #00000059;--shadow:0 10px 30px -8px #00000080, 0 2px 8px #0000004d;--shadow-lg:0 18px 45px -10px #0009}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{background:var(--bg-gradient) var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45}a{color:var(--primary);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;background:var(--primary-grad);color:var(--on-primary);box-shadow:var(--shadow-sm);border:none;border-radius:12px;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:700;transition:filter .15s,transform .1s,box-shadow .15s,background-color .15s}button:hover:not(:disabled){filter:brightness(1.08);box-shadow:var(--shadow)}button:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(1px)}button.ghost{color:var(--primary);border:1px solid var(--border-strong);box-shadow:none;background:0 0}button.ghost:hover:not(:disabled){background:var(--surface-soft);filter:none;box-shadow:none}button.danger{background:var(--color-error)}button:disabled{opacity:.5;cursor:not-allowed}:is(button,a,input,select,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:2px}input,select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;outline:none;padding:9px 11px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}input::placeholder{color:var(--text-muted);opacity:.75}.app{max-width:960px;margin:0 auto;padding:0 20px 80px}.app-header{z-index:100;background:var(--header-bg);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin:0 -20px 24px;padding:14px 20px;display:flex;position:sticky;top:0}.app-header h1{background:linear-gradient(90deg, var(--lilac-700), var(--lilac-400));color:#0000;letter-spacing:.2px;white-space:nowrap;-webkit-background-clip:text;background-clip:text;margin:0;font-size:24px;font-weight:800}:root[data-theme=dark] .app-header h1{background:linear-gradient(90deg, var(--lilac-300), var(--lilac-500));-webkit-background-clip:text;background-clip:text}.app-header-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.nav{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:4px;padding:4px;display:flex}.nav a{color:var(--text-muted);border-radius:9px;padding:7px 14px;font-size:14px;font-weight:700;transition:background .15s,color .15s}.nav a:hover{color:var(--primary);text-decoration:none}.nav a.active{background:var(--primary-grad);color:var(--on-primary);box-shadow:var(--shadow-sm)}.user-info{align-items:center;gap:10px;display:flex}.user-info-name{color:var(--accent-ink);white-space:nowrap;font-size:14px;font-weight:700}.user-info-name:hover{color:var(--primary);text-decoration:none}.user-info button{padding:7px 12px;font-size:13px}.theme-toggle{border-radius:10px;padding:6px 10px;font-size:16px;line-height:1}.card{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:20px;padding:22px}.error-banner{background:var(--error-soft);color:var(--color-error);border-radius:12px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.error-banner button{margin-left:auto;padding:4px 10px;font-size:13px}.empty{text-align:center;color:var(--text-muted);padding:36px 24px}.empty-emoji{filter:saturate(1.1);margin-bottom:8px;font-size:40px}.date-nav{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.date-nav-center{text-align:center}.date-nav-side{gap:8px;display:flex}.date-nav .date-label{color:var(--accent-ink);letter-spacing:.1px;font-size:21px;font-weight:800}.date-nav input[type=date]{color:var(--text-muted);background:0 0;border-color:#0000;margin-top:6px;padding:5px 9px;font-size:13px}.date-nav input[type=date]:hover{border-color:var(--border-strong)}.task-list{margin:0;padding:0;list-style:none}.task-item{border-bottom:1px solid var(--border);border-radius:12px;grid-template-columns:22px 28px 1fr 100px 32px 32px;align-items:center;gap:10px;padding:11px 8px;transition:background .15s,opacity .15s;display:grid}.task-item:hover{background:var(--surface-soft)}.task-item:last-child{border-bottom:none}.task-item.dragging{opacity:.45}.task-item.drop-before{box-shadow:inset 0 3px 0 0 var(--primary)}.task-item.drop-after{box-shadow:inset 0 -3px 0 0 var(--primary)}.drag-handle{cursor:grab;color:var(--border-strong);-webkit-user-select:none;user-select:none;text-align:center;box-shadow:none;background:0 0;border-radius:4px;padding:0;font-size:18px;font-weight:400;line-height:1;transition:color .15s}.drag-handle:hover:not(:disabled){color:var(--primary);filter:none;box-shadow:none}.task-item:active .drag-handle,.task-item.dragging .drag-handle{cursor:grabbing;color:var(--primary)}.checkbox{appearance:none;cursor:pointer;border:2px solid var(--border-strong);background:var(--surface);border-radius:8px;place-content:center;width:23px;height:23px;margin:0;padding:0;transition:background .15s,border-color .15s,transform .1s;display:grid}.checkbox:hover{border-color:var(--primary)}.checkbox:before{content:"";clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,82% 0%,43% 66%);background:var(--on-primary);width:12px;height:12px;transition:transform .15s ease-in-out;transform:scale(0)}.checkbox:checked{background:var(--primary-grad);border-color:#0000}.checkbox:checked:before{transform:scale(1)}.task-item .title-cell{min-width:0}.task-item .title{color:var(--text);word-break:break-word;cursor:text;border-radius:6px;padding:2px 4px;font-size:15px;font-weight:600;transition:background .15s}.task-item .title:hover{background:var(--surface-soft);box-shadow:inset 0 0 0 1px var(--border)}.task-item .title-input{width:100%;padding:4px 6px;font-size:15px}.task-item.completed .title{color:var(--task-done);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--task-done) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--task-done) 45%, transparent)}.task-item.completed .checkbox,.task-item.completed .title-cell{opacity:.82}.task-meta{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.badge{letter-spacing:.2px;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}.badge.time{background:var(--lilac-200);color:var(--lilac-800)}.badge.recurrence{color:#9d174d;background:#fce7f3}:root[data-theme=dark] .badge.time{color:var(--lilac-300);background:#c084fc2e}:root[data-theme=dark] .badge.recurrence{color:#f9a8d4;background:#f472b629}.task-item .points-edit{align-items:center;gap:4px;min-width:0;display:flex}.task-item .points-edit input{text-align:right;width:56px;padding:5px 8px}.task-item .pts-label{color:var(--text-muted);font-size:12px;font-weight:600}.task-item button.icon{color:var(--text-muted);box-shadow:none;background:0 0;border-radius:8px;padding:4px 6px;font-size:18px;font-weight:700;line-height:1}.task-item button.icon:hover:not(:disabled){background:var(--surface-soft);filter:none;box-shadow:none}.task-item button.icon:disabled{opacity:.4;cursor:not-allowed}.task-item button.copy-icon:hover:not(:disabled){color:var(--primary)}.task-item button.danger-icon:hover{color:var(--color-error);background:0 0}.task-item button.danger-icon.confirm-active{color:var(--color-error);font-weight:800}.add-task-form{background:var(--surface-soft);border:1px solid var(--border);border-radius:16px;grid-template-columns:1fr 80px 110px 1fr auto;gap:8px;margin-top:16px;padding:12px;transition:border-color .15s,box-shadow .15s;display:grid}.add-task-form:focus-within{border-color:var(--primary-soft);box-shadow:0 0 0 3px var(--ring)}.add-task-form input,.add-task-form select{background:var(--surface);min-width:0}.totals-bar{background:linear-gradient(135deg, var(--lilac-200), var(--lilac-100));color:var(--lilac-800);border-radius:14px;justify-content:space-between;align-items:center;margin-top:18px;padding:14px 18px;font-size:14px;font-weight:700;display:flex}:root[data-theme=dark] .totals-bar{color:var(--lilac-200);background:linear-gradient(135deg,#322558,#29204a)}.totals-bar .progress-wrap{background:var(--surface);border-radius:999px;flex:1;height:10px;margin:0 16px;overflow:hidden;box-shadow:inset 0 1px 2px #581c871a}.totals-bar .progress-fill{background:linear-gradient(90deg, var(--lilac-400), var(--lilac-600));border-radius:999px;height:100%;transition:width .5s cubic-bezier(.22,1,.36,1)}.sticker-shelf{background:linear-gradient(135deg, var(--lilac-100), var(--lilac-200));border:1px dashed var(--border-strong);border-radius:16px;margin-top:18px;padding:18px}:root[data-theme=dark] .sticker-shelf{background:linear-gradient(135deg,#251c44,#2d2253)}.sticker-shelf h3{color:var(--accent-ink);letter-spacing:.8px;text-transform:uppercase;margin:0 0 12px;font-size:13px;font-weight:800}.sticker-hint{color:var(--text-muted);font-size:14px}.sticker-error{color:var(--color-error);margin-bottom:8px;font-size:12px}.sticker-grid{flex-wrap:wrap;gap:10px;display:flex}.sticker{background:var(--surface);width:64px;height:64px;box-shadow:var(--shadow-sm);border:2px solid var(--border-strong);border-radius:50%;justify-content:center;align-items:center;font-size:32px;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s;animation:.3s cubic-bezier(.34,1.56,.64,1) backwards sticker-in;display:flex;position:relative}.sticker:hover{box-shadow:var(--shadow);transform:scale(1.12)rotate(-4deg)}@keyframes sticker-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.sticker .threshold{background:var(--primary-grad);color:var(--on-primary);box-shadow:var(--shadow-sm);border-radius:10px;padding:2px 6px;font-size:10px;font-weight:800;position:absolute;bottom:-6px;right:-6px}.sticker.placeholder{box-shadow:none;color:var(--text-muted);background:0 0;border-style:dashed;font-size:14px;font-weight:800;animation:none}.stats-controls{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;gap:4px;margin-bottom:18px;padding:4px;display:inline-flex}.stats-controls .range-btn{color:var(--text-muted);box-shadow:none;background:0 0;border:none;border-radius:9px;padding:7px 16px}.stats-controls .range-btn:hover:not(.active){color:var(--primary);filter:none}.stats-controls .range-btn.active{background:var(--primary-grad);color:var(--on-primary);box-shadow:var(--shadow-sm)}.stats-header{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.stats-header strong{color:var(--accent-ink);font-size:15px}.stats-loading{color:var(--text-muted);font-size:13px}.stats-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.stat-tile{background:var(--surface-soft);border:1px solid var(--border);text-align:center;border-radius:14px;padding:16px 14px;transition:transform .15s,box-shadow .15s}.stat-tile:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.stat-tile .stat-num{background:linear-gradient(90deg, var(--lilac-700), var(--lilac-500));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:27px;font-weight:800}:root[data-theme=dark] .stat-tile .stat-num{background:linear-gradient(90deg, var(--lilac-300), var(--lilac-400));-webkit-background-clip:text;background-clip:text}.stat-tile .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-top:2px;font-size:11px;font-weight:700}.alarm-toast-stack{z-index:1000;flex-direction:column;gap:10px;max-width:calc(100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.alarm-toast{background:var(--surface);border:1px solid var(--border-strong);border-left:6px solid var(--primary);box-shadow:var(--shadow-lg);border-radius:14px;align-items:center;gap:12px;min-width:280px;padding:12px 14px;animation:.25s alarm-pop;display:flex}@keyframes alarm-pop{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.alarm-toast-icon{font-size:28px;line-height:1}.alarm-toast-body{flex-direction:column;flex:1;min-width:0;display:flex}.alarm-toast-body strong{color:var(--accent-ink);word-break:break-word;font-size:15px}.alarm-toast-body small{color:var(--text-muted);margin-top:2px;font-size:12px}.flash-toast{background:var(--lilac-800);color:#fff;box-shadow:var(--shadow-lg);z-index:1000;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:700;animation:.2s flash-pop,.3s 2.2s forwards flash-out;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}:root[data-theme=dark] .flash-toast{background:var(--lilac-500)}@keyframes flash-pop{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes flash-out{to{opacity:0;transform:translate(-50%,-8px)}}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:14px;padding:30px 28px;display:flex}.auth-card h1{text-align:center;background:linear-gradient(90deg, var(--lilac-700), var(--lilac-400));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.5rem;font-weight:800}:root[data-theme=dark] .auth-card h1{background:linear-gradient(90deg, var(--lilac-300), var(--lilac-500));-webkit-background-clip:text;background-clip:text}.auth-card h2{text-align:center;color:var(--text-muted);margin:0 0 4px;font-size:1.05rem;font-weight:700}.auth-field{color:var(--text-muted);flex-direction:column;gap:5px;font-size:.9rem;font-weight:600;display:flex}.auth-field input{font-size:1rem}.auth-card button[type=submit]{margin-top:4px;padding:11px;font-size:1rem}.auth-error{background:var(--error-soft);color:var(--color-error);border-radius:10px;padding:10px 12px;font-size:.9rem;font-weight:600}.auth-success{background:var(--surface-soft);color:var(--text);border-radius:10px;padding:10px 12px;font-size:.9rem}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.88rem;display:flex}.auth-hint{color:var(--text-muted);text-align:center;margin:0;font-size:.85rem}.auth-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:4px;display:flex}.account-page{flex-direction:column;gap:20px;max-width:460px;margin:24px auto;padding:0 16px;display:flex}.device-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.device-list-item{border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.88rem;display:flex}.device-list-platform{color:var(--text);font-weight:600}.device-list-meta{color:var(--text-muted);text-align:right;flex:1;margin-right:4px;font-size:.8rem}@media (width<=600px){.app-header{flex-wrap:wrap}.date-nav{flex-wrap:wrap;justify-content:center;row-gap:8px}.date-nav-center{flex-basis:100%;order:-1}.date-nav .date-label{font-size:17px}.task-item{grid-template-columns:22px 26px 1fr auto auto;grid-template-areas:"handle check title title title"". .points copy del";row-gap:6px}.task-item .drag-handle{grid-area:handle}.task-item .checkbox{grid-area:check}.task-item .title-cell{grid-area:title}.task-item .points-edit{grid-area:points;justify-self:start}.task-item .copy-icon{grid-area:copy}.task-item .danger-icon{grid-area:del}.add-task-form{grid-template-columns:1fr 1fr}.add-task-form input[type=text],.add-task-form select,.add-task-form>:last-child{grid-column:1/-1}.stats-summary{grid-template-columns:1fr 1fr}.totals-bar{flex-wrap:wrap;gap:8px}.totals-bar .progress-wrap{flex-basis:100%;order:3;margin:4px 0 0}.alarm-toast-stack{bottom:12px;left:12px;right:12px}.alarm-toast{min-width:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
