@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";:root{--bg-1:#4338ca;--bg-2:#6366f1;--bg-3:#8b5cf6;--bg-4:#a855f7;--glass:#ffffff24;--glass-strong:#fffffff0;--glass-border:#ffffff59;--surface-muted:#ffffff8c;--border:#e6e4f5;--text:#1c1a2e;--text-muted:#6b6885;--primary:#6366f1;--primary-dark:#4f46e5;--success:#16a34a;--success-bg:#dcfce7;--danger:#dc2626;--danger-bg:#fee2e2;--warning:#d97706;--warning-bg:#fef3c7;--radius-sm:10px;--radius:18px;--radius-lg:26px;--shadow:0 1px 3px #1c1a2e0f, 0 12px 32px #1c1a2e1a;--shadow-lg:0 24px 60px #31146e47;--shadow-glass:0 8px 32px #1f19502e}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:linear-gradient(120deg, var(--bg-1), var(--bg-2), var(--bg-3), var(--bg-4));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:300% 300%;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;animation:18s infinite th-bg-drift}@keyframes th-bg-drift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@media (prefers-reduced-motion:reduce){body{animation:none}}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button{font-family:inherit}.container{max-width:760px;margin:0 auto;padding:40px 20px 80px}.th-clock{color:#fff;flex-direction:column;align-items:center;gap:2px;margin-bottom:12px;display:inline-flex}.th-clock-time{letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.th-clock-date{opacity:.85;font-size:13px;font-weight:500}.th-header{text-align:center;color:#fff;margin-bottom:32px}.th-badge{letter-spacing:.08em;text-transform:uppercase;background:var(--glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);vertical-align:middle;border-radius:999px;margin-left:8px;padding:5px 12px;font-size:11px;font-weight:700;display:inline-block}.th-header h1{letter-spacing:-.03em;text-shadow:0 2px 24px #31146e40;margin:6px 0 8px;font-size:40px;font-weight:900}.th-header p{color:#ffffffd1;margin:0;font-size:15px}.th-toast{z-index:50;background:var(--glass-strong);-webkit-backdrop-filter:blur(16px);color:var(--success);border:1px solid var(--success-bg);box-shadow:var(--shadow-lg);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:600;animation:.25s ease-out th-slide-in;display:flex;position:fixed;top:18px;right:18px}@keyframes th-slide-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.th-error-banner{color:var(--danger);border-radius:var(--radius-sm);background:#fee2e2e6;border:1px solid #fecaca;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;font-size:14px;font-weight:500;display:flex}.th-card{background:var(--glass-strong);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass);border:1px solid #fff9;margin-bottom:24px;padding:28px}.th-card h3{align-items:center;gap:8px;margin:0 0 18px;font-size:17px;font-weight:700;display:flex}.th-form-grid{grid-template-columns:1.2fr 1.4fr 1fr;gap:14px;display:grid}@media (width<=640px){.th-form-grid{grid-template-columns:1fr}}.th-field label{color:var(--text-muted);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.th-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:#f8f7ffb3;padding:11px 13px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.th-input:focus{border-color:var(--primary);background:#fff;outline:none;box-shadow:0 0 0 4px #6366f124}.th-input:disabled{opacity:.6;cursor:not-allowed}.th-submit-row{justify-content:flex-end;margin-top:18px;display:flex}.th-btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:11px 22px;font-size:14px;font-weight:600;transition:transform .12s,box-shadow .15s,background .15s;display:inline-flex}.th-btn:active{transform:scale(.96)}.th-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.th-btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 8px 20px #6366f166}.th-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 26px #6366f180}.th-btn-ghost{color:var(--text);border:1.5px solid var(--border);background:#f8f7ffe6}.th-btn-ghost:hover:not(:disabled){background:#eeecfb}.th-btn-danger{background:var(--danger-bg);color:var(--danger)}.th-btn-danger:hover:not(:disabled){background:#fecaca}.th-btn-icon{border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.th-icon{flex-shrink:0;width:16px;height:16px}.th-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.th-stat{background:var(--glass);-webkit-backdrop-filter:blur(14px);border:1px solid var(--glass-border);border-radius:var(--radius);text-align:center;padding:14px 10px;transition:transform .15s,background .15s}.th-stat:hover{background:#fff3;transform:translateY(-2px)}.th-stat .th-stat-num{color:#fff;font-size:24px;font-weight:800;line-height:1.1}.th-stat .th-stat-label{color:#ffffffbf;text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.th-filters{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.th-filter-btn{border:1px solid var(--glass-border);background:var(--glass);-webkit-backdrop-filter:blur(10px);color:#fff;cursor:pointer;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,transform .12s}.th-filter-btn:hover{background:#ffffff42}.th-filter-btn:active{transform:scale(.96)}.th-filter-btn.active{color:var(--primary-dark);background:#fff;border-color:#fff;box-shadow:0 6px 16px #1f195033}.th-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.th-item{background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);border-radius:var(--radius);border:1px solid #fff9;align-items:flex-start;gap:14px;padding:17px 19px;transition:box-shadow .15s,transform .15s;animation:.2s ease-out th-fade-in;display:flex}.th-item:hover{transform:translateY(-1px);box-shadow:0 10px 28px #1c1a2e24}.th-item.completed{opacity:.6}@keyframes th-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.th-checkbox{appearance:none;border:2px solid var(--border);cursor:pointer;border-radius:999px;place-content:center;width:22px;min-width:22px;height:22px;margin-top:2px;transition:border-color .15s,background .15s,transform .1s;display:grid}.th-checkbox:hover{transform:scale(1.08)}.th-checkbox:checked{background:var(--success);border-color:var(--success)}.th-checkbox:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:10px;transform:rotate(45deg)translate(-1px,-1px)}.th-item-body{flex:1;min-width:0}.th-item-title{word-break:break-word;margin:0 0 4px;font-size:15px;font-weight:700}.th-item.completed .th-item-title{text-decoration:line-through}.th-item-desc{color:var(--text-muted);word-break:break-word;margin:0 0 9px;font-size:13.5px}.th-meta-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.th-badge{border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.th-badge-deadline{color:var(--primary-dark);background:#6366f11a}.th-badge-overdue{background:var(--danger-bg);color:var(--danger)}.th-badge-done{background:var(--success-bg);color:var(--success)}.th-item-actions{flex-shrink:0;gap:6px;display:flex}.th-edit-grid{flex-direction:column;gap:8px;display:flex}.th-empty{text-align:center;color:#ffffffe6;padding:48px 20px}.th-empty .th-empty-icon{opacity:.85;width:44px;height:44px;margin:0 auto 14px}.th-empty p{margin:0;font-size:14px}.th-skeleton{flex-direction:column;gap:12px;display:flex}.th-skeleton-item{border-radius:var(--radius);border:1px solid var(--glass-border);background:linear-gradient(90deg,#ffffff47 25%,#ffffff80 37%,#ffffff47 63%) 0 0/400% 100%;height:66px;animation:1.4s infinite th-shimmer}@keyframes th-shimmer{0%{background-position:100%}to{background-position:0}}
