._3_ygE{border-top:1px solid #e6e4e4;border-bottom:1px solid #e6e4e4;border-left:1px solid #e6e4e4;display:table}._1nBOt{list-style:none;display:table-row}._2eZzQ{opacity:1;border-right:1px solid #c4c4c4;margin-left:-2px}._WuQ0f{vertical-align:-webkit-baseline-middle;vertical-align:middle;display:table-cell}._3ZbQT{border-bottom:1px solid #e6e4e4;border-left:1px solid #e6e4e4;display:table}._34SS0{text-overflow:ellipsis;display:table-row}._34SS0:nth-of-type(2n){background-color:#f5f5f5}._3lLk3{vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;display:table-cell;overflow:hidden}._nI1Xw{display:flex}._2QjE6{color:#565656;-webkit-user-select:none;user-select:none;cursor:pointer;padding:.15rem .2rem 0;font-size:.6rem}._2TfEi{-webkit-user-select:none;user-select:none;padding-left:1rem;font-size:.6rem}._3T42e{background:#fff;padding:12px;box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b}._29NTg{color:#666;margin-bottom:6px;font-size:12px}._25P-K{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;flex-shrink:0;display:flex;position:absolute}._3gVAq{visibility:hidden;pointer-events:none;display:flex;position:absolute}._1eT-t{scrollbar-width:thin;flex-shrink:0;width:1rem;overflow:hidden auto}._1eT-t::-webkit-scrollbar{width:1.1rem;height:1.1rem}._1eT-t::-webkit-scrollbar-corner{background:0 0}._1eT-t::-webkit-scrollbar-thumb{background:#0003;background:var(--palette-black-alpha-20,#0003);background-clip:padding-box;border:6px solid #0000;border-radius:10px}._1eT-t::-webkit-scrollbar-thumb:hover{background:#0000004d;background:var(--palette-black-alpha-30,#0000004d);background-clip:padding-box;border:4px solid #0000}._2dZTy{fill:#fff}._2dZTy:nth-child(2n){fill:#f5f5f5}._3rUKi{stroke:#ebeff2}._RuwuK{stroke:#e6e4e4}._9w8d5{text-anchor:middle;fill:#333;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none}._1rLuZ{stroke:#e6e4e4}._2q1Kt{text-anchor:middle;fill:#555;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none}._35nLX{fill:#fff;stroke:#e0e0e0;stroke-width:1.4px}._KxSXS{cursor:pointer;outline:none}._KxSXS:hover ._3w_5u{visibility:visible;opacity:1}._3w_5u{fill:#ddd;cursor:ew-resize;opacity:0;visibility:hidden}._31ERP{-webkit-user-select:none;user-select:none;stroke-width:0}._RRr13{cursor:pointer;outline:none}._2P2B1{-webkit-user-select:none;user-select:none}._1KJ6x{cursor:pointer;outline:none}._2RbVy{-webkit-user-select:none;user-select:none;opacity:.6}._2pZMF{-webkit-user-select:none;user-select:none}._3zRJQ{fill:#fff;text-anchor:middle;dominant-baseline:central;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none;font-weight:lighter}._3KcaM{fill:#555;text-anchor:start;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none}._CZjuD{margin:0;padding:0;font-size:0;overflow:hidden}._2B2zv{margin:0;padding:0;overflow:hidden}._3eULf{outline:none;margin:0;padding:0;list-style:none;display:flex;position:relative}._2k9Ys{scrollbar-width:thin;max-width:100%;height:1.2rem;overflow:auto}._2k9Ys::-webkit-scrollbar{width:1.1rem;height:1.1rem}._2k9Ys::-webkit-scrollbar-corner{background:0 0}._2k9Ys::-webkit-scrollbar-thumb{background:#0003;background:var(--palette-black-alpha-20,#0003);background-clip:padding-box;border:6px solid #0000;border-radius:10px}._2k9Ys::-webkit-scrollbar-thumb:hover{background:#0000004d;background:var(--palette-black-alpha-30,#0000004d);background-clip:padding-box;border:4px solid #0000}._19jgW{height:1px}:root{--color-primary:#1677ff;--color-accent:#fa8c16;--sidebar-bg:#001529;--text-primary:#262626;--bg-page:#f5f5f5;--color-success:#52c41a;--color-warning:#faad14;--color-error:#ff4d4f;--border-color:#f0f0f0;--card-bg:#fff;--sidebar-width:260px;--sidebar-collapsed-width:80px;--header-height:56px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0}body{color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.app-shell{min-height:100%}.app-content{min-height:calc(100vh - var(--header-height));background:var(--bg-page);padding:16px 20px}.sidebar-new-project-btn.ant-btn{color:#ffffffe6!important;background:0 0!important;border-color:#ffffff59!important}.sidebar-new-project-btn.ant-btn:hover,.sidebar-new-project-btn.ant-btn:focus{color:#fff!important;border-color:var(--color-primary)!important;background:#1677ff26!important}.page-card{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 1px 2px #0000000a}.kanban-board{align-items:flex-start;gap:12px;min-height:calc(100vh - 180px);padding-bottom:12px;display:flex;overflow-x:auto}.kanban-column{border:1px solid var(--border-color);background:#fafafa;border-radius:10px;flex-direction:column;flex:0 0 300px;width:300px;max-height:calc(100vh - 200px);display:flex}.kanban-column-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;font-weight:600;display:flex}.kanban-column-body{flex-direction:column;flex:1;gap:8px;min-height:80px;padding:10px;display:flex;overflow-y:auto}.task-card{border:1px solid #e8e8e8;border-left:3px solid var(--color-primary);cursor:grab;background:#fff;border-radius:10px;padding:12px 12px 10px;transition:box-shadow .15s,border-color .15s,transform .15s;box-shadow:0 1px 2px #0000000a}.task-card-title{letter-spacing:-.01em;display:block;color:#141414!important;font-size:14px!important;font-weight:600!important;line-height:1.35!important}.task-card:hover{border-top-color:#d0d0d0;border-bottom-color:#d0d0d0;border-right-color:#d0d0d0;transform:translateY(-1px);box-shadow:0 4px 14px #0000001a}.task-card:active{cursor:grabbing}.task-card.dragging{opacity:.7;box-shadow:0 10px 24px #00000029}.auth-page{background:radial-gradient(circle at 10% 20%, #1677ff1f, transparent 40%), radial-gradient(circle at 90% 80%, #fa8c1624, transparent 40%), var(--bg-page);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:#fff;border-radius:16px;width:100%;max-width:420px;padding:32px 28px;box-shadow:0 12px 40px #00000014}.auth-brand{text-align:center;margin-bottom:24px}.auth-brand h1{color:var(--color-primary);letter-spacing:-.02em;margin:0;font-size:28px}.auth-brand p{color:#8c8c8c;margin:6px 0 0}.rich-editor{border:1px solid var(--border-color);background:#fff;border-radius:8px;min-height:120px;padding:10px 12px}.rich-editor--readonly{background:#fafafa;border-style:dashed}.rich-editor-toolbar{border-bottom:1px solid var(--border-color);background:#fafafa;border-radius:8px 8px 0 0;margin:-10px -12px 10px;padding:6px 8px}.rich-editor .ProseMirror{outline:none;min-height:90px}.rich-editor .ProseMirror p.is-editor-empty:first-child:before{color:#bfbfbf;content:attr(data-placeholder);float:left;pointer-events:none;height:0}.rich-editor .ProseMirror img.rich-editor-img,.rich-editor .ProseMirror img{border-radius:8px;max-width:100%;height:auto;margin:8px 0;display:block}.rich-editor .ProseMirror a.rich-editor-link,.rich-editor .ProseMirror a{color:#1677ff;text-underline-offset:2px;text-decoration:underline}.rich-editor .ProseMirror a.rich-editor-link:hover,.rich-editor .ProseMirror a:hover{color:#0958d9}.rich-editor .ProseMirror code{background:#f5f5f5;border-radius:4px;padding:1px 6px;font-size:.92em}.rich-editor .ProseMirror hr{border:none;border-top:1px solid var(--border-color);margin:14px 0}.rich-editor .ProseMirror ol,.rich-editor .ProseMirror ul{margin:8px 0 12px;padding-left:1.4rem}.rich-editor .ProseMirror li p{margin:0 0 6px}.rich-editor .ProseMirror h2,.rich-editor .ProseMirror h3{margin:12px 0 8px;line-height:1.35}.rich-editor-hint{color:#8c8c8c;margin-left:8px;font-size:11px}.comment-html img{border:1px solid #f0f0f0;border-radius:8px;max-width:100%;height:auto;margin:8px 0;display:block}.roadmap-ficha-empty{text-align:center;background:#fafafa;border:1px dashed #d9d9d9;border-radius:8px;padding:24px 16px}.gantt-fallback{padding:12px}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.mobile-only{display:none!important}.mobile-stack{flex-wrap:wrap;gap:8px;display:flex}@media (width<=768px){.mobile-only{display:flex!important}.desktop-only{display:none!important}:root{--sidebar-width:0px;--header-height:48px}.app-content{min-height:calc(100vh - var(--header-height));padding:10px 12px}.mobile-sidebar-backdrop{z-index:99;background:#00000073;animation:.2s fadeIn;position:fixed;inset:0}.mobile-sidebar-drawer{z-index:100;background:var(--sidebar-bg);width:280px;animation:.25s slideInLeft;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.app-header-mobile{height:var(--header-height)!important;line-height:var(--header-height)!important;padding:0 10px!important}.app-header-mobile .header-search-desktop,.app-header-mobile .header-user-name{display:none}.header-search-mobile-expanded{height:var(--header-height);z-index:25;border-bottom:1px solid var(--border-color);background:#fff;align-items:center;gap:8px;padding:0 10px;display:flex;position:absolute;top:0;left:0;right:0}.header-search-mobile-expanded .ant-input-affix-wrapper{flex:1}.kanban-board{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:10px;min-height:calc(100vh - 240px);padding-bottom:8px}.kanban-column{scroll-snap-align:start;flex:0 0 85vw;width:85vw;max-width:320px;max-height:calc(100vh - 260px)}.kanban-column-body{gap:6px;padding:8px}.task-card{cursor:pointer;-webkit-tap-highlight-color:transparent;padding:10px 10px 8px}.task-card:hover{transform:none;box-shadow:0 1px 2px #0000000a}.task-card:active{cursor:pointer;background:#f9f9f9}.task-card-title{font-size:13px!important}.task-card-move-btn{margin-top:6px}.task-card-move-btn .ant-select{width:100%!important}.ant-drawer.task-drawer-mobile .ant-drawer-content-wrapper{width:100%!important;max-width:100%!important}.ant-drawer.task-drawer-mobile .ant-drawer-body{padding:12px}.task-drawer-fields-mobile{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.task-drawer-fields-mobile .ant-select,.task-drawer-fields-mobile .ant-picker{width:100%!important}.task-drawer-time-form-mobile .ant-form-item{width:100%;margin-bottom:8px}.task-drawer-time-form-mobile .ant-input,.task-drawer-time-form-mobile .ant-picker{width:100%!important}.page-header-mobile{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.page-header-mobile .page-header-actions{flex-wrap:wrap;gap:6px;display:flex}.project-board-header-mobile{gap:8px;flex-direction:column!important;align-items:flex-start!important}.project-board-header-mobile .ant-space{flex-wrap:wrap;width:100%}.roadmap-header-mobile{flex-direction:column;gap:8px;align-items:flex-start!important}.roadmap-header-mobile .ant-typography-secondary{display:none}.roadmap-filters-mobile .ant-input,.roadmap-filters-mobile .ant-select{width:100%!important;min-width:0!important}.roadmap-filters-mobile>.ant-space-item{width:100%}.roadmap-card-mobile .ant-card-body{padding:12px!important}.modal-mobile-fullscreen .ant-modal{width:100%!important;max-width:100vw!important;margin:0!important;padding:0!important;top:0!important}.modal-mobile-fullscreen .ant-modal-content{min-height:100vh;border-radius:0!important}.modal-mobile-fullscreen .ant-modal-body{overflow-y:auto;max-height:calc(100vh - 120px)!important}.auth-page{padding:16px}.auth-card{border-radius:12px;padding:20px 16px}.page-card{border-radius:8px;padding:12px}.rich-editor{min-height:100px}.ant-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.ant-modal{max-width:calc(100vw - 24px)!important}.mobile-stack{flex-direction:column;width:100%}.mobile-stack>*{width:100%}.workspace-select-header-mobile{flex-direction:column;gap:12px;align-items:flex-start!important}.ant-form-inline .ant-form-item{flex:1;min-width:0}.comment-compact-mobile{flex-direction:column}.comment-compact-mobile .ant-btn,.mobile-full-space.ant-space,.mobile-full-space .ant-space-item{width:100%}.dashboard-header-mobile{flex-direction:column;gap:8px;align-items:flex-start!important}.kanban-swipe-hint{text-align:center;color:#8c8c8c;padding:6px;font-size:12px}}
