@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg: #09090b;--bg-subtle: #0f0f12;--bg-element: #18181b;--bg-hover: #1f1f23;--border: #27272a;--border-hover: #3f3f46;--text: #fafafa;--text-secondary: #a1a1aa;--text-muted: #52525b;--accent: #8b5cf6;--accent-subtle: rgba(139, 92, 246, .06);--accent-focus: rgba(139, 92, 246, .12);--danger: #ef4444;--radius: 8px;--radius-sm: 6px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:none;outline:none;background:none;color:inherit;font-size:inherit}input{font-family:inherit;font-size:inherit;color:inherit;outline:none;border:none;background:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.app{display:flex;flex-direction:column;height:100%}.header{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:52px;border-bottom:1px solid var(--border);flex-shrink:0}.header-left{display:flex;align-items:center;gap:24px}.header-right{display:flex;align-items:center;gap:6px}.header-org{font-size:13px;font-weight:600;color:var(--text);padding:4px 10px;border-radius:999px;background:var(--bg-element);border:1px solid var(--border)}.header-user{font-size:12px;color:var(--text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.members-modal{max-width:460px}.members-list{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:6px}.members-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.members-row-pending{border-style:dashed;background:transparent}.members-email{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.members-role{font-size:11px;color:var(--text-muted);text-transform:capitalize}.invite-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.invite-heading{margin:0;font-size:14px;font-weight:600}.invite-hint{margin:4px 0 12px;font-size:12px;color:var(--text-muted)}.invite-form{display:flex;flex-direction:column;gap:8px}.invite-controls{display:flex;gap:8px;align-items:stretch}.invite-input{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;font-family:inherit}.invite-input:focus{border-color:var(--accent);outline:none}.invite-input::placeholder{color:var(--text-muted)}.invite-select{flex:0 0 130px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;font-family:inherit;cursor:pointer}.invite-select:focus{border-color:var(--accent);outline:none}.invite-btn{flex:1;padding:10px 16px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:14px;font-weight:500;white-space:nowrap}.invite-btn:hover{opacity:.9}.invite-btn:disabled{opacity:.4;cursor:not-allowed}.invite-pending-label{margin:16px 0 0;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.invite-revoke{font-size:12px;color:var(--text-muted);padding:4px 8px;border-radius:var(--radius-sm)}.invite-revoke:hover{color:#f43f5e}.header-btn{padding:5px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;color:var(--text-muted);border:1px solid var(--border);transition:all .15s}.header-btn:hover{color:var(--text);border-color:var(--border-hover)}.logo{font-size:15px;font-weight:600;letter-spacing:-.3px}.nav-tabs{display:flex;gap:2px}.nav-tab{padding:6px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--text-muted);transition:color .15s,background .15s}.nav-tab:hover{color:var(--text-secondary)}.nav-tab.active{color:var(--text);background:var(--bg-element)}.main{flex:1;overflow-y:auto;padding:32px;max-width:1100px;margin:0 auto;width:100%}.lock-screen{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.lock-card{width:100%;max-width:320px;text-align:center}.lock-title{font-size:20px;font-weight:600;letter-spacing:-.3px;margin-bottom:4px}.lock-subtitle{color:var(--text-muted);font-size:13px;margin-bottom:24px}.lock-input{width:100%;padding:10px 14px;background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:14px;transition:border-color .15s;margin-bottom:12px}.lock-input:focus{border-color:var(--accent)}.lock-input::placeholder{color:var(--text-muted)}.lock-btn{width:100%;padding:10px;background:var(--accent);border-radius:var(--radius);font-weight:500;font-size:14px;color:#fff;transition:opacity .15s}.lock-btn:hover{opacity:.9}.lock-btn:disabled{opacity:.4;cursor:not-allowed}.lock-error{color:var(--danger);font-size:12px;margin-top:10px}.lock-toggle{color:var(--text-muted);font-size:12px;margin-top:16px;cursor:pointer;transition:color .15s}.lock-toggle:hover{color:var(--text-secondary)}.week-nav{display:flex;align-items:center;gap:12px;margin-bottom:24px}.week-nav-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-secondary);transition:background .15s;font-size:18px}.week-nav-btn:hover{background:var(--bg-element)}.week-range{font-size:14px;font-weight:500;min-width:200px;text-align:center}.week-today-btn{font-size:12px;color:var(--text-muted);padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);transition:all .15s}.week-today-btn:hover{border-color:var(--border-hover);color:var(--text-secondary)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:12px}.week-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:640px}.week-table th{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:10px 4px;text-align:center;border-bottom:1px solid var(--border)}.week-table th:first-child{text-align:left;padding-left:12px;width:220px}.week-table th:last-child{text-align:right;padding-right:12px;width:72px}.week-table th .day-date{display:block;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-secondary);letter-spacing:0;text-transform:none;margin-top:2px}.week-table th.today .day-date{color:var(--accent)}.week-table tbody tr{transition:background .1s}.week-table tbody tr:hover{background:var(--bg-subtle)}.week-table td{border-bottom:1px solid var(--border);padding:0;text-align:center}.week-table td:first-child{text-align:left}.week-table td:last-child{text-align:right;padding-right:12px}.week-table td.today-col{background:var(--accent-subtle)}.project-cell{display:flex;align-items:flex-start;gap:10px;padding:10px 12px}.project-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}.project-cell-inner{display:flex;flex-direction:column;gap:6px;min-width:0}.project-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-actions{display:flex;gap:4px}.quick-btn{padding:2px 7px;border-radius:4px;font-size:10px;font-weight:500;color:var(--text-muted);background:transparent;border:1px solid var(--border);transition:all .15s;white-space:nowrap}.quick-btn:hover{color:var(--text-secondary);border-color:var(--border-hover);background:var(--bg-element)}.quick-btn.danger:hover{color:var(--danger);border-color:#ef44444d}.project-remove{opacity:0;font-size:16px;color:var(--text-muted);margin-left:auto;transition:opacity .15s,color .15s;flex-shrink:0;line-height:1}.week-table tbody tr:hover .project-remove{opacity:1}.project-remove:hover{color:var(--danger)}.hours-input{width:100%;padding:10px 4px;text-align:center;font-variant-numeric:tabular-nums;font-size:13px;color:var(--text);background:transparent;border:none;outline:none;transition:background .15s}.hours-input:focus{background:var(--accent-focus)}.hours-input::placeholder{color:var(--text-muted);font-size:12px}.row-total{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.week-table tfoot td{padding:10px 4px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:center;border-top:none}.week-table tfoot td:first-child{text-align:left;padding-left:12px;text-transform:uppercase;font-size:11px;letter-spacing:.05em}.week-table tfoot td:last-child{text-align:right;padding-right:12px;color:var(--text)}.add-project-btn{padding:8px 14px;font-size:13px;color:var(--text-muted);transition:color .15s}.add-project-btn:hover{color:var(--accent)}.distribute-panel{margin-top:24px;padding:16px 20px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius)}.distribute-panel h4{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}.distribute-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.distribute-input{width:72px;padding:6px 10px;background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;font-variant-numeric:tabular-nums;font-size:13px;color:var(--text);transition:border-color .15s}.distribute-input:focus{border-color:var(--accent)}.distribute-input::placeholder{color:var(--text-muted)}.distribute-label{font-size:13px;color:var(--text-muted)}.distribute-select{padding:6px 10px;background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;font-family:inherit;transition:border-color .15s}.distribute-select:focus{border-color:var(--accent);outline:none}.distribute-apply{padding:6px 14px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:13px;font-weight:500;transition:opacity .15s}.distribute-apply:hover{opacity:.9}.distribute-apply:disabled{opacity:.4;cursor:not-allowed}.distribute-preview{margin-top:8px;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state p{margin-top:4px;font-size:13px}.empty-state button{margin-top:16px;padding:8px 16px;border-radius:var(--radius-sm);background:var(--bg-element);border:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-secondary);transition:all .15s}.empty-state button:hover{border-color:var(--border-hover);color:var(--text)}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius);padding:20px;width:100%;max-width:320px}.modal h3{font-size:15px;font-weight:600;margin-bottom:14px}.modal-input{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;transition:border-color .15s;margin-bottom:12px}.modal-input:focus{border-color:var(--accent)}.modal-input::placeholder{color:var(--text-muted)}.color-grid{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.color-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:var(--text)}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.modal-actions button{padding:6px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500}.btn-cancel{color:var(--text-muted)}.btn-cancel:hover{color:var(--text-secondary)}.btn-confirm{background:var(--accent);color:#fff}.btn-confirm:hover{opacity:.9}.analytics-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}.analytics-header-left{display:flex;align-items:center;gap:16px}.analytics-title{font-size:16px;font-weight:600;letter-spacing:-.2px}.analytics-tabs{display:flex;gap:2px}.export-btn{padding:6px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;color:var(--text-secondary);border:1px solid var(--border);transition:all .15s}.export-btn:hover{border-color:var(--border-hover);color:var(--text)}.export-btn:disabled{opacity:.4;cursor:not-allowed}.summary-table-wrap{margin-bottom:24px}.summary-table{width:100%;max-width:400px;border-collapse:collapse}.summary-table th{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.summary-table th:nth-child(2),.summary-table th:nth-child(3){text-align:right}.summary-table td{padding:8px 12px;font-size:13px;border-bottom:1px solid var(--border)}.summary-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.summary-table tfoot td{font-weight:600;color:var(--text-secondary);font-size:12px}.summary-project{display:flex;align-items:center;gap:8px}.date-nav{display:flex;align-items:center;gap:12px;margin-bottom:24px}.date-nav button{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:18px;transition:background .15s}.date-nav button:hover{background:var(--bg-element)}.date-label{font-size:14px;font-weight:500;min-width:200px;text-align:center}.today-btn{font-size:12px!important;width:auto!important;padding:4px 10px!important;color:var(--text-muted)!important;border:1px solid var(--border)!important;border-radius:var(--radius-sm)}.today-btn:hover{border-color:var(--border-hover)!important;color:var(--text-secondary)!important}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:24px}.week-day-col{text-align:center}.week-day-label{font-size:11px;color:var(--text-muted);margin-bottom:4px;font-weight:500}.week-day-date{font-size:12px;color:var(--text-secondary);margin-bottom:8px;font-weight:500}.week-bar{border-radius:var(--radius-sm);border:1px solid var(--border);overflow:hidden;min-height:120px;display:flex;flex-direction:column-reverse}.week-bar-segment{transition:height .2s;min-height:2px}.week-day-total{font-size:11px;color:var(--text-muted);margin-top:6px;font-weight:600;font-variant-numeric:tabular-nums}.month-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:24px}.month-day-header{text-align:center;font-size:11px;color:var(--text-muted);font-weight:500;padding:8px 0}.month-cell{aspect-ratio:1;border-radius:var(--radius-sm);border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px;min-height:48px}.month-cell.empty{border-color:transparent}.month-cell.today{border-color:var(--accent)}.month-cell-num{font-size:11px;font-weight:500;color:var(--text-secondary)}.month-cell-dots{display:flex;gap:2px}.month-cell-dot{width:5px;height:5px;border-radius:50%}.month-cell-hours{font-size:9px;color:var(--text-muted);font-weight:600;font-variant-numeric:tabular-nums}.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart-card{background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.chart-card h4{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}.recharts-text{fill:var(--text-muted)!important;font-size:11px!important}.recharts-cartesian-grid line{stroke:var(--border)!important}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%}@media(max-width:768px){.header{padding:0 16px}.main{padding:20px 16px}.charts-row{grid-template-columns:1fr}.week-grid{gap:4px}}@media(max-width:600px){.header{flex-direction:column;height:auto;padding:12px 16px;gap:8px}.week-nav{flex-wrap:wrap}}.main-board{max-width:none;padding:24px}.kanban-board{display:flex;flex-direction:column;height:calc(100vh - 116px);max-width:none}.kanban-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;flex-shrink:0}.kanban-filter{display:flex;flex-direction:column;align-items:stretch;gap:8px;flex:1 1 auto;min-width:0}.chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--border);background:var(--bg-element);color:var(--text-secondary);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .12s,color .12s,background .12s;white-space:nowrap}.chip:hover{border-color:var(--border-hover);color:var(--text)}.chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.chip-selected{border-color:var(--accent);color:var(--accent);font-weight:600}.kanban-filter-select{padding:6px 10px;background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;font-family:inherit;transition:border-color .15s;cursor:pointer}.kanban-filter-select:focus{border-color:var(--accent);outline:none}.kanban-toolbar-actions{display:flex;align-items:center;gap:8px}.kanban-add-column-btn{padding:6px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--text-secondary);border:1px solid var(--border);transition:all .15s}.kanban-add-column-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--text)}.kanban-add-column-btn:disabled{opacity:.4;cursor:not-allowed}.paste-modal{max-width:520px}.paste-hint{font-size:12px;color:var(--text-muted);margin-bottom:12px}.paste-textarea{width:100%;min-height:200px;max-height:400px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;font-family:inherit;line-height:1.5;resize:vertical;transition:border-color .15s;margin-bottom:14px}.paste-textarea:focus{border-color:var(--accent);outline:none}.paste-textarea::placeholder{color:var(--text-muted)}.paste-controls{display:flex;gap:12px;margin-bottom:16px}.paste-control{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.paste-label{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.paste-select-wrap{position:relative;display:flex;align-items:center}.paste-select-dot{position:absolute;left:10px;width:8px;height:8px;border-radius:50%;pointer-events:none}.paste-select{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .15s;appearance:none}.paste-select-wrap .paste-select{padding-left:26px}.paste-select:focus{border-color:var(--accent);outline:none}.btn-confirm:disabled{opacity:.4;cursor:not-allowed}.kanban-columns-scroll{flex:1;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.kanban-columns{display:flex;gap:16px;height:100%;padding-bottom:8px}.kanban-column{background:var(--bg-subtle);border-radius:var(--radius);padding:12px;width:280px;min-width:280px;display:flex;flex-direction:column;max-height:100%;transition:opacity .2s}.kanban-column-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;min-height:28px}.kanban-column-header-left{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.kanban-column-drag-handle{cursor:grab;color:var(--text-muted);font-size:13px;line-height:1;padding:2px;flex-shrink:0;-webkit-user-select:none;user-select:none;touch-action:none;transition:color .15s}.kanban-column-drag-handle:hover{color:var(--text-secondary)}.kanban-column-drag-handle:active{cursor:grabbing}.kanban-column-title{font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:8px}.kanban-column-count{font-weight:500;color:var(--text-muted);font-size:12px}.kanban-column-title-input{font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);background:var(--bg-element);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:2px 6px;width:100%}.kanban-column-actions{flex-shrink:0}.kanban-column-delete{font-size:16px;color:var(--text-muted);opacity:0;transition:opacity .15s,color .15s;padding:2px 4px}.kanban-column:hover .kanban-column-delete{opacity:1}.kanban-column-delete:hover{color:var(--danger)}.kanban-column-flame{display:inline-flex;align-items:center;color:var(--text-muted);opacity:0;padding:2px 3px;transition:opacity .15s,color .15s}.kanban-column:hover .kanban-column-flame{opacity:1}.kanban-column-flame:hover{color:#f97316}.kanban-column-flame.active{opacity:1;color:#f97316}.kanban-column-priority{box-shadow:inset 0 0 0 1px #f9731673}.kanban-column-priority .kanban-column-title{color:#fb923c}.kanban-confirm-delete{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary);background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;white-space:nowrap}.kanban-confirm-delete button{font-size:11px;font-weight:500;padding:1px 6px;border-radius:4px}.kanban-confirm-delete button:first-of-type{color:var(--danger)}.kanban-confirm-delete button:last-of-type{color:var(--text-muted)}.kanban-column-body{flex:1;overflow-y:auto;min-height:0}.kanban-card{background:var(--bg-element);border-radius:var(--radius);box-shadow:0 1px 3px #0000004d;padding:12px 14px;margin-bottom:8px;transition:box-shadow .2s,transform .15s;cursor:grab;position:relative}.kanban-card:hover{box-shadow:0 2px 8px #0006}.kanban-card.dragging{opacity:.5}.kanban-card-watched{box-shadow:0 0 0 2px var(--peer-color, #6366f1),0 0 14px -2px var(--peer-color, #6366f1);animation:peer-glow 1.8s ease-in-out infinite}.kanban-card-watched:hover{box-shadow:0 0 0 2px var(--peer-color, #6366f1),0 0 16px -2px var(--peer-color, #6366f1)}@keyframes peer-glow{0%,to{box-shadow:0 0 0 2px var(--peer-color, #6366f1),0 0 10px -3px var(--peer-color, #6366f1)}50%{box-shadow:0 0 0 2px var(--peer-color, #6366f1),0 0 18px 0 var(--peer-color, #6366f1)}}.kanban-card-peers{position:absolute;top:-10px;left:8px;display:flex;flex-wrap:wrap;gap:4px;z-index:5;pointer-events:none}.kanban-peer-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:600;line-height:1;color:#fff;padding:3px 7px;border-radius:999px;white-space:nowrap;box-shadow:0 1px 4px #00000059;animation:peer-badge-in .18s ease-out}@keyframes peer-badge-in{0%{opacity:0;transform:translateY(3px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.presence-stack{display:flex;align-items:center;margin-right:4px}.presence-stack .presence-avatar:not(:first-child){margin-left:-8px}.presence-avatar{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;text-transform:uppercase;border:2px solid var(--bg-element, #1e1e1e);box-shadow:0 1px 3px #0006}.presence-avatar-me{position:relative}.kanban-card.drag-overlay{box-shadow:0 8px 24px #00000080;transform:scale(1.02) rotate(1.5deg);cursor:grabbing;opacity:.95}.kanban-card-delete{position:absolute;top:6px;right:6px;font-size:14px;color:var(--text-muted);opacity:0;transition:opacity .15s,color .15s;padding:0 4px;line-height:1}.kanban-card:hover .kanban-card-delete{opacity:1}.kanban-card-delete:hover{color:var(--danger)}.kanban-card-flame{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:99px;padding:3px 7px;transition:color .15s,border-color .15s,background .15s}.kanban-card-flame:hover{color:#f97316;border-color:#f9731680;background:#f973161a}.kanban-card-title{font-size:13px;font-weight:500;color:var(--text);margin-bottom:8px;cursor:pointer;word-break:break-word}.kanban-card-title-input{display:block;font-family:inherit;font-size:13px;font-weight:500;line-height:1.4;color:var(--text);background:var(--bg);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:2px 6px;width:100%;margin-bottom:8px;outline:none;resize:none;overflow:hidden;word-break:break-word}.kanban-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.kanban-card.image-drop-over{outline:2px dashed var(--accent);outline-offset:2px}.kanban-card-images{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.kanban-card-thumb{position:relative;width:56px;height:56px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.kanban-card-thumb img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block}.kanban-card-thumb-delete{position:absolute;top:2px;right:2px;width:16px;height:16px;line-height:14px;text-align:center;border:none;border-radius:4px;background:#0009;color:#fff;font-size:12px;cursor:pointer;opacity:0;transition:opacity .15s}.kanban-card-thumb:hover .kanban-card-thumb-delete{opacity:1}.kanban-card-attach{margin-top:8px;width:100%;padding:5px 8px;font-size:11px;font-weight:500;border:1px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s}.kanban-card-attach:hover{color:var(--text-secondary);border-color:var(--border-hover)}.kanban-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#000000d9;cursor:zoom-out}.kanban-lightbox img{max-width:92vw;max-height:92vh;border-radius:var(--radius);box-shadow:0 8px 40px #0009}.kanban-lightbox-close{position:absolute;top:20px;right:24px;width:36px;height:36px;border:none;border-radius:50%;background:#ffffff1f;color:#fff;font-size:20px;cursor:pointer}.kanban-lightbox-close:hover{background:#ffffff38}.kanban-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:2px 8px;border-radius:99px;font-weight:500;cursor:pointer;transition:opacity .15s;border:none;background:var(--bg-subtle);color:var(--text-secondary)}.kanban-pill:hover{opacity:.8}.kanban-pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.kanban-project-picker{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px;z-index:50;min-width:160px;box-shadow:0 4px 16px #0006}.kanban-project-option{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:4px;font-size:12px;color:var(--text-secondary);transition:background .1s;text-align:left}.kanban-project-option:hover{background:var(--bg-hover);color:var(--text)}.kanban-project-option.active{color:var(--accent)}.kanban-picker-floating{z-index:1000;width:200px;max-height:280px;overflow-y:auto;box-shadow:0 8px 24px #00000080}.kanban-pill-empty{background:transparent;color:var(--text-muted);border:1px dashed var(--border)}.kanban-pill-empty .kanban-pill-dot{display:none}.kanban-pill-empty:hover{color:var(--text-secondary);border-color:var(--text-muted);opacity:1}.kanban-add-member-input{width:100%;margin-top:4px;padding:6px 8px;font-size:12px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:inherit}.kanban-add-member-input:focus{border-color:var(--accent);outline:none}.kanban-pill-add{background:transparent;color:var(--text-muted);border:1px dashed var(--border);padding:2px 7px}.kanban-pill-add .kanban-pill-dot{display:none}.kanban-pill-add:hover{color:var(--text-secondary);border-color:var(--text-muted);opacity:1}.kanban-option-check{width:12px;flex-shrink:0;color:var(--accent);font-size:11px}.kanban-layout-toggle{display:inline-flex;background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.kanban-layout-btn{padding:6px 14px;font-size:13px;font-weight:500;color:var(--text-muted);transition:all .15s}.kanban-layout-btn.active{background:var(--bg-hover);color:var(--text)}.kanban-table-wrap{flex:1;overflow:auto;min-height:0;border:1px solid var(--border);border-radius:var(--radius)}.kanban-table{width:100%;border-collapse:collapse;font-size:13px}.kanban-table thead th{position:sticky;top:0;z-index:2;background:var(--bg-subtle);text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:10px 12px;border-bottom:1px solid var(--border)}.kanban-table tbody td{padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.kanban-table tbody tr:hover{background:var(--bg-subtle)}.kanban-table tbody tr.selected{background:color-mix(in srgb,var(--accent) 12%,transparent)}.kanban-table-check{width:36px;text-align:center}.kanban-table-check input{cursor:pointer;width:15px;height:15px;accent-color:var(--accent)}.kanban-table-title{min-width:240px;max-width:480px}.kanban-table-title span{cursor:text}.kanban-table-title-input{width:100%;padding:4px 6px;background:var(--bg-element);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text);font-size:13px;font-family:inherit}.kanban-table-status{padding:3px 10px;border-radius:99px;font-size:12px;color:var(--text-secondary);background:var(--bg-element);border:1px solid var(--border);transition:border-color .15s;white-space:nowrap}.kanban-table-status:hover{border-color:var(--border-hover)}.kanban-table-people{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.kanban-table-delete{color:var(--text-muted);font-size:16px;padding:2px 6px;opacity:0;transition:opacity .15s,color .15s}.kanban-table tbody tr:hover .kanban-table-delete{opacity:1}.kanban-table-delete:hover{color:var(--danger)}.kanban-table-empty{padding:32px;text-align:center;color:var(--text-muted)}.kanban-bulk-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-element);border-bottom:1px solid var(--border)}.kanban-bulk-count{font-size:13px;font-weight:600;color:var(--text);margin-right:4px}.kanban-bulk-btn{padding:5px 12px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--text-secondary);border:1px solid var(--border);transition:all .15s}.kanban-bulk-btn:hover{border-color:var(--border-hover);color:var(--text)}.kanban-bulk-btn.danger{color:var(--danger);border-color:transparent}.kanban-bulk-btn.danger:hover{border-color:var(--danger)}.kanban-bulk-btn.ghost{border-color:transparent;color:var(--text-muted);margin-left:auto}.kanban-add-task-btn{width:100%;padding:8px;font-size:13px;color:var(--text-muted);text-align:left;border-radius:var(--radius-sm);transition:color .15s,background .15s}.kanban-add-task-btn:hover{color:var(--text-secondary);background:var(--bg-element)}.kanban-add-task-input{width:100%;padding:10px 14px;background:var(--bg-element);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px;transition:border-color .15s;margin-bottom:4px}.kanban-add-task-input:focus{border-color:var(--accent)}.kanban-add-task-input::placeholder{color:var(--text-muted)}@media(max-width:768px){.kanban-columns-scroll{scroll-snap-type:x mandatory}.kanban-column{scroll-snap-align:start}.kanban-board{height:calc(100vh - 92px)}.main-board{padding:16px}}.main-whiteboard{max-width:none;padding:0;overflow:hidden}.whiteboard{position:absolute;inset:52px 0 0;overflow:hidden;background:var(--bg);touch-action:none;-webkit-user-select:none;user-select:none}.whiteboard-grid{position:absolute;inset:0;background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);pointer-events:none}.whiteboard-svg{position:absolute;inset:0;width:100%;height:100%;display:block}.wb-selection{stroke:var(--accent);stroke-dasharray:4 3}.wb-text{white-space:pre-wrap;word-break:break-word;font-family:Inter,sans-serif;font-weight:500;cursor:inherit;min-height:1em}.wb-text-input{position:absolute;z-index:20;margin:0;padding:0;border:none;outline:none;resize:none;overflow:hidden;background:transparent;font-family:Inter,sans-serif;font-weight:500;line-height:1.4;transform-origin:top left;caret-color:var(--accent);white-space:pre-wrap;word-break:break-word}.wb-text-input::placeholder{color:var(--text-muted)}.whiteboard-toolbar{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:8px;padding:8px;background:#18181bd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 30px #00000073}.wb-divider{width:1px;align-self:stretch;background:var(--border);margin:2px}.wb-tools,.wb-colors,.wb-widths{display:flex;align-items:center;gap:4px}.wb-tool{padding:7px 12px;border-radius:9px;font-size:13px;font-weight:600;color:var(--text-secondary);transition:color .15s,background .15s}.wb-tool:hover{color:var(--text);background:var(--bg-hover)}.wb-tool.active{color:#fff;background:var(--accent)}.wb-delete{color:var(--danger)}.wb-delete:hover{color:#fff;background:var(--danger)}.wb-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;transition:transform .12s,border-color .12s}.wb-swatch:hover{transform:scale(1.12)}.wb-swatch.active{border-color:var(--text);transform:scale(1.12)}.wb-width{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;transition:background .15s}.wb-width:hover,.wb-width.active{background:var(--bg-hover)}.wb-width span{display:block;background:var(--text);border-radius:50%}.whiteboard-zoom{position:absolute;bottom:24px;right:24px;z-index:30;display:flex;align-items:center;background:#18181bd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 10px 30px #00000073}.whiteboard-zoom button{padding:8px 12px;font-size:15px;font-weight:600;color:var(--text-secondary);transition:color .15s,background .15s}.whiteboard-zoom button:hover{color:var(--text);background:var(--bg-hover)}.wb-zoom-level{min-width:54px;font-size:12px!important;border-left:1px solid var(--border);border-right:1px solid var(--border)}.whiteboard-hint{position:absolute;top:28px;left:50%;transform:translate(-50%);z-index:10;padding:10px 16px;background:var(--bg-element);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);font-size:13px;pointer-events:none}.whiteboard-hint strong{color:var(--text);font-weight:600}@media(max-width:768px){.whiteboard-toolbar{flex-wrap:wrap;max-width:calc(100vw - 24px);justify-content:center}}
