: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;--bg: var(--lilac-50);--surface: #ffffff;--surface-soft: var(--lilac-100);--border: var(--lilac-200);--primary: var(--lilac-600);--primary-soft: var(--lilac-300);--text: #1f1235;--text-muted: #6b5a8a;--task-done: #15803d;--color-error: #be185d;--shadow: 0 4px 18px rgba(124, 58, 237, .12)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;background:linear-gradient(180deg,var(--lilac-100) 0%,var(--lilac-50) 100%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;border-radius:10px;padding:8px 14px;font-weight:600;background:var(--primary);color:#fff;transition:filter .15s ease,transform .05s ease}button:hover:not(:disabled){filter:brightness(1.05)}button:active:not(:disabled){transform:translateY(1px)}button.ghost{background:transparent;color:var(--primary);border:1px solid var(--border)}button.ghost:hover:not(:disabled){background:var(--surface-soft)}button.danger{background:var(--color-error)}button:disabled{opacity:.5;cursor:not-allowed}input,select{border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:14px;background:var(--surface);color:var(--text);outline:none}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #a855f726}.app{max-width:960px;margin:0 auto;padding:24px 20px 80px}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.app-header h1{margin:0;font-size:26px;background:linear-gradient(90deg,var(--lilac-700),var(--lilac-500));-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:.2px}.app-header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nav{display:flex;gap:8px}.user-picker{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px 8px;flex-wrap:wrap}.user-picker-label{font-size:16px}.user-picker select{border:none;background:transparent;font-weight:600;color:var(--lilac-800);padding:4px 6px}.user-picker select:focus{box-shadow:none}.user-picker button{padding:4px 10px;font-size:13px}.user-picker-create{display:flex;gap:4px;margin-left:6px}.user-picker-create input{padding:4px 6px;font-size:13px}.user-picker-error{color:var(--color-error);font-weight:700;cursor:help}.nav a{padding:8px 14px;border-radius:10px;font-weight:600;color:var(--lilac-700)}.nav a.active{background:var(--lilac-200);color:var(--lilac-800)}.card{background:var(--surface);border-radius:16px;padding:20px;box-shadow:var(--shadow);border:1px solid var(--border)}.date-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.date-nav .date-label{font-size:20px;font-weight:700;color:var(--lilac-800)}.date-nav .date-sub{font-size:13px;color:var(--text-muted)}.task-list{list-style:none;padding:0;margin:0}.task-item{display:grid;grid-template-columns:22px 28px 1fr 100px 32px 32px;align-items:center;gap:10px;padding:10px 8px;border-bottom:1px solid var(--border);transition:background .15s ease}.task-item.dragging{opacity:.5}.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(--lilac-300);font-size:18px;line-height:1;-webkit-user-select:none;user-select:none;text-align:center;background:transparent;padding:0;border-radius:0;font-weight:400;transition:color .15s}.drag-handle:hover:not(:disabled){color:var(--lilac-600);filter:none}.drag-handle:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:3px}.task-item:active .drag-handle,.task-item.dragging .drag-handle{cursor:grabbing;color:var(--lilac-700)}.task-item:last-child{border-bottom:none}.task-item .title-cell{min-width:0}.task-item .title{font-size:15px;color:#1f1235;word-break:break-word;cursor:text;padding:2px 4px;border-radius:4px}.task-item .title:hover{background:var(--lilac-100)}.task-item .title-input{width:100%;font-size:15px;padding:4px 6px}.task-item.completed .title{color:var(--task-done);text-decoration:line-through;text-decoration-color:#15803d66}.task-meta{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}.badge{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600;letter-spacing:.2px}.badge.time{background:var(--lilac-200);color:var(--lilac-800)}.badge.recurrence{background:#fce7f3;color:#9d174d}.task-item .points-edit{display:flex;align-items:center;gap:4px}.task-item .points-edit input{width:56px;text-align:right}.task-item .pts-label{font-size:12px;color:var(--text-muted)}.task-item button.icon{background:transparent;color:var(--lilac-700);padding:4px 6px;font-size:18px;line-height:1;font-weight:700;border-radius:6px}.task-item button.icon:hover:not(:disabled){background:var(--lilac-100);color:var(--lilac-800)}.task-item button.icon:disabled{opacity:.4;cursor:not-allowed}.task-item button.copy-icon{color:var(--lilac-600)}.task-item button.copy-icon:hover:not(:disabled){color:var(--lilac-800)}.task-item button.danger-icon{color:var(--text-muted)}.task-item button.danger-icon:hover{color:var(--color-error);background:transparent}.task-item button.danger-icon.confirm-active{color:var(--color-error);font-weight:800}.checkbox{width:22px;height:22px;cursor:pointer;accent-color:var(--primary)}.add-task-form{display:grid;grid-template-columns:1fr 80px 110px 1fr auto;gap:8px;margin-top:14px}.totals-bar{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding:14px 16px;background:var(--lilac-200);border-radius:12px;font-weight:700;color:var(--lilac-800)}.totals-bar .progress-wrap{flex:1;margin:0 16px;height:10px;background:var(--surface);border-radius:999px;overflow:hidden}.totals-bar .progress-fill{height:100%;background:linear-gradient(90deg,var(--lilac-400),var(--lilac-600));transition:width .4s ease}.sticker-shelf{margin-top:18px;padding:16px;background:linear-gradient(135deg,var(--lilac-100),var(--lilac-200));border-radius:16px;border:1px dashed var(--lilac-300)}.sticker-shelf h3{margin:0 0 10px;color:var(--lilac-800);font-size:15px;letter-spacing:.3px;text-transform:uppercase}.sticker-grid{display:flex;flex-wrap:wrap;gap:10px}.sticker{width:64px;height:64px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 2px 8px #7c3aed2e;border:2px solid var(--lilac-300);position:relative;transition:transform .15s ease}.sticker:hover{transform:scale(1.08) rotate(-2deg)}.sticker .threshold{position:absolute;bottom:-6px;right:-6px;background:var(--lilac-700);color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:2px 6px}.sticker.placeholder{background:#ffffff80;border-style:dashed;color:var(--lilac-400);font-size:14px;font-weight:700}.stats-controls{display:flex;gap:8px;margin-bottom:18px}.stats-controls .range-btn{background:var(--surface);color:var(--lilac-700);border:1px solid var(--border)}.stats-controls .range-btn.active{background:var(--lilac-600);color:#fff;border-color:var(--lilac-600)}.stats-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.stat-tile{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:14px;text-align:center}.stat-tile .stat-num{font-size:26px;font-weight:800;color:var(--lilac-700)}.stat-tile .stat-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.empty{padding:24px;text-align:center;color:var(--text-muted)}.alarm-toast-stack{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:1000;max-width:calc(100vw - 40px)}.alarm-toast{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--lilac-300);border-left:6px solid var(--lilac-600);border-radius:12px;padding:12px 14px;box-shadow:0 8px 24px #7c3aed40;min-width:280px;animation:alarm-pop .25s ease}@keyframes alarm-pop{0%{transform:translateY(20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.alarm-toast-icon{font-size:28px;line-height:1}.alarm-toast-body{display:flex;flex-direction:column;min-width:0;flex:1}.alarm-toast-body strong{color:var(--lilac-800);font-size:15px;word-break:break-word}.alarm-toast-body small{color:var(--text-muted);font-size:12px;margin-top:2px}.flash-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:var(--lilac-800);color:#fff;padding:10px 18px;border-radius:999px;font-weight:600;font-size:14px;box-shadow:0 8px 24px #7c3aed59;z-index:1000;animation:flash-pop .2s ease,flash-out .3s ease 2.2s forwards}@keyframes flash-pop{0%{transform:translate(-50%,12px);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes flash-out{to{transform:translate(-50%,-8px);opacity:0}}@media (max-width: 600px){.task-item{grid-template-columns:22px 24px 1fr 76px 28px 28px}.add-task-form{grid-template-columns:1fr 1fr}.add-task-form input[type=text],.add-task-form select{grid-column:1 / -1}.add-task-form>*:last-child{grid-column:1 / -1}.stats-summary{grid-template-columns:1fr 1fr}.alarm-toast-stack{right:12px;bottom:12px;left:12px}.alarm-toast{min-width:0}}@media (max-width: 380px){.task-item{grid-template-columns:18px 22px 1fr 64px 26px 26px;gap:6px}.task-item .points-edit input{width:44px}}
