:root{--bg-page:#f8fafc;--bg-card:#fff;--bg-input:#fff;--bg-hover:#f1f5f9;--bg-active:#e2e8f0;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-white:#fff;--border-default:#e2e8f0;--border-strong:#cbd5e1;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-light:#eff6ff;--accent-text:#1e40af;--success:#16a34a;--success-light:#f0fdf4;--success-text:#166534;--warning:#d97706;--warning-light:#fffbeb;--warning-text:#92400e;--danger:#dc2626;--danger-light:#fef2f2;--danger-text:#991b1b;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.07);--shadow-lg:0 10px 25px -3px rgba(0,0,0,.1);--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px}*,:after,:before{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{overscroll-behavior-y:contain}body{margin:0;padding:0;background:var(--bg-page);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,input,select,textarea{color:var(--text-primary);line-height:1.5}input,select,textarea{padding:10px 12px;border:1.5px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-input);font-size:15px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.12)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}textarea{resize:vertical}button{padding:10px 16px;border-radius:var(--radius-md);font-weight:600;font-size:14px;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .12s ease,opacity .12s ease;background:var(--bg-card);border:1.5px solid var(--border-default);color:var(--text-primary)}button:hover{background:var(--bg-hover);border-color:var(--border-strong)}button:active{transform:scale(.96);opacity:.85}.btn-primary{background:var(--accent);color:var(--text-white);border-color:transparent}.btn-primary:hover{background:var(--accent-hover);border-color:transparent}a{transition:opacity .12s ease}a:active{opacity:.75}.card{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:9999px;font-size:12px;font-weight:600;line-height:1.5}.badge-accent{background:var(--accent-light);color:var(--accent-text)}.badge-success{background:var(--success-light);color:var(--success-text)}.badge-warning{background:var(--warning-light);color:var(--warning-text)}.badge-danger{background:var(--danger-light);color:var(--danger-text)}@keyframes page-in{0%{opacity:0}to{opacity:1}}main{animation:page-in .18s ease both}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton-shimmer{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%);background-size:600px 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes ptr-spin{to{transform:rotate(1turn)}}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.97)}}@media (min-width:769px){.fab{display:none!important}}@media (max-width:768px){.fab-hide-mobile{display:none!important}.tasks-main-mobile-pb{padding-bottom:100px}}.tasks-filter-sticky{position:-webkit-sticky;position:sticky;top:8px;z-index:50;background:var(--bg-card)}@media (max-width:768px){.tasks-filter-sticky{position:static}}