@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--surface2:#22263a;--border:#2e3352;--border-light:#3a4070;--text:#e8eaf6;--text-muted:#7b82a8;--text-dim:#4a5080;--primary:#6c63ff;--primary-hover:#7c74ff;--primary-light:#6c63ff1f;--radius:10px;--radius-sm:6px;--shadow:0 8px 32px #00000080;--shadow-sm:0 2px 10px #0000004d}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,sans-serif;overflow:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}#root{flex-direction:column;height:100vh;display:flex}.header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;height:58px;padding:0 24px;display:flex}.header-left{align-items:center;gap:16px;display:flex}.logo{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:700;text-decoration:none;display:flex}.logo-icon{background:var(--primary);border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.header-center{flex:1;justify-content:center;display:flex}.header-right{align-items:center;gap:8px;display:flex}.tabs{background:var(--bg);border-radius:var(--radius-sm);gap:2px;padding:3px;display:flex}.tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:6px;padding:5px 16px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.tab:hover{color:var(--text)}.tab.active{background:var(--surface2);color:var(--text)}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover{color:var(--text);border-color:var(--border-light);background:var(--surface2)}.btn-danger-ghost{color:#ef4444;background:0 0;border:1px solid #ef44444d}.btn-danger-ghost:hover{background:#ef44441a}.btn-icon{padding:6px}.btn-sm{padding:5px 10px;font-size:12px}.btn-icon-sm{padding:4px}.search-wrap{position:relative}.search-wrap svg{color:var(--text-dim);pointer-events:none;width:14px;height:14px;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.search-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;width:210px;padding:7px 10px 7px 30px;font-family:inherit;font-size:13px;transition:border .15s}.search-input:focus{border-color:var(--primary);width:240px}.search-input::placeholder{color:var(--text-dim)}.board-wrap{flex-direction:column;flex:1;display:flex;overflow:hidden}.board{flex:1;align-items:flex-start;gap:14px;padding:20px 24px;display:flex;overflow-x:auto}.column{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;width:272px;min-width:272px;max-height:calc(100vh - 98px);transition:border-color .15s,box-shadow .15s;display:flex}.column.drag-over{border-color:var(--primary);box-shadow:0 0 0 2px #6c63ff33}.column-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:13px 14px;display:flex}.column-title-row{align-items:center;gap:8px;display:flex}.column-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.column-name{font-size:13px;font-weight:600}.column-count{background:var(--surface2);color:var(--text-muted);border-radius:99px;padding:2px 7px;font-size:11px;font-weight:600}.column-body{flex-direction:column;flex:1;gap:8px;min-height:60px;padding:10px;display:flex;overflow-y:auto}.add-task-btn{border:1.5px dashed var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-dim);cursor:pointer;background:0 0;flex-shrink:0;align-items:center;gap:6px;width:calc(100% - 20px);margin:4px 10px 10px;padding:8px 10px;font-family:inherit;font-size:12px;transition:all .15s;display:flex}.add-task-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.task-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:grab;-webkit-user-select:none;user-select:none;padding:12px;transition:all .15s;position:relative}.task-card:hover{border-color:var(--border-light);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.task-card.dragging{opacity:.35;cursor:grabbing;transform:scale(1.02)}.card-priority-strip{border-radius:2px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;height:3px;margin:-12px -12px 10px}.card-top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.card-title{flex:1;font-size:13px;font-weight:500;line-height:1.45}.card-menu-btn{color:var(--text-dim);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px 4px;transition:opacity .15s;display:flex}.task-card:hover .card-menu-btn{opacity:1}.card-menu-btn:hover{color:var(--text);background:var(--border)}.card-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:10px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;display:flex}.card-footer-left{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.priority-badge{text-transform:uppercase;letter-spacing:.4px;border-radius:99px;padding:2px 7px;font-size:10px;font-weight:600}.priority-high{color:#ef4444;background:#ef444426}.priority-medium{color:#f97316;background:#f9731626}.priority-low{color:#22c55e;background:#22c55e26}.due-badge{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.due-badge.overdue{color:#ef4444}.due-badge svg{width:11px;height:11px}.card-assignees{display:flex}.card-assignees .avatar{border:2px solid var(--surface2);margin-left:-5px}.card-assignees .avatar:first-child{margin-left:0}.avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:9px;font-weight:700;display:flex}.avatar-md{width:36px;height:36px;font-size:13px}.avatar-lg{width:44px;height:44px;font-size:16px}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#000000a6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow);border-radius:14px;animation:.18s modal-in;overflow-y:auto}@keyframes modal-in{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:none}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px 24px 0;display:flex}.modal-title{font-size:16px;font-weight:600}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;display:flex}.modal-close:hover{color:var(--text);background:var(--surface2)}.modal-body{flex-direction:column;gap:16px;padding:0 24px 20px;display:flex}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;padding:16px 24px;display:flex}.modal-footer-left{margin-right:auto}.form-group{flex-direction:column;gap:6px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-label{color:var(--text-muted);font-size:12px;font-weight:500}.form-input,.form-select,.form-textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:13px;transition:border .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary)}.form-textarea{resize:vertical;min-height:80px}.form-select option{background:var(--surface)}.form-input::placeholder{color:var(--text-dim)}.assignee-picker{flex-wrap:wrap;gap:6px;display:flex}.assignee-option{border:1px solid var(--border);cursor:pointer;background:var(--bg);color:var(--text-muted);border-radius:99px;align-items:center;gap:6px;padding:5px 10px 5px 6px;font-size:12px;transition:all .15s;display:flex}.assignee-option:hover{border-color:var(--border-light);color:var(--text)}.assignee-option.selected{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.color-picker{flex-wrap:wrap;gap:8px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:26px;height:26px;transition:all .15s}.color-swatch.selected{border-color:#fff;transform:scale(1.2);box-shadow:0 0 0 2px #fff3}.dropdown-wrap{position:relative}.dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:150px;box-shadow:var(--shadow);z-index:50;padding:4px;position:absolute;top:calc(100% + 4px);right:0}.dropdown-item{cursor:pointer;color:var(--text-muted);text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;width:100%;padding:7px 10px;font-family:inherit;font-size:12px;transition:all .1s;display:flex}.dropdown-item:hover{background:var(--surface2);color:var(--text)}.dropdown-item.danger{color:#ef4444}.dropdown-item.danger:hover{background:#ef44441a}.dropdown-divider{background:var(--border);height:1px;margin:4px 0}.empty-col{text-align:center;color:var(--text-dim);padding:24px 0;font-size:12px;transition:color .15s}.drag-over .empty-col{color:var(--primary)}.view{flex:1;padding:28px 32px;overflow:auto}.view-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.view-title{font-size:20px;font-weight:700}.view-subtitle{color:var(--text-muted);margin-top:2px;font-size:13px}.user-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.user-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:14px;padding:16px;transition:all .15s;display:flex}.user-card:hover{border-color:var(--border-light);box-shadow:var(--shadow-sm)}.user-info{flex:1;min-width:0}.user-name{font-size:14px;font-weight:600}.user-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.user-task-count{color:var(--text-dim);margin-top:4px;font-size:11px}.user-actions{flex-shrink:0;gap:4px;display:flex}.toast-wrap{z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);pointer-events:all;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;animation:.2s toast-in;display:flex}.toast-success{border-left:3px solid #22c55e}.toast-error{border-left:3px solid #ef4444}.toast-info{border-left:3px solid var(--primary)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.divider{background:var(--border);height:1px}.text-muted{color:var(--text-muted)}.text-sm{font-size:12px}.flex-center{align-items:center;gap:8px;display:flex}.login-page{background:var(--bg);background-image:radial-gradient(at 50% -10%,#6c63ff2e 0%,#0000 55%);flex:1;justify-content:center;align-items:center;padding:20px;display:flex;overflow:auto}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;width:100%;max-width:400px;padding:40px 36px 32px;box-shadow:0 24px 64px #00000080}.login-brand{align-items:center;gap:10px;margin-bottom:28px;display:flex}.login-brand-name{flex:1;font-size:17px;font-weight:700}.invite-badge{letter-spacing:.5px;text-transform:uppercase;color:var(--primary);background:var(--primary-light);border:1px solid #6c63ff4d;border-radius:99px;padding:3px 8px;font-size:10px;font-weight:600}.login-title{margin-bottom:6px;font-size:22px;font-weight:700}.login-sub{color:var(--text-muted);margin-bottom:28px;font-size:13px}.login-form{flex-direction:column;gap:16px;display:flex}.login-btn{justify-content:center;width:100%;margin-top:4px;padding:11px;font-size:14px}.login-footer{text-align:center;color:var(--text-dim);margin-top:24px;font-size:12px}.login-error{color:#ef4444;border-radius:var(--radius-sm);background:#ef44441a;border:1px solid #ef444440;align-items:center;gap:7px;padding:9px 12px;font-size:12px;display:flex}.pw-wrap{position:relative}.pw-wrap .form-input{padding-right:38px}.pw-toggle{color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;transition:color .15s;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--text-muted)}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.user-you-badge,.user-admin-badge{vertical-align:middle;border-radius:99px;align-items:center;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.user-you-badge{color:var(--primary);background:#6c63ff26;border:1px solid #6c63ff4d}.user-admin-badge{color:#f97316;background:#f973161f;border:1px solid #f973164d}.invite-creds{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin:4px 0;overflow:hidden}.invite-cred-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 14px;display:flex}.invite-cred-row:last-child{border-bottom:none}.invite-cred-label{color:var(--text-muted);flex-shrink:0;width:70px;font-size:11px}.invite-cred-value{font-size:13px;font-weight:500}.invite-cred-mono{letter-spacing:.5px;color:var(--primary);font-family:ui-monospace,monospace}.link-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;transition:opacity .15s}.link-btn:hover{opacity:.75}.subtask-list{flex-direction:column;gap:4px;margin-bottom:8px;list-style:none;display:flex}.subtask-item{background:var(--surface2);border-radius:6px;align-items:center;gap:8px;padding:5px 8px;transition:background .15s;display:flex}.subtask-item:hover{background:var(--border)}.subtask-check{border:1.5px solid var(--border-light);cursor:pointer;color:#fff;background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:background .15s,border-color .15s;display:flex}.subtask-check.checked{background:var(--primary);border-color:var(--primary)}.subtask-title{color:var(--text);flex:1;font-size:13px;transition:color .15s}.subtask-title.done{color:var(--text-dim);text-decoration:line-through}.subtask-remove{cursor:pointer;color:var(--text-dim);opacity:0;background:0 0;border:none;border-radius:3px;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:flex}.subtask-item:hover .subtask-remove{opacity:1}.subtask-remove:hover{color:#ef4444}.subtask-add-row{gap:8px;display:flex}.subtask-add-row .form-input{flex:1}.card-subtasks{flex-direction:column;gap:4px;margin:6px 0 2px;display:flex}.subtask-progress-header{justify-content:space-between;align-items:center;display:flex}.subtask-progress-section-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);font-size:10px;font-weight:500}.subtask-progress-bar{background:var(--border);border-radius:2px;width:100%;height:4px;overflow:hidden}.subtask-progress-fill{background:var(--primary);border-radius:2px;height:100%;transition:width .3s}.subtask-progress-label{color:var(--text-muted);flex-shrink:0;font-size:11px}
