:root{--bg: #0d0d0d;--surface: #1a1a1a;--surface-variant: #242424;--accent: #7c3aed;--accent-hover: #8b5cf6;--on-accent: #ffffff;--text: #f5f5f5;--text-secondary: #888888;--destructive: #ef4444;--archive: #f59e0b;--border: #2a2a2a;--font: "Inter", system-ui, sans-serif;--radius: 12px;--sidebar-width: 220px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#app{min-height:100%;display:flex;flex-direction:column}.app-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px}.login-card h1{font-size:1.5rem;font-weight:600;margin:0 0 8px;text-align:center}.login-card .logo{display:flex;justify-content:center;margin-bottom:32px}.login-card .logo svg{width:64px;height:64px;color:var(--accent)}.login-form{display:flex;flex-direction:column;gap:16px}.login-form label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.login-form input{width:100%;padding:12px 14px;background:var(--surface);border:1px solid var(--surface-variant);border-radius:var(--radius);color:var(--text);font:inherit;transition:border-color .15s}.login-form input:focus{outline:none;border-color:var(--accent)}.login-form input::placeholder{color:var(--text-secondary)}.login-error{font-size:13px;color:var(--destructive)}.link-btn{background:none;border:none;color:var(--accent);font:inherit;font-size:13px;cursor:pointer;padding:0;text-decoration:underline}.link-btn:hover{color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font:inherit;font-weight:500;border:none;border-radius:var(--radius);cursor:pointer;transition:background-color .15s,opacity .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface-variant);color:var(--text)}.btn-secondary:hover:not(:disabled){background:#2e2e2e}.btn-outline-archive{background:transparent;color:var(--archive);border:1px solid var(--archive)}.btn-outline-archive:hover:not(:disabled){background:#f59e0b26}.btn-block{width:100%}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);padding:20px 0;flex-shrink:0}.app-sidebar nav{display:flex;flex-direction:column;gap:4px}.app-sidebar a{display:flex;align-items:center;gap:10px;padding:10px 20px;color:var(--text-secondary);text-decoration:none;font-weight:500;border-left:3px solid transparent;transition:color .15s,background .15s}.app-sidebar a:hover{color:var(--text);background:var(--surface-variant)}.app-sidebar a.active{color:var(--accent);background:#7c3aed1f;border-left-color:var(--accent)}.app-sidebar .nav-icon{width:20px;height:20px;opacity:.9}.sidebar-lists{margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.sidebar-lists-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:0 20px 8px}.sidebar-lists-items{display:flex;flex-direction:column;gap:2px}.sidebar-list-item{display:block;width:100%;text-align:left;padding:10px 20px;font:inherit;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-left:3px solid transparent;cursor:pointer;transition:color .15s,background .15s}.sidebar-list-item:hover{color:var(--text);background:var(--surface-variant)}.sidebar-list-item.active{color:var(--accent);background:#7c3aed1f;border-left-color:var(--accent)}.sidebar-list-new{opacity:.85;margin-top:4px}.app-main{flex:1;min-width:0;padding:24px 32px;overflow:auto}.page-title{font-size:1.25rem;font-weight:600;margin:0 0 20px}.list-switcher-bar{margin-bottom:16px}.list-chips{display:flex;flex-wrap:wrap;gap:8px}.list-chip{padding:8px 14px;border-radius:20px;font-size:13px;font-weight:500;background:var(--surface-variant);color:var(--text-secondary);border:none;cursor:pointer;transition:background .15s,color .15s}.list-chip:hover{background:#2e2e2e;color:var(--text)}.list-chip.active{background:#7c3aed4d;color:var(--text)}.list-chip-new{opacity:.8}.list-switcher-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.list-share-panel{margin-bottom:16px;padding:12px;background:var(--surface-variant);border-radius:8px}.list-share-title{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--text-secondary)}.list-share-add{display:flex;gap:8px;margin-bottom:8px}.list-share-add input{flex:1;max-width:240px;padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px}.list-share-error{margin:0 0 8px;font-size:12px;color:var(--color-error, #e57373)}.list-share-members{margin:0;padding-left:20px}.list-share-members li{margin-bottom:4px;display:flex;align-items:center;gap:8px}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.filter-chip{padding:8px 14px;border-radius:20px;font-size:12px;font-weight:500;background:var(--surface-variant);color:var(--text-secondary);border:none;cursor:pointer;transition:background .15s,color .15s}.filter-chip:hover{background:#2e2e2e;color:var(--text)}.filter-chip.active{background:#7c3aed4d;color:var(--text)}.task-list{list-style:none;margin:0;padding:0}.task-row{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;cursor:pointer;transition:background .15s,border-color .15s}.task-row:hover{filter:brightness(1.25)}.task-collapse{flex-shrink:0;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--text-secondary);font-size:10px;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.task-collapse:hover{color:var(--text);background:#ffffff14}.task-collapse-count{font-size:12px;color:var(--text-secondary);margin-left:2px}.task-row.drag-source-placeholder{min-height:32px;padding-top:8px;padding-bottom:8px;background:transparent!important;border:2px dashed var(--text-secondary);border-radius:var(--radius);opacity:.7;pointer-events:none}.task-row.drag-source-placeholder>*{visibility:hidden}.drop-indicator{list-style:none;height:0;padding:4px 0;margin:0;display:flex;align-items:center;pointer-events:none}.drop-indicator:before{content:"";display:block;height:3px;border-radius:2px;background:var(--accent);margin-left:16px;flex:1;min-width:0}.task-list-drop-sentinel{list-style:none;min-height:24px;margin:0;padding:0;position:relative}.task-indent-outdent{flex-shrink:0;display:flex;align-items:center;gap:2px}.task-indent-outdent button{width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--text-secondary);font-size:14px;line-height:1;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}.task-indent-outdent button:hover:not(:disabled){color:var(--text);background:#ffffff14}.task-indent-outdent button:disabled{opacity:.35;cursor:default}.task-row .drag-handle{flex-shrink:0;width:24px;height:24px;color:var(--text-secondary);cursor:grab;display:flex;align-items:center;justify-content:center}.task-row .drag-handle:active{cursor:grabbing}.task-row .label-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%}.task-row .task-body{flex:1;min-width:0}.task-row .task-title{font-weight:500;font-size:15px;margin:0 0 2px}.task-row .task-meta{font-size:12px;color:var(--text-secondary);margin:0}.task-row .task-due{flex-shrink:0;font-size:12px;color:var(--text-secondary)}.task-row .task-due.overdue{color:var(--accent)}.task-row .task-actions{flex-shrink:0;display:flex;gap:8px}.task-row .task-actions button{padding:6px 10px;font-size:12px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:6px}.task-row .task-actions button:hover{background:var(--surface-variant);color:var(--archive)}.task-detail-card{max-width:640px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.task-detail-card .field{margin-bottom:20px}.task-detail-card .field:last-of-type{margin-bottom:0}.task-detail-card .field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:6px}.task-detail-card input[type=text],.task-detail-card textarea{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit}.task-detail-card input:focus,.task-detail-card textarea:focus{outline:none;border-color:var(--accent)}.task-detail-card textarea{min-height:100px;resize:vertical}.task-detail-card select{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit;cursor:pointer}.task-detail-card select:focus{outline:none;border-color:var(--accent)}.task-detail-card .status-group{display:flex;gap:8px;flex-wrap:wrap}.task-detail-card .status-group label{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:13px}.task-detail-card .status-group input{margin:0}.task-detail-card .status-group input:checked+span{color:var(--accent)}.task-detail-card .detail-actions{margin-top:24px;padding-top:20px;border-top:1px solid var(--border);display:flex;gap:12px}.empty-state{text-align:center;padding:48px 24px;color:var(--text-secondary)}.empty-state .empty-icon{width:64px;height:64px;margin:0 auto 16px;opacity:.5}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:8px;max-width:90vw}.toast{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 20px #0006}.toast-undo{margin-left:8px;padding:4px 10px;font-size:12px;background:var(--accent);color:var(--on-accent);border:none;border-radius:6px;cursor:pointer}.toast-undo:hover{background:var(--accent-hover)}.settings-section{max-width:480px;margin-bottom:32px}.settings-section h2{font-size:1rem;font-weight:600;margin:0 0 12px;color:var(--text-secondary)}.settings-section p{margin:0 0 12px;color:var(--text-secondary);font-size:13px}.settings-section a{color:var(--accent);text-decoration:none}.settings-section a:hover{text-decoration:underline}.settings-section-desc{font-size:13px;color:var(--text-secondary);margin-bottom:12px}.labels-add-form{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.labels-add-form input{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;width:100px}.labels-add-form input#new-label-name{width:120px}.labels-list{list-style:none;margin:0;padding:0}.labels-list-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.labels-list-item:last-child{border-bottom:none}.label-swatch{width:14px;height:14px;border-radius:4px;flex-shrink:0}.label-name{font-weight:500;min-width:100px}.label-slug{font-size:12px;color:var(--text-secondary)}.loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--text-secondary)}.spinner{width:24px;height:24px;border:2px solid var(--surface-variant);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-state{text-align:center;padding:48px 24px;color:var(--text-secondary)}.error-state .btn{margin-top:12px}.add-task-bar{display:flex;gap:12px;margin-bottom:20px}.add-task-bar input{flex:1;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:inherit}.add-task-bar input:focus{outline:none;border-color:var(--accent)}.add-task-bar input::placeholder{color:var(--text-secondary)}.link-download-apk{color:var(--accent);text-decoration:none}.link-download-apk:hover{text-decoration:underline}.task-row .task-archived-at{flex-shrink:0;font-size:11px;color:var(--text-secondary)}
