*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0f0c29;color:#fff}.cdk-drag-placeholder{background:#667eea1a!important;border:2px dashed rgba(102,126,234,.25)!important;border-radius:10px!important;opacity:.5}.cdk-drag-preview{box-shadow:0 8px 24px #0006;border-radius:10px}.cdk-drag-animating{transition:transform .2s ease}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}app-board *{box-sizing:border-box}app-board .board-shell{min-height:100vh;background:linear-gradient(135deg,#0f0c29,#1a1a2e,#16213e);padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}app-board .header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;border-bottom:1px solid rgba(255,255,255,.06)}app-board .header-left{display:flex;align-items:center;gap:.75rem}app-board .header-right{display:flex;align-items:center;gap:.75rem}app-board .header-logo{height:32px;width:auto;object-fit:contain}app-board .header h1{color:#fff;font-size:1.15rem;font-weight:600;margin:0}app-board .user-name{color:#ffffff80;font-size:.8rem}app-board .btn-header{background:#667eea26;border:1px solid rgba(102,126,234,.3);color:#667eea;padding:.4rem 1rem;border-radius:8px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .2s}app-board .btn-header:hover{background:#667eea40}app-board .btn-logout{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#ffffff80;padding:.4rem 1rem;border-radius:8px;cursor:pointer;font-size:.8rem;transition:all .2s}app-board .btn-logout:hover{background:#ffffff1a;color:#fff}app-board .btn-primary-header{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;padding:.5rem 1.1rem;border-radius:8px;cursor:pointer;font-size:.82rem;font-weight:600;transition:opacity .2s}app-board .btn-primary-header:hover{opacity:.85}app-board .loading-inline{color:#fff6;font-size:.82rem;padding:.35rem 0}app-board .loading-dots:after{content:"";animation:dots 1.2s steps(4,end) infinite}app-board .board{display:flex;gap:1rem;padding:1.5rem 2rem 2rem;overflow-x:auto;min-height:calc(100vh - 140px);transition:margin-right .3s}app-board .board.with-panel{margin-right:360px}app-board .column{flex:1;min-width:200px;max-width:320px}app-board .column-header{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;margin-bottom:.75rem}app-board .col-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}app-board .col-title{color:#ffffffb3;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}app-board .col-count{color:#ffffff40;font-size:.75rem;margin-left:auto}app-board .task-list{min-height:60px;border-radius:12px;padding:.25rem}app-board .task-card{background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-left:3px solid transparent;border-radius:10px;padding:.75rem .85rem;margin-bottom:.5rem;cursor:grab;transition:all .2s;-webkit-user-select:none;user-select:none}app-board .task-card:hover{background:#ffffff1a;border-color:#ffffff26;border-left-width:3px;transform:translateY(-1px)}app-board .task-card:active{cursor:grabbing}app-board .task-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}app-board .task-title{color:#fff;font-size:.85rem;font-weight:600;line-height:1.35;flex:1}app-board .task-id{color:#fff3;font-size:.65rem;font-family:monospace;flex-shrink:0;margin-top:2px}app-board .task-desc{color:#ffffff59;font-size:.75rem;line-height:1.4;margin-top:.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}app-board .task-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.6rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.05)}app-board .task-footer-left,app-board .task-footer-right{display:flex;align-items:center}app-board .task-assignee{display:flex;align-items:center;gap:.35rem;color:#ffffff80;font-size:.7rem}app-board .assignee-dot{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;color:#fff;flex-shrink:0}app-board .task-unassigned{color:#fff3;font-size:.7rem;font-style:italic}app-board .task-date-chip{color:#fff3;font-size:.65rem}app-board .task-meta{color:#ffffff4d;font-size:.68rem;margin-top:.35rem}app-board .task-updated{color:#fff3;font-size:.63rem;margin-top:.25rem;font-style:italic}app-board .empty-col{color:#ffffff26;font-size:.8rem;text-align:center;padding:2rem 0}app-board .task-list.cdk-drop-list-dragging .task-card:not(.cdk-drag-placeholder){transition:transform .2s cubic-bezier(0,0,.2,1)}app-board .log-badge{padding:.15rem .5rem;border-radius:6px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}app-board .log-badge.badge-created{background:#10b98133;color:#10b981}app-board .log-badge.badge-moved{background:#3b82f633;color:#3b82f6}app-board .log-badge.badge-assigned{background:#8b5cf633;color:#8b5cf6}app-board .log-badge.badge-edited{background:#f59e0b33;color:#f59e0b}app-board .log-badge.badge-deleted{background:#ef444433;color:#ef4444}app-board .log-badge.small{font-size:.6rem;padding:.1rem .4rem}app-board .modal-overlay{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}app-board .modal{background:#1e1e3a;border:1px solid rgba(255,255,255,.1);border-radius:16px;width:100%;max-width:560px;padding:2rem;max-height:90vh;overflow-y:auto}app-board .modal.modal-detail{max-width:640px}app-board .modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}app-board .modal-header h2{color:#fff;font-size:1.25rem;font-weight:600;margin:0;cursor:pointer}app-board .modal-title-input{flex:1;background:#ffffff0f;border:1px solid rgba(102,126,234,.4);border-radius:8px;color:#fff;font-size:1.25rem;font-weight:600;padding:.35rem .6rem;outline:none}app-board .btn-close{background:none;border:none;color:#ffffff4d;font-size:1.1rem;cursor:pointer;padding:.25rem}app-board .btn-close:hover{color:#fff}app-board .modal-status{display:flex;align-items:center;gap:.75rem;margin-top:1rem}app-board .status-badge{padding:.25rem .75rem;border-radius:20px;color:#fff;font-size:.75rem;font-weight:600}app-board .task-date{color:#ffffff4d;font-size:.75rem}app-board .modal-updated-info{margin-top:.75rem;color:#fff6;font-size:.78rem}app-board .modal-updated-info strong{color:#ffffffb3}app-board .send-to-row{display:flex;flex-wrap:wrap;gap:.5rem}app-board .btn-send-to{background:transparent;border:1px solid;border-radius:8px;padding:.35rem .85rem;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s}app-board .btn-send-to:hover:not(:disabled){opacity:.8;background:#ffffff0d}app-board .btn-send-to:disabled{opacity:.4;cursor:default}app-board .modal-field{margin-top:1.25rem}app-board .modal-field label{display:block;color:#ffffff80;font-size:.8rem;font-weight:500;margin-bottom:.5rem}app-board .modal-select{width:100%;padding:.6rem .85rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:.85rem;outline:none}app-board .modal-select option{background:#1e1e3a;color:#fff}app-board .modal-select:focus{border-color:#667eea}app-board .modal-input{width:100%;padding:.6rem .85rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:.85rem;outline:none;box-sizing:border-box}app-board .modal-input::placeholder{color:#ffffff40}app-board .modal-input:focus{border-color:#667eea}app-board .modal-body{margin-top:1.25rem}app-board .modal-body label{display:block;color:#ffffff80;font-size:.8rem;font-weight:500;margin-bottom:.5rem}app-board .modal-body textarea{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#fff;font-size:.875rem;padding:.75rem;outline:none;resize:vertical;font-family:inherit;line-height:1.5}app-board .modal-body textarea::placeholder{color:#fff3}app-board .modal-body textarea:focus{border-color:#667eea}app-board .task-log-list{max-height:400px;overflow-y:auto}app-board .task-log-item{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.04)}app-board .task-log-details{color:#ffffff80;font-size:.75rem}app-board .task-log-meta{color:#ffffff40;font-size:.65rem;width:100%}app-board .task-log-empty{color:#fff3;font-size:.75rem;padding:.5rem 0}app-board .modal-error{color:#ff6b6b;font-size:.8rem;margin:.75rem 0 0}app-board .modal-success{color:#10b981;font-size:.8rem;margin:.75rem 0 0}app-board .modal-actions{margin-top:1.5rem;display:flex;justify-content:flex-end;gap:.75rem}app-board .hidden-file-input{display:none}app-board .attachment-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}app-board .attachment-section{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.06)}app-board .discussion-attachments{margin-bottom:1rem}app-board .attachment-section-header{display:flex;justify-content:space-between;gap:.75rem;align-items:center;margin-bottom:.75rem}app-board .pending-attachment-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}app-board .pending-attachment-item{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.55rem .7rem;border-radius:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:#ffffffc7;font-size:.8rem}app-board .attachment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin-top:.75rem}app-board .attachment-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:.75rem}app-board .attachment-preview{border-radius:10px;overflow:hidden;background:#00000040;min-height:140px;display:flex;align-items:center;justify-content:center}app-board .attachment-image,app-board .attachment-video{width:100%;max-height:220px;object-fit:cover;display:block}app-board .attachment-audio{width:100%}app-board .attachment-link{color:#aebcff;font-size:.82rem;text-decoration:none}app-board .attachment-meta{margin-top:.6rem;display:flex;justify-content:space-between;gap:.5rem;align-items:center}app-board .attachment-name{color:#ffffffc7;font-size:.78rem;overflow-wrap:anywhere}app-board .btn-link-danger{background:none;border:none;color:#ff8e8e;cursor:pointer;font-size:.75rem;padding:0}app-board .recording-indicator{color:#ffb4b4;font-size:.78rem;margin-top:.6rem}app-board .discussion-upload-actions{margin-top:.75rem;justify-content:flex-start}app-board .btn-add,app-board .btn-save{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;padding:.5rem 1rem;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .2s}app-board .btn-add:hover,app-board .btn-save:hover{opacity:.85}app-board .btn-secondary{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#fffc;padding:.5rem 1rem;border-radius:8px;font-size:.8rem;cursor:pointer;transition:all .2s}app-board .btn-secondary:hover{background:#ffffff1a}app-board .btn-delete{background:#ff6b6b26;border:1px solid rgba(255,107,107,.2);color:#ff6b6b;padding:.5rem 1rem;border-radius:8px;font-size:.8rem;cursor:pointer;transition:all .2s}app-board .btn-delete:hover{background:#ff6b6b40}app-board .members-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.06)}app-board .members-section label{display:block;color:#ffffff80;font-size:.8rem;font-weight:500;margin-bottom:.75rem}app-board .members-list{max-height:200px;overflow-y:auto}app-board .member-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0}app-board .member-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;color:#fff;flex-shrink:0}app-board .member-info{display:flex;flex-direction:column;min-width:0;flex:1}app-board .member-name{color:#fffc;font-size:.85rem}app-board .member-role{color:#ffffff4d;font-size:.7rem}app-board .member-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}app-board .btn-member-action,app-board .btn-member-delete{border-radius:8px;padding:.4rem .75rem;font-size:.75rem;cursor:pointer;transition:all .2s;white-space:nowrap}app-board .btn-member-action{background:#667eea1f;border:1px solid rgba(102,126,234,.25);color:#93a5ff}app-board .btn-member-action:hover:not(:disabled){background:#667eea33}app-board .btn-member-delete{background:#ff6b6b1f;border:1px solid rgba(255,107,107,.22);color:#ff8e8e}app-board .btn-member-delete:hover:not(:disabled){background:#ff6b6b33}app-board .btn-add:disabled,app-board .btn-save:disabled,app-board .btn-delete:disabled,app-board .btn-secondary:disabled,app-board .btn-member-action:disabled,app-board .btn-member-delete:disabled{opacity:.45;cursor:default}app-board .modal-confirm{max-width:440px}app-board .confirm-message{color:#ffffffb8;font-size:.9rem;line-height:1.6;margin:1rem 0 0}app-board .modal-tabs{display:flex;gap:0;margin-top:1rem;border-bottom:1px solid rgba(255,255,255,.08)}app-board .tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:#fff6;font-size:.82rem;font-weight:500;padding:.6rem 1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}app-board .tab-btn:hover{color:#ffffffb3}app-board .tab-btn.active{color:#667eea;border-bottom-color:#667eea}app-board .tab-badge{background:#667eea33;color:#667eea;font-size:.65rem;font-weight:600;padding:.05rem .4rem;border-radius:10px}app-board .tab-content{margin-top:1rem}app-board .comment-input-area{margin-bottom:.75rem}app-board .comment-input-wrapper{position:relative}app-board .comment-textarea{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:.82rem;padding:.6rem;outline:none;resize:none;font-family:inherit;line-height:1.45;box-sizing:border-box}app-board .comment-textarea::placeholder{color:#fff3}app-board .comment-textarea:focus{border-color:#667eea}app-board .comment-edit-textarea{margin-top:.4rem}app-board .btn-comment-send{margin-top:.4rem;background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;padding:.35rem .85rem;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer}app-board .btn-comment-send:hover:not(:disabled){opacity:.85}app-board .btn-comment-send:disabled{opacity:.4;cursor:default}app-board .comments-list{max-height:400px;overflow-y:auto}app-board .comment-item{padding:.65rem 0;border-bottom:1px solid rgba(255,255,255,.04)}app-board .comment-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem}app-board .comment-avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;color:#fff;flex-shrink:0}app-board .comment-author{color:#fffc;font-size:.78rem;font-weight:600}app-board .comment-time{color:#ffffff40;font-size:.68rem;margin-left:auto}app-board .comment-edited{color:#fff3;font-size:.65rem;font-style:italic}app-board .comment-body{color:#fff9;font-size:.8rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}app-board .mention-highlight{color:#667eea;font-weight:600}app-board .btn-comment-edit{background:none;border:none;color:#ffffff40;font-size:.68rem;cursor:pointer;padding:.15rem 0;margin-top:.2rem}app-board .btn-comment-edit:hover{color:#667eea}app-board .comment-edit-actions{display:flex;gap:.5rem;margin-top:.35rem}app-board .btn-comment-save{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;padding:.25rem .6rem;border-radius:5px;font-size:.7rem;font-weight:600;cursor:pointer}app-board .btn-comment-save:disabled{opacity:.4}app-board .btn-comment-cancel{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#ffffff80;padding:.25rem .6rem;border-radius:5px;font-size:.7rem;cursor:pointer}app-board .btn-comment-cancel:hover{color:#fff}app-board .mention-dropdown{position:absolute;bottom:100%;left:0;width:100%;background:#252548;border:1px solid rgba(255,255,255,.12);border-radius:8px;max-height:160px;overflow-y:auto;z-index:10;margin-bottom:4px;box-shadow:0 8px 24px #0006}app-board .mention-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;transition:background .15s}app-board .mention-item:hover{background:#667eea26}app-board .mention-avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:600;color:#fff;flex-shrink:0}app-board .mention-name{color:#fffc;font-size:.8rem}app-board .mention-empty{color:#ffffff4d;font-size:.75rem;padding:.5rem .75rem}app-board .comments-loading,app-board .comments-empty{color:#ffffff40;font-size:.78rem;text-align:center;padding:1.5rem 0}.cdk-drag-preview{background:#1e1e3cf2;border:1px solid rgba(102,126,234,.4);border-radius:10px;padding:.85rem 1rem;box-shadow:0 12px 40px #00000080}.cdk-drag-preview .task-title{color:#fff;font-size:.875rem;font-weight:500}.cdk-drag-preview .task-meta{color:#ffffff4d;font-size:.7rem;margin-top:.4rem}@media (max-width: 768px){app-board .board{padding:1rem;gap:.75rem}app-board .board.with-panel{margin-right:0}app-board .header{padding:.75rem 1rem;flex-wrap:wrap;gap:.5rem}app-board .header-right{flex-wrap:wrap}app-board .column{min-width:180px}app-board .member-item{align-items:flex-start;flex-wrap:wrap}app-board .member-actions{width:100%;margin-left:0}}
