.datatable-container{display:flex;flex-direction:column;gap:var(--spacing-4);animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.datatable-stats.datatable-stats--workflow{display:flex;flex-wrap:wrap;align-items:center;row-gap:var(--spacing-2);-moz-column-gap:var(--spacing-5);column-gap:var(--spacing-5);padding:var(--spacing-3) var(--spacing-4);margin-bottom:var(--spacing-3);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:max(var(--radius-lg, .75rem),10px);box-sizing:border-box}.datatable-stats--workflow .datatable-stat-item{display:inline-flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-1)}.datatable-stats--workflow .datatable-stat-swatch{width:3px;align-self:center;min-height:14px;height:14px;flex-shrink:0;border-radius:2px;background-color:color-mix(in srgb,var(--theme-border) 85%,var(--theme-text-muted) 15%)}.datatable-stats--workflow .datatable-stat-swatch--muted{opacity:.72}.datatable-stats--workflow .datatable-stat-swatch--primary{background:var(--theme-primary);opacity:1}.datatable-stats--workflow .datatable-stat-value{font-weight:600;font-size:var(--font-size-sm);color:var(--theme-text);line-height:1.35}.datatable-stats--workflow .datatable-stat-label{font-size:var(--font-size-xs);color:var(--theme-text-secondary);line-height:1.35}.datatable-stats--workflow .datatable-stat-total{margin-left:auto;padding-inline:var(--spacing-2)}.datatable-entity-badges{display:flex;align-items:center;gap:var(--spacing-2);flex-shrink:0}.datatable-entity-badge{font-size:var(--font-size-xs);font-weight:500;padding:.125rem .5rem;border-radius:999px;border:1px solid var(--theme-border);color:var(--theme-text-secondary);background:color-mix(in srgb,var(--theme-primary) 10%,transparent);line-height:1.3}.datatable-entity-badge--approvals{background:color-mix(in srgb,var(--theme-accent) 10%,transparent)}.datatable-toolbar{display:flex;flex-direction:column;gap:var(--spacing-3)}.datatable-view-switcher-row{display:flex;align-items:center}.datatable-toolbar>div:first-child{display:flex;align-items:center;gap:var(--spacing-3)}.toolbar-search{position:relative;flex:1 1 200px;min-width:160px;max-width:420px}.toolbar-search-views{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-3);flex:1 1 auto;min-width:0}.toolbar-search .search-icon{position:absolute;left:var(--spacing-3);top:50%;transform:translateY(-50%);color:var(--theme-text-muted)}.toolbar-search input{width:100%;padding:var(--spacing-2) var(--spacing-4) var(--spacing-2) var(--spacing-10);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text);font-size:var(--font-size-sm)}.toolbar-search input:focus{outline:none;border-color:var(--theme-primary);box-shadow:0 0 0 2px #38bdf81a}.toolbar-actions{display:flex;align-items:center;gap:var(--spacing-2);margin-left:auto}.toolbar-btn{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.toolbar-btn:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.toolbar-btn.active{background:#38bdf81a;border-color:var(--theme-primary);color:var(--theme-primary)}.toolbar-btn.primary{background:var(--gradient-primary);border:none;color:#fff;font-weight:600}.toolbar-btn.primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.toolbar-btn.icon-only{padding:var(--spacing-2)}.toolbar-btn .badge{display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--spacing-1);background:var(--theme-primary);border-radius:var(--radius-full);color:#fff;font-size:var(--font-size-xs);font-weight:600}.toolbar-menu-wrapper{position:relative}.toolbar-dropdown{position:absolute;top:100%;right:0;margin-top:var(--spacing-1);min-width:180px;background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:50;overflow:hidden}.toolbar-dropdown button{display:flex;align-items:center;gap:var(--spacing-2);width:100%;padding:var(--spacing-3) var(--spacing-4);background:none;border:none;color:var(--theme-text-secondary);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast)}.toolbar-dropdown button:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.toolbar-dropdown .dropdown-divider{height:1px;background:var(--theme-border);margin:var(--spacing-1) 0}.toolbar-panel{padding:var(--spacing-4);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.datatable-content{background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-lg);overflow:hidden}.datatable-content--item-list{background:transparent;border:none;border-radius:0;overflow:visible}.datatable-table-wrapper{overflow-x:auto}.datatable-table{width:100%;border-collapse:collapse}.datatable-header th{position:sticky;top:0;z-index:1;padding:var(--spacing-3) var(--spacing-4);background:var(--theme-surface-hover);border-bottom:1px solid var(--theme-border);font-size:var(--font-size-sm);font-weight:600;color:var(--theme-text-secondary);text-align:left;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.datatable-header th.sortable{cursor:pointer}.datatable-header th.sortable:hover{background:var(--theme-surface)}.datatable-header th.sorted{color:var(--theme-primary)}.datatable-header .th-content{display:flex;align-items:center;gap:var(--spacing-2)}.datatable-header .drag-handle{opacity:0;cursor:grab;color:var(--theme-text-muted);transition:opacity var(--transition-fast)}.datatable-header th:hover .drag-handle{opacity:1}.datatable-header .sort-indicator{display:flex;align-items:center;opacity:.5}.datatable-header th.sorted .sort-indicator{opacity:1;color:var(--theme-primary)}.datatable-header .actions-column{width:60px;text-align:center}.datatable-body td{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--theme-border);font-size:var(--font-size-sm);color:var(--theme-text)}.datatable-body .data-row{cursor:pointer;transition:background var(--transition-fast)}.datatable-body .data-row:hover{background:#38bdf80d}.datatable-body .data-row.selected{background:#38bdf81a}.datatable-body .data-row.selected:hover{background:#38bdf826}.bulk-select-header,.bulk-select-cell{width:48px;padding:var(--spacing-3) var(--spacing-4);text-align:center}.bulk-select-header .ui-checkbox-wrapper,.bulk-select-cell .ui-checkbox-wrapper{margin:0 auto}.datatable-body .data-row:last-child td{border-bottom:none}.datatable-group-row .group-header-cell{padding:var(--spacing-2) var(--spacing-4);font-weight:600;font-size:var(--font-size-sm);vertical-align:middle}.datatable-group-row .group-toggle{display:inline-flex;align-items:center;justify-content:center;margin-right:var(--spacing-2);padding:0;background:none;border:none;color:var(--theme-text-muted);cursor:pointer;border-radius:4px}.datatable-group-row .group-toggle:hover{color:var(--theme-primary)}.datatable-group-row .group-label{color:var(--theme-text)}.datatable-group-row .group-count{margin-left:var(--spacing-2);font-weight:400;color:var(--theme-text-muted);font-size:var(--font-size-xs)}.datatable-grouped-notice{padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-xs);color:var(--theme-text-muted);background:var(--theme-surface-secondary);border:1px solid var(--theme-border);border-radius:var(--radius-md);margin-bottom:var(--spacing-2)}.datatable-body .actions-column{text-align:center;position:relative}.cell-empty{color:var(--theme-text-muted)}.cell-boolean{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full)}.cell-boolean.true{background:color-mix(in srgb,var(--theme-success) 15%,transparent);color:var(--theme-success)}.cell-boolean.false{background:color-mix(in srgb,var(--theme-error) 15%,transparent);color:var(--theme-error)}.cell-number{font-variant-numeric:tabular-nums}.cell-currency{font-variant-numeric:tabular-nums;font-weight:500}.cell-badge{display:inline-flex;align-items:center;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500;border:1px solid transparent}.cell-badge.status-badge{border-width:1px;border-style:solid}.cell-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-1)}.cell-tag{padding:var(--spacing-1) var(--spacing-2);background:var(--theme-surface-hover);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.cell-link{display:inline-flex;align-items:center;gap:var(--spacing-1);color:var(--theme-primary);text-decoration:none}.cell-link:hover{text-decoration:underline}.cell-location{display:inline-flex;align-items:center;gap:var(--spacing-1);color:var(--theme-text-secondary);font-size:var(--font-size-xs)}.cell-progress{display:flex;align-items:center;gap:var(--spacing-2)}.progress-bar{flex:1;height:8px;background:var(--theme-surface-hover);border-radius:var(--radius-full);overflow:hidden;max-width:100px}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}.progress-value{font-size:var(--font-size-xs);color:var(--theme-text-muted);min-width:35px}.cell-text.truncated{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-json{font-family:var(--font-mono);font-size:var(--font-size-xs);padding:var(--spacing-1);background:var(--theme-surface-hover);border-radius:var(--radius-sm);color:var(--theme-text-muted)}.row-actions{position:relative;display:flex;justify-content:center}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-md);color:var(--theme-text-muted);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.action-menu-portal{animation:fadeInMenu .15s ease-out}@keyframes fadeInMenu{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.action-menu{min-width:140px;background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden}.action-menu button{display:flex;align-items:center;gap:var(--spacing-2);width:100%;padding:var(--spacing-2) var(--spacing-3);background:none;border:none;color:var(--theme-text-secondary);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast)}.action-menu button:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.action-menu button.danger{color:var(--theme-error)}.action-menu button.danger:hover{background:#ef44441a}.action-menu .menu-divider{height:1px;background:var(--theme-border);margin:var(--spacing-1) 0}.datatable-pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-lg)}.pagination-info{font-size:var(--font-size-sm);color:var(--theme-text-muted)}.pagination-info strong{color:var(--theme-text)}.pagination-nav{display:flex;align-items:center;gap:var(--spacing-1)}.page-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.page-btn:hover:not(:disabled){background:var(--theme-surface-hover);color:var(--theme-text)}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-numbers{display:flex;align-items:center;gap:var(--spacing-1);margin:0 var(--spacing-2)}.page-number{min-width:32px;height:32px;padding:0 var(--spacing-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--theme-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.page-number:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.page-number.active{background:var(--theme-primary);color:#fff;border-color:var(--theme-primary)}.page-ellipsis{padding:0 var(--spacing-2);color:var(--theme-text-muted)}.pagination-size{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--theme-text-muted)}.pagination-size select{padding:var(--spacing-2);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text);font-size:var(--font-size-sm);cursor:pointer}.column-selector{min-width:0}.column-selector-subheader{display:flex;align-items:center;margin-bottom:var(--spacing-3)}.column-selector-subheader .column-count{font-size:var(--font-size-xs);color:var(--theme-text-muted)}.column-selector-header{display:flex;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-3)}.column-selector-header h4{margin:0;font-size:var(--font-size-sm);font-weight:600}.column-selector-header .column-count{font-size:var(--font-size-xs);color:var(--theme-text-muted)}.column-selector-header .close-btn{margin-left:auto;padding:var(--spacing-1);background:transparent;border:none;color:var(--theme-text-muted);cursor:pointer;border-radius:var(--radius-sm)}.column-selector-header .close-btn:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.column-selector-actions{display:flex;gap:var(--spacing-3);margin-bottom:var(--spacing-3)}.text-btn{padding:0;background:none;border:none;color:var(--theme-primary);font-size:var(--font-size-xs);cursor:pointer}.text-btn:hover{text-decoration:underline}.column-list{display:flex;flex-direction:column;gap:var(--spacing-1);max-height:min(480px,calc(100vh - 220px));overflow-y:auto;list-style:none;margin:0;padding:0}.column-item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);background:var(--theme-surface);border-radius:var(--radius-sm);cursor:move;transition:all var(--transition-fast)}.column-item.hidden{opacity:.5}.column-item.dragging{opacity:.5;background:var(--theme-surface-hover)}.column-item .drag-handle{color:var(--theme-text-muted);cursor:grab}.column-item .column-name{flex:1;font-size:var(--font-size-sm)}.column-item .column-type{font-size:var(--font-size-xs);color:var(--theme-text-muted);padding:var(--spacing-1) var(--spacing-2);background:var(--theme-surface-hover);border-radius:var(--radius-sm)}.column-item .toggle-btn{padding:var(--spacing-1);background:transparent;border:none;color:var(--theme-text-muted);cursor:pointer;border-radius:var(--radius-sm)}.column-item .toggle-btn:hover{background:var(--theme-surface-hover);color:var(--theme-primary)}.datatable-loading{width:100%;padding:var(--spacing-4) var(--spacing-2)}.datatable-loading-skeleton{width:100%}.loading-spinner{width:32px;height:32px;border:3px solid var(--theme-border);border-top-color:var(--theme-primary);border-radius:50%;animation:spin 1s linear infinite}.datatable-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-10);text-align:center}.datatable-empty .empty-icon{display:flex;color:var(--theme-text-muted);margin-bottom:var(--spacing-4)}.datatable-empty h3{margin-bottom:var(--spacing-2);color:var(--theme-text)}.datatable-empty p{color:var(--theme-text-muted);margin-bottom:var(--spacing-6)}.datatable-empty .btn-primary{padding:var(--spacing-3) var(--spacing-5);background:var(--gradient-primary);border:none;border-radius:var(--radius-md);color:#fff;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.datatable-empty .btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.datatable-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-10);text-align:center;color:var(--theme-error)}.datatable-error button{margin-top:var(--spacing-4);padding:var(--spacing-2) var(--spacing-4);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text);cursor:pointer}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}.modal-content{background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-lg);padding:var(--spacing-6);max-width:400px;width:100%;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content h3{margin:0 0 var(--spacing-2);font-size:var(--font-size-lg)}.modal-content p{color:var(--theme-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--spacing-4)}.modal-content input{width:100%;padding:var(--spacing-3);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text);font-size:var(--font-size-sm);margin-bottom:var(--spacing-4)}.modal-content input:focus{outline:none;border-color:var(--theme-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-3)}.btn-secondary{padding:var(--spacing-2) var(--spacing-4);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text-secondary);cursor:pointer}.btn-secondary:hover{background:var(--theme-surface-hover)}.modal-actions .btn-primary{padding:var(--spacing-2) var(--spacing-4);background:var(--gradient-primary);border:none;border-radius:var(--radius-md);color:#fff;font-weight:600;cursor:pointer}.modal-actions .btn-primary:disabled{opacity:.5;cursor:not-allowed}.view-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:var(--spacing-4);color:var(--theme-text-muted)}.view-loading .loading-spinner{width:40px;height:40px;border:3px solid var(--theme-border);border-top-color:var(--theme-primary);border-radius:50%;animation:spin .8s linear infinite}.datatable-body-virtualized{display:block}.datatable-body-virtualized>tr{display:block}.datatable-body-virtualized>tr>td{display:block;padding:0;border:none}.virtual-list{scrollbar-width:thin;scrollbar-color:var(--theme-border) transparent}.virtual-list::-webkit-scrollbar{width:8px}.virtual-list::-webkit-scrollbar-track{background:transparent}.virtual-list::-webkit-scrollbar-thumb{background:var(--theme-border);border-radius:4px}.virtual-row{display:flex;align-items:center;border-bottom:1px solid var(--theme-border)}.virtual-row:hover{background:#38bdf80d}.virtual-row .data-row{display:flex;width:100%;cursor:pointer}.virtual-row .data-row td{display:flex;align-items:center;flex:1;padding:var(--spacing-3) var(--spacing-4);border:none}.virtual-row .data-row .actions-column{flex:0 0 60px;justify-content:center;position:relative}.kanban-view{overflow-x:auto;padding:var(--spacing-4) var(--spacing-5);box-sizing:border-box}.kanban-board{display:flex;gap:var(--spacing-4);min-height:500px;padding-bottom:var(--spacing-4)}.kanban-column{flex:0 0 300px;display:flex;flex-direction:column;background:var(--theme-surface);border-radius:var(--radius-lg);border:1px solid var(--theme-border);max-height:100%;transition:all var(--transition-fast)}.kanban-column.drag-over{background:#38bdf80d;border-color:var(--theme-primary);box-shadow:0 0 0 2px #38bdf81a}.column-header{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--theme-border)}.column-title{display:flex;align-items:center;gap:var(--spacing-2);font-weight:600;font-size:var(--font-size-sm)}.column-indicator{width:8px;height:8px;border-radius:50%}.column-count{display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--spacing-1);background:var(--theme-surface-hover);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500;color:var(--theme-text-muted)}.column-cards{flex:1;overflow-y:auto;padding:var(--spacing-3);display:flex;flex-direction:column;align-items:stretch;gap:var(--spacing-2)}.kanban-card{display:block;width:100%;max-width:100%;padding:var(--spacing-3);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;text-align:left}.kanban-card:hover{border-color:var(--theme-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.kanban-card.dragging{opacity:.5;transform:rotate(2deg);box-shadow:var(--shadow-lg)}.kanban-card.updating{position:relative;pointer-events:none;opacity:.7}.card-updating-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffb3;border-radius:var(--radius-md);z-index:1}.updating-spinner{width:20px;height:20px;border:2px solid var(--theme-border);border-top-color:var(--theme-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.kanban-card-shell{position:relative;width:100%}.kanban-card-shell .kanban-card .card-header{padding-right:2.25rem}.card-menu-floater{position:absolute;top:var(--spacing-3);right:var(--spacing-3);z-index:2}.card-title{margin:0;font-size:var(--font-size-sm);font-weight:600;color:var(--theme-text);line-height:1.4}.card-menu-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:all var(--transition-fast)}.card-menu-btn .ui-action-menu-trigger{width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--theme-text-muted)}.kanban-card-shell:hover .card-menu-btn{opacity:1}.card-menu-btn .ui-action-menu-trigger:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.card-description{margin:var(--spacing-2) 0 0;font-size:var(--font-size-xs);color:var(--theme-text-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-3);padding-top:var(--spacing-2);border-top:1px solid var(--theme-border)}.card-due-date{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);color:var(--theme-text-muted)}.card-assignee{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--theme-surface-hover);border-radius:var(--radius-full);color:var(--theme-text-muted)}.add-card-btn{margin:var(--spacing-3);padding:var(--spacing-3);background:transparent;border:1px dashed var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text-muted);font-size:var(--font-size-sm);text-align:center;cursor:pointer;transition:all var(--transition-fast)}.add-card-btn:hover{background:var(--theme-surface-hover);border-color:var(--theme-primary);color:var(--theme-primary)}.column-cards::-webkit-scrollbar{width:6px}.column-cards::-webkit-scrollbar-track{background:transparent}.column-cards::-webkit-scrollbar-thumb{background:var(--theme-border);border-radius:3px}.column-cards::-webkit-scrollbar-thumb:hover{background:var(--theme-text-muted)}.calendar-view{display:flex;flex-direction:column;height:calc(100vh - 210px);min-height:400px;background:var(--theme-surface);border-radius:var(--radius-lg);overflow:hidden}.calendar-view-shell{display:flex;flex:1;min-height:0;min-width:0}.calendar-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--theme-border);padding:var(--spacing-3);background:var(--theme-surface);overflow:hidden;display:flex;flex-direction:column;min-height:0;transition:width .2s ease,padding .2s ease,border-color .2s ease}.calendar-sidebar-inner{display:flex;flex-direction:column;flex:1;min-height:0;gap:var(--spacing-2)}.calendar-sidebar-inner .calendar-mini-sidebar{flex-shrink:0}.calendar-task-panel{flex:1;min-height:0;display:flex;flex-direction:column;border-top:1px solid var(--theme-border);padding-top:var(--spacing-2);margin-top:var(--spacing-1)}.calendar-task-panel__header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.calendar-task-panel__title{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--theme-text-secondary)}.calendar-task-panel__body{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.calendar-task-panel__body::-webkit-scrollbar{display:none}.calendar-task-panel__muted{margin:0;font-size:var(--font-size-xs);color:var(--theme-text-muted)}.calendar-task-panel__loading{padding:var(--spacing-2) var(--spacing-1)!important;gap:var(--spacing-2)!important}.calendar-task-panel__empty.ui-empty-state{padding:var(--spacing-3) var(--spacing-2)}.calendar-task-panel__empty .ui-empty-state-icon{margin-bottom:var(--spacing-2)}.calendar-task-panel__empty .ui-empty-state-title{font-size:var(--font-size-sm)}.calendar-task-panel__empty .ui-empty-state-description{font-size:var(--font-size-xs);margin-top:var(--spacing-1)}.calendar-task-panel__empty .ui-empty-state-action{margin-top:var(--spacing-2)}.calendar-task-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.calendar-task-panel__row{width:100%;text-align:left;padding:var(--spacing-2);border:none;border-radius:var(--radius-md, 6px);background:var(--theme-surface-secondary);color:var(--theme-text);cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:background .12s ease}.calendar-task-panel__row:hover{background:var(--theme-surface-hover, var(--theme-surface-secondary))}.calendar-task-panel__row-title{font-size:var(--font-size-xs);font-weight:500;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-task-panel__row-due{font-size:.6875rem;color:var(--theme-text-muted)}.calendar-task-panel__row-people{font-size:.6875rem;color:var(--theme-text-secondary);display:flex;flex-direction:column;gap:1px}.calendar-sidebar--collapsed{width:0;min-width:0;padding:0;border-right-width:0;overflow:hidden}.calendar-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.calendar-main--with-palette{position:relative;overflow:visible;padding-bottom:5.75rem;isolation:isolate}.calendar-mini-sidebar{display:flex;flex-direction:column;gap:var(--spacing-2)}.calendar-mini-sidebar__planner-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);margin-bottom:var(--spacing-1)}.calendar-mini-sidebar__planner-title{font-size:var(--font-size-lg);font-weight:700;color:var(--theme-text);letter-spacing:-.02em}.calendar-mini-sidebar__add-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--theme-border);border-radius:var(--radius-md);background:var(--theme-surface);color:var(--theme-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.calendar-mini-sidebar__add-btn:hover{background:var(--theme-surface-hover);color:var(--theme-text);border-color:var(--theme-primary)}.calendar-mini-sidebar__header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2)}.calendar-mini-sidebar__nav{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--theme-border);border-radius:var(--radius-md);background:var(--theme-surface);color:var(--theme-text-secondary);cursor:pointer;transition:background var(--transition-fast)}.calendar-mini-sidebar__nav:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.calendar-mini-sidebar__title{flex:1;text-align:center;font-size:var(--font-size-sm);font-weight:600;color:var(--theme-text)}.calendar-mini-sidebar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-mini-sidebar__wd{text-align:center;font-size:10px;font-weight:600;color:var(--theme-text-muted)}.calendar-mini-sidebar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-mini-sidebar__day{aspect-ratio:1;max-height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;font-size:var(--font-size-xs);font-weight:500;color:var(--theme-text);cursor:pointer;transition:background var(--transition-fast)}.calendar-mini-sidebar__day:hover{background:var(--theme-surface-hover)}.calendar-mini-sidebar__day.is-other-month{color:var(--theme-text-muted)}.calendar-mini-sidebar__day.is-in-week{background:color-mix(in srgb,var(--theme-primary) 12%,transparent);outline:1px solid color-mix(in srgb,var(--theme-primary) 35%,transparent);outline-offset:-1px}.calendar-mini-sidebar__day.is-today:not(.is-selected){font-weight:700;color:var(--theme-primary)}.calendar-mini-sidebar__day.is-selected{background:var(--theme-primary);color:var(--theme-surface);font-weight:600}.calendar-mini-sidebar__day.is-selected.is-today{color:var(--theme-surface)}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--theme-border);flex-shrink:0}.calendar-nav{display:flex;align-items:center;gap:var(--spacing-2)}.nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.nav-btn:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.today-btn{padding:var(--spacing-2) var(--spacing-3);background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-md);color:var(--theme-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.today-btn:hover{background:var(--theme-surface-hover);color:var(--theme-text)}.calendar-title{margin:0;font-size:var(--font-size-lg);font-weight:600;color:var(--theme-text)}.calendar-mode-switcher-wrap{flex-shrink:0;display:flex;align-items:center}.calendar-month{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--theme-surface-hover);border-bottom:1px solid var(--theme-border);flex-shrink:0}.weekday{padding:var(--spacing-2) var(--spacing-3);text-align:center;font-size:var(--font-size-xs);font-weight:600;color:var(--theme-text-muted);text-transform:uppercase}.calendar-rows{flex:1;display:flex;flex-direction:column;min-height:0}.calendar-week-row{flex:1 1 0;min-height:0;border-bottom:1px solid var(--theme-border);overflow:hidden}.calendar-week-row:last-child{border-bottom:none}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;height:100%;align-content:start}.calendar-week-grid .calendar-day{padding:1px 6px}.calendar-day.other-month .day-number{color:var(--theme-text-muted)}.calendar-day.today .day-number{width:22px;height:22px;background:var(--theme-primary);color:#fff;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center}.day-number{font-size:var(--font-size-xs);font-weight:500;color:var(--theme-text)}.calendar-week-grid .event-span,.calendar-week-grid .event-item{min-width:0;min-height:0;overflow:hidden;text-overflow:ellipsis;margin:0 2px;align-self:stretch;height:100%;box-sizing:border-box}.calendar-week-grid .event-span,.calendar-week-grid .event-item{padding:3px 6px;line-height:1.25}.calendar-week-grid .calendar-event--interactive{cursor:grab}.calendar-week-grid .calendar-event--interactive:active{cursor:grabbing}.calendar-week-grid .event-more-btn{align-self:stretch;height:100%;box-sizing:border-box;min-height:0;padding:3px 6px}.event-span{display:flex;align-items:center;gap:var(--spacing-1);padding:1px 6px;font-size:var(--font-size-xs);color:var(--theme-text);background:color-mix(in srgb,var(--theme-primary) 20%,transparent);border:1px solid var(--theme-border);border-left:3px solid var(--theme-primary);border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:background var(--transition-fast);line-height:1.4}.event-span .event-icon{flex-shrink:0;display:flex;align-items:center;color:inherit;opacity:.9}.event-span:hover{filter:brightness(1.1)}.event-item{display:flex;align-items:center;gap:var(--spacing-1);padding:1px 4px;font-size:var(--font-size-xs);color:var(--theme-text);background:var(--theme-surface-hover);border:1px solid var(--theme-border);border-left:2px solid var(--theme-primary);border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:all var(--transition-fast);line-height:1.4}.event-item .event-icon{flex-shrink:0;display:flex;align-items:center;color:inherit;opacity:.9}.event-item:hover{background:var(--theme-surface)}.event-more-btn{display:flex;align-items:center;justify-content:flex-start;min-width:0;padding:1px 6px;margin:0 2px;background:var(--theme-surface);border:1px solid var(--theme-border);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-size-xs);color:var(--theme-text-muted);cursor:pointer;transition:all var(--transition-fast);line-height:1.4}.event-more-btn:hover{color:var(--theme-primary);background:var(--theme-surface-hover);border-color:var(--theme-primary)}.calendar-week{flex:1;display:flex;flex-direction:column;overflow:hidden}.week-header{display:flex;border-bottom:1px solid var(--theme-border)}.week-header .time-gutter{width:60px;flex-shrink:0;border-right:1px solid var(--theme-border)}.week-header-columns{flex:1;min-width:0;display:flex}.week-day-header{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-2);border-right:1px solid var(--theme-border)}.week-header-columns .week-day-header:last-child{border-right:none}.week-day-header.today{border-top:3px solid var(--theme-primary)}.week-day-header.today .day-date{width:28px;height:28px;background:var(--theme-primary);color:#fff;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.day-name{font-size:var(--font-size-xs);font-weight:500;color:var(--theme-text-muted);text-transform:uppercase}.day-date{font-size:var(--font-size-lg);font-weight:600;color:var(--theme-text)}.week-allday-section{display:flex;border-bottom:1px solid var(--theme-border);flex-shrink:0}.week-allday-label{display:flex;align-items:flex-start;padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-xs);color:var(--theme-text-muted);text-align:right;justify-content:flex-end}.week-allday-tracks{flex:1;min-width:0}.week-allday-bars{display:grid;width:100%;grid-template-columns:repeat(7,1fr);gap:2px 0;padding:var(--spacing-1) 2px}.week-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.week-body-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.week-body-scroll::-webkit-scrollbar{display:none}.week-body-inner{display:flex;align-items:stretch;min-height:1440px}.time-gutter{width:60px;flex-shrink:0;border-right:1px solid var(--theme-border)}.time-slot-label{height:60px;padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-xs);color:var(--theme-text-muted);text-align:right}.week-body-columns{flex:1;min-width:0;display:flex;align-items:stretch}.week-day-column{flex:1;min-width:0;position:relative;border-right:1px solid var(--theme-border)}.calendar-now-line{position:absolute;left:0;right:0;z-index:5;pointer-events:none;border-top:2px solid var(--theme-primary)}.calendar-now-line__dot{position:absolute;left:-5px;top:-4px;width:9px;height:9px;border-radius:var(--radius-full);background:var(--theme-primary);box-shadow:0 0 0 1px var(--theme-surface)}.week-day-column:last-child{border-right:none}.week-day-column.today{background:#38bdf805}.time-slot{height:60px;border-bottom:1px solid var(--theme-border)}.week-event{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;box-sizing:border-box;padding:0;border-radius:var(--radius-sm);border:1px solid var(--theme-border);border-left-width:3px;color:var(--theme-text);font-size:var(--font-size-xs);cursor:pointer;overflow:hidden;z-index:1;line-height:1.25;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.calendar-event--interactive{touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calendar-event--interactive:hover{outline:1px solid color-mix(in srgb,var(--theme-primary) 55%,transparent);outline-offset:0}.calendar-event--preview{opacity:.92;z-index:8;box-shadow:var(--shadow-md)}.week-event__resize{flex-shrink:0;height:6px;margin:0 -1px;cursor:ns-resize;background:transparent;z-index:2}.week-event__resize:hover{background:color-mix(in srgb,var(--theme-primary) 35%,transparent)}.week-event__body{flex:1;min-height:0;display:flex;align-items:flex-start;gap:var(--spacing-1);padding:2px 4px;cursor:grab;overflow:hidden}.week-event__body:active{cursor:grabbing}.week-event__title{min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.week-event .event-icon{flex-shrink:0;display:flex;align-items:center;opacity:.9}.week-event:hover{filter:brightness(1.02);box-shadow:var(--shadow-sm)}.calendar-day-view{flex:1;display:flex;flex-direction:column;overflow:hidden}.day-allday-section{display:flex;border-bottom:1px solid var(--theme-border);flex-shrink:0}.day-allday-label{display:flex;align-items:flex-start;padding:var(--spacing-1) var(--spacing-2);font-size:var(--font-size-xs);color:var(--theme-text-muted);text-align:right;justify-content:flex-end}.day-allday-tracks{flex:1;min-width:0}.day-allday-events{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-1) var(--spacing-2)}.day-view-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.day-view-body-scroll{flex:1;min-height:0;min-width:0;display:flex;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.day-view-body-scroll::-webkit-scrollbar{display:none}.day-events-column{flex:1;min-width:0;position:relative}.day-event{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;left:var(--spacing-2);right:var(--spacing-2);box-sizing:border-box;padding:0;border-radius:var(--radius-md);border:1px solid var(--theme-border);border-left-width:3px;color:var(--theme-text);cursor:pointer;min-height:40px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.day-event__resize{flex-shrink:0;height:8px;cursor:ns-resize;background:transparent;z-index:2}.day-event__resize:hover{background:color-mix(in srgb,var(--theme-primary) 35%,transparent)}.day-event__body{flex:1;min-height:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-1);padding:var(--spacing-2);cursor:grab;overflow:hidden}.day-event__body:active{cursor:grabbing}.day-event .event-icon{flex-shrink:0;display:flex;align-items:center;margin-top:2px;opacity:.9}.day-event .event-time{display:block;font-size:var(--font-size-xs);opacity:.9}.day-event .event-title{display:block;font-size:var(--font-size-sm);font-weight:500}.calendar-command-palette{position:absolute;left:50%;bottom:var(--spacing-4);transform:translate(-50%) translateZ(0);width:min(560px,calc(100% - var(--spacing-8)));z-index:50;pointer-events:none}.calendar-command-palette__panel{pointer-events:auto;max-height:min(40vh,320px);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;margin-bottom:var(--spacing-3);padding:var(--spacing-2);border-radius:var(--radius-lg);border:1px solid var(--theme-border);background:var(--theme-surface);box-shadow:0 0 0 1px #0000000a,0 4px 8px #0000000f,0 16px 40px #0000001a,0 32px 64px #00000014}.calendar-command-palette__panel::-webkit-scrollbar{display:none}.calendar-command-palette__section{display:flex;flex-direction:column;gap:2px}.calendar-command-palette__section+.calendar-command-palette__section{margin-top:var(--spacing-3);padding-top:var(--spacing-2);border-top:1px solid var(--theme-border)}.calendar-command-palette__section-label{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--theme-text-muted);padding:0 var(--spacing-1) var(--spacing-1)}.calendar-command-palette__item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-2);width:100%;padding:var(--spacing-2) var(--spacing-2);border:none;border-radius:var(--radius-md);background:transparent;color:var(--theme-text);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast)}.calendar-command-palette__item:hover,.calendar-command-palette__item.is-active{background:var(--theme-surface-hover)}.calendar-command-palette__item-icon{display:flex;flex-shrink:0;color:var(--theme-text-secondary)}.calendar-command-palette__item-label{flex:1;min-width:0}.calendar-command-palette__item--sub{flex-direction:column;align-items:flex-start;gap:2px}.calendar-command-palette__item-desc{width:100%;font-size:var(--font-size-xs);color:var(--theme-text-muted)}.calendar-command-palette__kbd{margin-left:auto;padding:2px 6px;font-size:10px;font-family:inherit;border-radius:var(--radius-sm);border:1px solid var(--theme-border);background:var(--theme-surface);color:var(--theme-text-muted)}.calendar-command-palette__bar{pointer-events:auto;display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);border-radius:999px;border:1px solid var(--theme-border);background:var(--theme-surface);box-shadow:0 0 0 1px #0000000d,0 2px 6px #0000000f,0 12px 32px #0000001a,0 24px 56px #0000001f}.calendar-command-palette__bar-search-icon{flex-shrink:0;color:var(--theme-text-muted)}.calendar-command-palette__input{flex:1;min-width:0;border:none;background:transparent;font-size:var(--font-size-sm);color:var(--theme-text);outline:none}.calendar-command-palette__input::-moz-placeholder{color:var(--theme-text-muted)}.calendar-command-palette__input::placeholder{color:var(--theme-text-muted)}.calendar-command-palette__bar-ai{display:flex;flex-shrink:0;align-items:center;justify-content:center;color:var(--theme-primary);opacity:.9}.checklist-view{display:flex;flex-direction:column;gap:var(--spacing-3, .75rem);padding:var(--spacing-2, .5rem) 0 var(--spacing-2, .5rem)}.checklist-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-2, .5rem)}.checklist-row{display:flex;align-items:center;gap:var(--spacing-3, .75rem);min-height:calc(var(--control-height-md, 36px) + 4px);padding:var(--spacing-2, .5rem) var(--spacing-3, .75rem);border-radius:max(var(--radius-md, 8px),8px);background:var(--theme-surface);border:1px solid var(--theme-border);box-sizing:border-box}.checklist-row:focus-within{border-color:color-mix(in srgb,var(--theme-primary) 35%,var(--theme-border))}.checklist-row.done .checklist-title{text-decoration:line-through;color:var(--theme-text-secondary)}.checklist-title-btn{flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4, 1rem);min-width:0;padding:var(--spacing-1, 2px) var(--spacing-1, 2px);margin:0;background:none;border:none;cursor:pointer;text-align:left;color:var(--theme-text);font-size:var(--font-size-sm, .8125rem)}.checklist-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:var(--spacing-2)}.checklist-due{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;color:var(--theme-text-secondary);font-size:var(--font-size-xs, .75rem)}.checklist-actions{display:flex;align-items:center;gap:var(--spacing-1);flex-shrink:0;padding-left:var(--spacing-1)}.checklist-empty{margin:0;padding:var(--spacing-4);color:var(--theme-text-secondary);font-size:var(--font-size-sm, .8125rem)}.checklist-footer{display:flex;justify-content:flex-end;padding-top:var(--spacing-2)}
