:root{--bg:#0f172a;--bg-elevated:#1a2438;--bg-card:#1e293b;--border:#2e3b52;--text:#e2e8f0;--text-dim:#94a3b8;--accent:#6366f1;--accent-soft:#6366f126;--danger:#ef4444;--danger-soft:#ef444426;--warn:#f59e0b;--warn-soft:#f59e0b26;--ok:#22c55e;--ok-soft:#22c55e26;--radius:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}button{font-family:inherit}input,select,textarea{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:10px;outline:none;padding:9px 12px;font-family:inherit;font-size:14px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}button{cursor:pointer}.app-shell{flex-direction:column;min-height:100%;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;padding:14px 18px;display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:17px;font-weight:700}.nav-tabs{background:var(--bg-elevated);border-radius:999px;gap:4px;padding:4px;display:flex}.nav-tabs a{color:var(--text-dim);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;text-decoration:none}.nav-tabs a.active{background:var(--accent);color:#fff}.main-content{flex:1;min-height:0;display:flex}.btn{background:var(--bg-elevated);color:var(--text);border:none;border:1px solid var(--border);border-radius:10px;padding:9px 16px;font-size:14px;font-weight:600}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.btn:disabled{opacity:.5;cursor:not-allowed}.fab{background:var(--accent);color:#fff;z-index:20;border:none;border-radius:50%;width:56px;height:56px;font-size:28px;line-height:1;position:fixed;bottom:22px;right:22px;box-shadow:0 8px 24px #6366f173}.sidebar{border-right:1px solid var(--border);flex-shrink:0;width:210px;padding:16px 10px;overflow-y:auto}.sidebar-item{color:var(--text-dim);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px;padding:9px 10px;font-size:14px;display:flex}.sidebar-item:hover{background:var(--bg-elevated)}.sidebar-item.active{background:var(--accent-soft);color:var(--text);font-weight:600}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.board{flex:1;gap:14px;padding:16px;display:flex;overflow-x:auto}.board-col{flex-direction:column;flex:1;min-width:260px;min-height:0;display:flex}.board-col h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin:0 0 10px 4px;font-size:13px;display:flex}.board-col-body{flex-direction:column;flex:1;gap:10px;padding-bottom:80px;display:flex;overflow-y:auto}.task-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:12px 14px;transition:border-color .15s}.task-card:hover{border-color:var(--accent)}.task-card-title{margin:0 0 8px;font-size:14px;font-weight:600;line-height:1.4}.task-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.chip.priority-high{background:var(--danger-soft);color:var(--danger)}.chip.priority-medium{background:var(--warn-soft);color:var(--warn)}.chip.priority-low{background:var(--ok-soft);color:var(--ok)}.chip.deadline{background:var(--bg-elevated);color:var(--text-dim)}.chip.deadline.overdue{background:var(--danger-soft);color:var(--danger)}.chip.deadline.soon{background:var(--warn-soft);color:var(--warn)}.chip.project{color:#fff}.chip.subtasks{background:var(--bg-elevated);color:var(--text-dim)}.empty-hint{color:var(--text-dim);text-align:center;padding:20px 8px;font-size:13px}.modal-backdrop{z-index:100;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);border-radius:18px 18px 0 0;width:100%;max-width:560px;max-height:92vh;padding:20px;overflow-y:auto}@media (width>=640px){.modal-backdrop{align-items:center}.modal{border-radius:18px;max-height:86vh}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h2{margin:0;font-size:17px}.close-btn{color:var(--text-dim);background:0 0;border:none;padding:0 4px;font-size:22px}.field{margin-bottom:14px}.field label{color:var(--text-dim);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.field input,.field select,.field textarea{width:100%}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.subtask-row,.reminder-row{align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.subtask-row input[type=checkbox]{width:auto}.subtask-row span.done{color:var(--text-dim);text-decoration:line-through}.icon-btn{color:var(--text-dim);background:0 0;border:none;padding:2px 6px;font-size:15px}.icon-btn:hover{color:var(--danger)}.add-row{gap:8px;margin-top:8px;display:flex}.add-row input{flex:1}.modal-actions{border-top:1px solid var(--border);justify-content:space-between;gap:10px;margin-top:20px;padding-top:16px;display:flex}.settings-page{width:100%;max-width:640px;margin:0 auto;padding:20px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;padding:18px}.card h2{margin:0 0 4px;font-size:15px}.card .sub{color:var(--text-dim);margin:0 0 14px;font-size:13px}.status-badge{border-radius:999px;align-items:center;gap:6px;margin-bottom:14px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.status-badge.ready{background:var(--ok-soft);color:var(--ok)}.status-badge.qr,.status-badge.initializing{background:var(--warn-soft);color:var(--warn)}.status-badge.not_initialized,.status-badge.disconnected,.status-badge.auth_failure{background:var(--danger-soft);color:var(--danger)}.status-badge.demo{background:var(--accent-soft);color:var(--accent)}.demo-banner{background:var(--accent);color:#fff;text-align:center;padding:6px 10px;font-size:12px;font-weight:600}.qr-box{flex-direction:column;align-items:center;gap:10px;padding:16px 0;display:flex}.qr-box img{background:#fff;border-radius:12px;width:220px;height:220px;padding:10px}.toggle-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.toggle-row:last-child{border-bottom:none}.toggle-row .label{font-size:14px;font-weight:600}.toggle-row .controls{align-items:center;gap:8px;display:flex}.switch{flex-shrink:0;width:42px;height:24px;position:relative}.switch input{opacity:0;width:0;height:0}.switch .track{background:var(--border);cursor:pointer;border-radius:999px;transition:all .15s;position:absolute;inset:0}.switch .track:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .15s;position:absolute;top:3px;left:3px}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:before{transform:translate(18px)}.toast{background:var(--bg-elevated);border:1px solid var(--border);z-index:200;border-radius:999px;padding:10px 18px;font-size:13px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}@media (width<=720px){.sidebar{width:100px}.board{flex-direction:column}.board-col{min-width:0}}
