@import url(https://fonts.googleapis.com/css2?family=-apple-system,BlinkMacSystemFont,SF+Pro+Display:wght@300;400;500;600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:#000;display:flex;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;justify-content:center;min-height:100vh}.login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1c1c1ecc;border:1px solid #ffffff1a;border-radius:20px;box-shadow:0 25px 50px #00000080;max-width:400px;padding:48px;text-align:center;width:100%}.login-card h1{color:#fff;font-size:28px;font-weight:600;letter-spacing:-.5px;margin-bottom:8px}.login-card p{color:#fff9;font-size:15px;font-weight:400;margin-bottom:32px}.login-card form{display:flex;flex-direction:column;gap:16px}.login-card input{background:#3a3a3ccc;border:1px solid #ffffff1a;border-radius:12px;color:#fff;font-family:inherit;font-size:16px;padding:16px 20px;transition:all .2s ease}.login-card input::placeholder{color:#fff6}.login-card input:focus{background:#3a3a3c;border-color:#007aff;box-shadow:0 0 0 3px #007aff33;outline:none}.login-card button{background:#007aff;border:none;border-radius:12px;color:#fff;cursor:pointer;font-family:inherit;font-size:16px;font-weight:600;margin-top:8px;padding:16px 24px;transition:all .2s ease}.login-card button:hover:not(:disabled){background:#0056cc;box-shadow:0 8px 25px #007aff4d;transform:translateY(-1px)}.login-card button:active{transform:translateY(0)}.login-card button:disabled{cursor:not-allowed;opacity:.5;transform:none}.error{background:#ff3b301a;border:1px solid #ff3b304d;border-radius:10px;color:#ff3b30;font-size:14px;font-weight:500;padding:12px 16px}.tkp-chat{flex-direction:column;height:100vh;width:100%}.chat-messages,.tkp-chat{background:#1c1c1e;display:flex}.chat-messages{align-items:center;flex:1 1;flex-direction:column;overflow-y:auto;padding:32px 24px 24px}.messages-container{display:flex;flex-direction:column;gap:24px;margin:0 auto;width:1000px}.message{width:1000px}.message.system .message-content{background:#3a3a3c66;border:1px solid #ffffff1a;border-radius:12px;box-sizing:border-box;color:#ffffffd9;font-size:15px;font-weight:500;padding:20px;text-align:center;width:1000px}.message.user .message-content{background:#3a3a3c4d;border:1px solid #ffffff14;border-radius:8px;box-sizing:border-box;color:#ffffffb3;font-size:14px;margin-bottom:16px;padding:12px 16px;width:1000px}.message.assistant .message-content{background:#2c2c2e99;border:1px solid #ffffff1a;border-radius:12px;box-sizing:border-box;color:#fff;padding:24px;position:relative;width:1000px}.copy-button{align-items:center;background:#3a3a3ccc;border:none;border-radius:6px;color:#ffffffb3;cursor:pointer;display:flex;font-size:12px;gap:4px;padding:8px 12px;position:absolute;right:12px;top:12px;transition:all .15s ease}.copy-button:hover{background:#48484acc;color:#ffffffe6}.copy-button.copied{background:#34c759cc;color:#fff}.message-body{font-size:15px;line-height:1.6;margin-top:8px}.message-header{border-bottom:1px solid #ffffff26;color:#fff;font-size:18px;font-weight:600;letter-spacing:-.2px;margin:24px 0 16px;padding-bottom:8px}.message-header:first-child{margin-top:0}.message-text{color:#fffffff2;line-height:1.6;margin:8px 0}.message-bullet{color:#ffffffe6;line-height:1.5;margin:8px 0;padding-left:16px;position:relative}.message-bullet:before{color:#fff9;content:"•";font-weight:400;left:0;position:absolute}.message-spec{color:#ffffffd9;font-family:-apple-system,BlinkMacSystemFont,SF Mono,monospace;font-size:14px}.message-benefit,.message-spec{background:#ffffff08;border-left:3px solid #ffffff26;border-radius:0 4px 4px 0;line-height:1.4;margin:6px 0;padding:8px 16px}.message-benefit{color:#ffffffe6}.message-spacer{height:16px}.message-time{color:#ffffff4d;font-size:11px;font-weight:400;margin-top:16px;text-align:right}.processing-indicator{align-items:center;display:flex;gap:12px;padding:16px 0;width:100%}.typing-dots{display:flex;gap:4px}.typing-dots span{animation:typing 1.4s infinite;background:#fff6;border-radius:50%;height:6px;width:6px}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}.processing-text{color:#fff9;font-size:14px;font-weight:400}@keyframes typing{0%,60%,to{opacity:.3}30%{opacity:1}}.chat-input-area{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1c1c1ef2;border-top:1px solid #ffffff1a;display:flex;flex-direction:column;margin-bottom:24px;padding:24px;width:100%}.attached-file{align-items:center;background:#3a3a3c66;border:1px solid #ffffff1a;border-radius:8px;box-sizing:border-box;color:#fffc;display:flex;font-size:14px;justify-content:space-between;margin:0 auto 16px;padding:12px 16px;width:1000px}.attached-file button{background:#ffffff1a;border:none;border-radius:4px;color:#ffffffb3;cursor:pointer;font-size:12px;padding:4px 8px;transition:all .15s ease}.attached-file button:hover{background:#ffffff26}.input-container{margin:0 auto;width:1000px}.input-wrapper{align-items:flex-start;background:#2c2c2ecc;border:1px solid #ffffff1a;border-radius:12px;box-sizing:border-box;display:flex;gap:12px;min-height:80px;padding:16px 20px;transition:border-color .2s ease;width:1000px}.input-wrapper:focus-within{background:#2c2c2ee6;border-color:#fff3}.input-wrapper textarea{background:none;border:none;color:#fff;flex:1 1;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;font-size:15px;line-height:1.5;margin-top:0;max-height:200px;min-height:48px;outline:none;padding-top:0;resize:none}.input-wrapper textarea::placeholder{color:#fff6}.input-actions{align-items:flex-start;display:flex;gap:8px;margin-top:0;padding-top:0}.file-upload-btn button,.send-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:14px;height:36px;justify-content:center;margin-top:6px;transition:all .15s ease;width:36px}.file-upload-btn button{background:#3a3a3c99;color:#ffffffb3}.file-upload-btn button:hover{background:#48484a99;color:#ffffffe6}.send-btn{background:#3a3a3ccc;color:#ffffffe6;font-weight:500}.send-btn:hover:not(:disabled){background:#48484acc;color:#fff}.send-btn:disabled{cursor:not-allowed;opacity:.3}.input-hint{color:#ffffff4d;font-size:12px;font-weight:400;margin:12px auto 0;text-align:center;width:1000px}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#0000}.chat-messages::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#ffffff26}@media (max-width:1048px){.attached-file,.input-container,.input-hint,.input-wrapper,.message,.message-content,.messages-container{max-width:1000px;width:calc(100vw - 48px)!important}.chat-messages{padding:20px 24px 16px}.chat-input-area{padding:20px 24px 24px}}.task-stats-bar{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(4,1fr);margin-bottom:6px}.stat-card{min-height:32px;padding:4px 10px}.stat-content{align-items:center}.task-stats-bar .stat-label,.task-stats-bar .stat-title{color:#495057!important;font-size:15px!important;font-weight:700!important;white-space:nowrap!important}.task-stats-bar .stat-value-right{color:#1a202c!important;font-size:17px!important;font-weight:600!important;white-space:nowrap!important}.task-stats-bar .stat-value{color:#1a202c!important;font-size:19px!important;font-weight:700!important;line-height:1!important}.task-stats-bar .stat-sublabel{color:#6c757d!important;font-size:12px!important;white-space:nowrap!important}.stat-card.overdue .stat-value{color:#ef4444}.stat-card.upcoming .stat-value{color:#495057}.avatar{align-items:center;background:#f1f3f5;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0000001a;display:inline-flex;flex-shrink:0;justify-content:center;overflow:hidden;position:relative}.avatar-small{height:24px;min-height:24px;min-width:24px;width:24px}.avatar-medium{height:32px;min-height:32px;min-width:32px;width:32px}.avatar-large{height:48px;min-height:48px;min-width:48px;width:48px}.avatar-image{height:100%;object-fit:cover;width:100%}.avatar-initials{align-items:center;color:#fff;display:flex;font-weight:600;height:100%;justify-content:center;-webkit-user-select:none;user-select:none;width:100%}.avatar-small .avatar-initials{font-size:10px}.avatar-medium .avatar-initials{font-size:12px}.avatar-large .avatar-initials{font-size:18px}.grouped-table-view{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:8px}.vacation-indicator{border-radius:4px;display:inline-block;font-size:11px;font-weight:600;margin-left:8px;padding:2px 8px}.vacation-indicator.vacation-sql{background:#dcfce7;border:1px solid #4ade80;color:#166534}.vacation-indicator.vacation-manual{background:#ffedd5;border:1px solid #fb923c;color:#9a3412}.vacation-indicator.vacation-upcoming-sql{background:#e0f2fe;border:1px solid #38bdf8;color:#075985}.vacation-indicator.vacation-upcoming-manual{background:#fef3c7;border:1px solid #fbbf24;color:#92400e}.grouped-list{display:flex;flex:1 1;flex-direction:column;gap:12px;min-height:0;overflow-x:hidden;overflow-y:auto}.employee-group{background:#0000;border:1px solid #e9ecef;border-radius:8px;overflow:visible;transition:all .2s}.employee-group:hover{box-shadow:0 2px 8px #0000001a}.employee-header{align-items:center!important;background:#e9ecef!important;border-bottom:1px solid #dee2e6!important;color:#212529!important;cursor:pointer!important;display:flex!important;font-size:17px!important;font-weight:700!important;gap:12px!important;padding:12px 16px!important;-webkit-user-select:none!important;user-select:none!important}.employee-header>span:not(.employee-avatar),.employee-header>span:not(.employee-avatar) *{background:#0000!important;color:#212529!important;display:inline-block!important;opacity:1!important;visibility:visible!important}.employee-header .employee-avatar{flex-shrink:0!important}.employee-header .employee-avatar,.employee-header .employee-avatar *,.employee-header .employee-avatar .avatar,.employee-header .employee-avatar .avatar-image,.employee-header .employee-avatar .avatar-initials{opacity:1!important;visibility:visible!important}.employee-header .employee-avatar .avatar-initials{align-items:center!important;border-radius:50%!important;color:#fff!important;display:flex!important;font-weight:600!important;height:100%!important;justify-content:center!important;width:100%!important}.employee-header:hover{background:#dee2e6!important}.expand-icon{flex-shrink:0!important;font-size:16px!important;min-width:20px!important;transition:transform .2s;width:auto!important}.employee-avatar{display:flex!important;flex-shrink:0!important;margin-right:4px!important}.employee-name{flex:1 1!important;font-size:18px!important;font-weight:700!important;min-width:100px!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important}.task-count{flex-shrink:0!important;font-size:14px!important;font-weight:500!important}.employee-header .task-count.zero-tasks{color:#f97316!important;font-weight:700!important}.projects-list{background:#f8f9fa;display:flex;flex-direction:column;gap:8px;padding:12px}.project-group{background:#fff;border:1px solid #dee2e6;border-radius:6px;overflow:hidden}.project-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;color:#495057;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:10px;padding:10px 14px;-webkit-user-select:none;user-select:none}.project-header:hover{background:#e9ecef}.project-name{flex:1 1}.tasks-list{display:flex;flex-direction:column;gap:6px;padding:8px}.task-row{grid-gap:12px;align-items:center;background:#fff;border:none;border-bottom:1px solid #e9ecef;border-radius:0;cursor:pointer;display:grid;gap:12px;grid-template-columns:80px 1fr auto;padding:8px 12px;position:relative;transition:all .2s}.task-row:hover{background:#f8f9fa;box-shadow:inset 3px 0 0 #6c757d}.task-row.overdue{background:#fff5f5}.task-row.overdue:hover{background:#ffe5e5}.task-row.upcoming{background:#fffef5}.task-row.upcoming:hover{background:#fff9e5}.task-id{font-size:15px}.task-id a{border-radius:4px;color:#6c757d;display:inline-block;padding:4px 8px;transition:all .2s}.task-id a:hover{background:#f8f9fa;color:#495057}.task-main{display:flex;flex-direction:column;gap:4px}.task-title{font-size:15px;line-height:1.4}.task-tooltip{word-wrap:break-word;background:#2d3748;border-radius:6px;bottom:100%;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:13px;left:50%;line-height:1.5;margin-bottom:10px;max-width:400px;opacity:0;padding:12px 16px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .2s,visibility .2s;visibility:hidden;white-space:normal;z-index:1000}.task-row:hover .task-tooltip{opacity:1;visibility:visible}.task-tooltip:after{border:6px solid #0000;border-top-color:#2d3748;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.task-description{color:#6c757d;font-size:13px;line-height:1.5}.task-meta{align-items:flex-end;display:flex;flex-direction:column;gap:8px}.task-status{border-radius:12px;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.task-deadline{color:#495057;gap:6px}.task-deadline.overdue{color:#ef4444}.task-deadline.upcoming{color:#f59e0b;font-weight:500}.deadline-date{font-weight:500}.deadline-relative{color:#6c757d;font-size:11px}.task-creator{align-items:center;background:#f8f9fa;border-radius:4px;display:flex;font-size:12px;gap:6px;margin-top:6px;padding:4px 8px}.creator-label{color:#6c757d;font-weight:500}.creator-name{color:#495057;font-weight:600}@media (max-width:768px){.task-row{gap:12px;grid-template-columns:1fr}.task-meta{align-items:flex-start}}.kanban-view{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;overflow:hidden}.kanban-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:20px 30px}.kanban-info{color:#6c757d;font-size:14px}.kanban-info strong{color:#212529;font-weight:600}.kanban-board{display:flex;gap:16px;max-height:calc(100vh - 280px);overflow-x:auto;overflow-y:auto;padding:20px}.kanban-column{background:#f8f9fa;border-radius:12px;display:flex;flex:0 0 280px;flex-direction:column;height:-webkit-fit-content;height:fit-content;max-height:100%}.column-header{background:#fff;border-top:4px solid #007bff;border-top-left-radius:12px;border-top-right-radius:12px;padding:16px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.column-title{align-items:center;display:flex;justify-content:space-between}.status-badge{border-radius:6px;color:#fff;display:inline-block;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase}.status-badge,.task-count{font-size:13px;font-weight:600}.task-count{background:#e9ecef;border-radius:12px;color:#495057;padding:4px 10px}.column-content{flex:1 1;gap:12px;overflow-y:auto;padding:12px}.column-content,.empty-column{display:flex;flex-direction:column}.empty-column{align-items:center;color:#adb5bd;justify-content:center;padding:40px 20px;text-align:center}.empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty-text{font-size:14px}.kanban-card{background:#fff;border-left:3px solid #0000;border-radius:8px;box-shadow:0 1px 3px #0000001a;cursor:pointer;padding:14px;transition:all .2s}.kanban-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.kanban-card.overdue{background:#fef2f2;border-left-color:#ef4444}.kanban-card.upcoming{background:#fffbeb;border-left-color:#f59e0b}.card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.task-id{color:#6c757d}.card-title,.task-priority{font-size:14px}.card-title{color:#212529;font-weight:600;line-height:1.4;margin-bottom:8px}.card-description{color:#6c757d;font-size:13px;line-height:1.5;margin-bottom:12px}.card-footer{border-top:1px solid #f1f3f5;font-size:12px;gap:8px;justify-content:space-between;margin-top:12px;padding-top:12px}.card-assignee,.card-footer{align-items:center;display:flex}.card-assignee{color:#495057;gap:6px}.assignee-icon{font-size:14px}.assignee-name{font-weight:500}.card-deadline{align-items:center;color:#6c757d;display:flex;gap:4px}.card-deadline.overdue{color:#ef4444;font-weight:600}.card-deadline.upcoming{color:#f59e0b;font-weight:500}.deadline-icon{font-size:12px}.deadline-text{font-size:11px}.card-group{border-top:1px solid #f1f3f5;margin-top:8px;overflow:hidden;padding-top:8px;text-overflow:ellipsis;white-space:nowrap}.card-group,.card-time{color:#6c757d;font-size:11px}.card-time{margin-top:6px}.gantt-view{background:#f8f9fa;box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.gantt-calendar{background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000d;flex:1 1;min-height:0;overflow:hidden;position:relative}.gantt-container{height:100%;overflow-x:auto;overflow-y:auto;padding:0 16px 16px 4px;width:100%}.gantt-container::-webkit-scrollbar{height:8px;width:8px}.gantt-container::-webkit-scrollbar-track{background:#f1f3f5;border-radius:4px}.gantt-container::-webkit-scrollbar-thumb{background:#adb5bd;border-radius:4px}.gantt-container::-webkit-scrollbar-thumb:hover{background:#868e96}.gantt-grid{display:flex;flex-direction:column;min-width:-webkit-fit-content;min-width:fit-content}.gantt-header{background:#fff;border-bottom:2px solid #dee2e6;box-shadow:0 2px 4px #00000014;display:flex;margin-bottom:0;top:0;z-index:100}.employee-column-header,.gantt-header{position:-webkit-sticky;position:sticky}.employee-column-header{background:#f8f9fa;border-right:2px solid #dee2e6;color:#495057;font-size:13px;font-weight:600;left:0;min-width:450px;padding:8px 20px 8px 8px;text-align:left;width:450px;z-index:6}.month-name{text-transform:capitalize}.day-header{flex-shrink:0}.day-header.today{background:#fff3cd;color:#856404;font-weight:700}.employee-row{position:relative}.employee-row.header-row{background:#e9ecef;font-weight:700}.employee-row.header-row:hover{background:#dee2e6}.employee-cell{align-items:center;background:#fff;border-right:2px solid #dee2e6;color:#212529;cursor:pointer;display:flex;font-size:13px;gap:8px;left:0;min-width:450px;padding:6px 20px 6px 8px;position:-webkit-sticky;position:sticky;width:450px;z-index:3}.employee-row.header-row .employee-cell{background:#e9ecef;font-weight:700}.employee-row.header-row:hover .employee-cell{background:#dee2e6}.employee-cell.task-cell{cursor:default;gap:12px}.task-id{color:#495057;flex-shrink:0;font-family:Courier New,monospace;font-size:12px;font-weight:600;text-decoration:none;transition:all .2s}.task-id:hover{color:#212529;text-decoration:underline}.task-name{color:#212529;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.days-row{flex:1 1;position:relative}.day-cell{border-right:1px solid #f1f3f5;box-sizing:border-box;flex-shrink:0;height:32px}.task-bar{position:relative}.task-bar:hover{box-shadow:0 4px 8px #0003!important;transform:translateY(-2px);z-index:100!important}.task-bar.overdue{animation:pulse 2s infinite;background:#ef4444!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.gantt-bar-tooltip{word-wrap:break-word;background:#2d3748;border-radius:6px;bottom:100%;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:12px;left:50%;line-height:1.6;margin-bottom:10px;max-width:400px;min-width:280px;opacity:0;padding:12px 16px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:opacity .2s,visibility .2s;visibility:hidden;white-space:normal;z-index:1000}.task-bar:hover .gantt-bar-tooltip{opacity:1;visibility:visible}.gantt-bar-tooltip:after{border:6px solid #0000;border-top-color:#2d3748;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.tooltip-title{border-bottom:1px solid #fff3;font-size:13px;font-weight:600;margin-bottom:8px;padding-bottom:6px}.tooltip-row{display:flex;gap:8px;margin-bottom:4px}.tooltip-label{color:#cbd5e0;font-weight:600;min-width:70px}.tooltip-value{color:#fff}.no-data{font-size:18px}.task-manager{background:#f8f9fa;box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:10px;width:100%}.view-toggle{background:#f1f3f5;border-radius:4px;display:flex;gap:3px;padding:2px}.view-toggle button{background:#0000;border:none;border-radius:3px;color:#6c757d;cursor:pointer;font-size:14px;font-weight:500;min-width:32px;padding:4px 10px;transition:all .2s}.view-toggle button:hover:not(:disabled){background:#fff;color:#495057}.view-toggle button.active{background:#fff;box-shadow:0 2px 4px #0000001a;color:#007bff}.view-toggle button:disabled{cursor:not-allowed;opacity:.5}.task-manager-content{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto}.filters-bar{background:#fff;border-radius:6px;box-shadow:0 1px 4px #0000000d;justify-content:space-between;margin-bottom:6px;padding:3px 10px}.filters-bar,.filters-left{align-items:flex-end;display:flex;gap:6px}.filters-left{flex:1 1;flex-wrap:nowrap}.filters-right{align-items:center;display:flex;gap:6px}.expand-collapse-btn{align-items:center;background:#fff;border:1px solid #6c757d;border-radius:3px;color:#495057;cursor:pointer;display:flex;font-size:11px;height:24px;justify-content:center;min-width:24px;padding:2px 6px;transition:all .2s}.expand-collapse-btn:hover{background:#6c757d;color:#fff}.gantt-zoom-btn{align-items:center;background:#fff;border:1px solid #6c757d;border-radius:3px;color:#495057;cursor:pointer;display:flex;font-size:11px;height:24px;justify-content:center;min-width:24px;padding:2px 8px;transition:all .2s;white-space:nowrap}.gantt-zoom-btn:hover:not(:disabled){background:#6c757d;color:#fff}.gantt-zoom-btn:disabled{cursor:not-allowed;opacity:.4}.filter-group{flex-direction:column;gap:1px;min-width:130px}.filter-group label{font-size:9px;font-weight:600}.filter-group input,.filter-group select{background:#fff;border:1px solid #dee2e6;border-radius:3px;color:#212529;font-size:12px;height:24px;padding:2px 6px;transition:all .2s}.filter-group input:hover,.filter-group select:hover{border-color:#adb5bd}.filter-group input:focus,.filter-group select:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.search-group{margin-left:24px;max-width:200px;min-width:150px;position:relative}.search-group input{padding-right:32px;width:100%}.clear-search{align-items:center;background:#f1f3f5;border:none;border-radius:3px;bottom:4px;color:#6c757d;cursor:pointer;display:flex;font-size:11px;height:20px;justify-content:center;position:absolute;right:4px;transition:all .2s;width:20px}.clear-search:hover{background:#e9ecef;color:#495057}.spinner{animation:spin .8s linear infinite;border:4px solid #e9ecef;border-top-color:#007bff}.coming-soon{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;color:#6c757d;font-size:18px;padding:60px;text-align:center}.dashboard{background:#fff;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.dashboard-top{background:#f8f9fa;border-bottom:1px solid #e9ecef;flex-shrink:0;overflow-y:auto;padding:20px 30px}.stats-row{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(4,1fr);margin-bottom:6px}.stats-row:last-child{margin-bottom:0}.stats-row.vacations-row{gap:12px;grid-template-columns:2fr 2fr 1fr}.stats-row.stats-row-main .stat-card{min-height:32px;padding:4px 10px}.stat-card{align-items:center;background:#fff;border-radius:6px;box-shadow:0 1px 4px #0000000d;display:flex;gap:8px;overflow:hidden;padding:12px 16px;position:relative;transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 2px 6px #0000001a;transform:translateY(-1px)}.stat-icon{flex-shrink:0;font-size:20px;line-height:1}.stat-icon-image{height:20px;object-fit:contain;width:20px}.stat-content{display:flex;flex:1 1;flex-direction:column;gap:6px}.stat-title{color:#495057;font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-content-horizontal{align-items:center;display:flex;flex:1 1;gap:8px;justify-content:space-between}.stat-label{color:#495057;font-size:15px;font-weight:700;white-space:nowrap}.stat-value-right{color:#1a202c;font-size:17px;font-weight:600;white-space:nowrap}.stat-numbers-group{display:flex;flex-direction:column;gap:2px}.stat-numbers{align-items:baseline;display:flex;gap:4px}.stat-value{color:#1a202c;font-size:19px;font-weight:700;line-height:1}.stat-sublabel{font-size:12px;white-space:nowrap}.stat-card.overdue .stat-value-right{color:#ef4444}.stat-card.vacation-detailed{align-items:stretch;flex-direction:column;padding:12px 16px}.stat-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;gap:10px;margin-bottom:12px;padding-bottom:10px}.stat-header .stat-icon{font-size:20px}.stat-header .stat-title{color:#495057;flex:1 1;font-size:13px;font-weight:600}.stat-header .count-badge{background:#6c757d;border-radius:10px;color:#fff;font-size:12px;font-weight:600;padding:2px 8px}.vacation-list{gap:8px;max-height:120px;overflow-y:auto}.vacation-list,.vacation-person{display:flex;flex-direction:column}.vacation-person{background:#f8f9fa;border-left:3px solid #6c757d;border-radius:6px;gap:2px;padding:6px 10px}.vacation-person .person-name{color:#212529;font-size:13px;font-weight:600}.vacation-person .person-dates{color:#6c757d;font-size:11px}.vacation-empty{color:#6c757d;font-size:13px;font-style:italic;padding:20px;text-align:center}.stat-card.available-card{align-items:center;flex-direction:column;justify-content:center;text-align:center}.stat-card.available-card .stat-content{align-items:center}.stat-sublabel{color:#6c757d;font-size:11px;margin-top:4px}.dashboard-bottom{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-columns:1fr 1fr;overflow:hidden}.dashboard-panel{background:#fff;display:flex;flex-direction:column;overflow:hidden}.dashboard-panel.left{border-right:1px solid #e9ecef}.panel-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #e9ecef;display:flex;flex-shrink:0;justify-content:space-between;padding:16px 24px}.panel-header h2{color:#212529;font-size:16px;font-weight:700;margin:0}.count-badge{background:#6c757d;border-radius:12px;color:#fff;font-size:14px;font-weight:600;padding:4px 12px}.panel-content{flex:1 1;overflow-y:auto;padding:16px 24px}.empty-state{font-size:14px;min-height:200px}.tasks-list.compact{display:flex;flex-direction:column;gap:8px}.task-item{grid-gap:12px;align-items:center;background:#f8f9fa;border-left:3px solid #0000;border-radius:6px;display:grid;font-size:13px;gap:12px;grid-template-columns:80px 1fr auto auto auto;padding:10px 12px;transition:all .2s}.task-item:hover{background:#e9ecef;transform:translateX(2px)}.task-item.overdue{background:#fff5f5;border-left-color:#dc3545}.task-item.overdue:hover{background:#ffe5e5}.task-item.closed{border-left-color:#198754;grid-template-columns:80px 1fr auto auto}.task-id a{color:#0d6efd;font-size:13px;font-weight:600;text-decoration:none}.task-id a:hover{text-decoration:underline}.task-title{color:#212529;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-creator,.task-employee{gap:6px}.task-creator,.task-deadline,.task-employee{align-items:center;color:#6c757d;display:flex;font-size:12px;white-space:nowrap}.task-deadline{gap:4px}.task-deadline.overdue{color:#dc3545;font-weight:600}.deadline-icon{font-size:14px}.task-status{font-weight:600;padding:4px 10px}.task-group,.task-status{border-radius:4px;font-size:11px;white-space:nowrap}.task-group{background:#e9ecef;color:#6c757d;max-width:150px;overflow:hidden;padding:3px 8px;text-overflow:ellipsis}.closed-tasks-by-day{gap:16px}.closed-tasks-by-day,.day-group{display:flex;flex-direction:column}.day-group{gap:8px}.day-header{background:#e9ecef;border-radius:6px;justify-content:space-between;padding:8px 12px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.day-date{color:#495057;font-size:13px;font-weight:600;text-transform:capitalize}.day-count{background:#6c757d;border-radius:10px;color:#fff;font-size:12px;font-weight:600;padding:2px 8px}.day-tasks{display:flex;flex-direction:column;gap:6px;padding-left:8px}.dashboard-error,.dashboard-loading{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;min-height:400px}.dashboard-error p{color:#dc3545;font-size:16px;margin-bottom:12px}.dashboard-error button{background:#fff;border:1px solid #6c757d;border-radius:6px;color:#495057;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.dashboard-error button:hover{background:#f8f9fa;border-color:#495057}@media (max-width:1600px){.stats-row{gap:10px}.stat-card{padding:10px 14px}.stat-value{font-size:18px}.stat-value.large{font-size:24px}}@media (max-width:1200px){.dashboard-bottom{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.dashboard-panel.left{border-bottom:1px solid #e9ecef;border-right:none}}.vacation-schedule{background:#f8f9fa;box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:10px;width:100%}.vacation-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000d;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:4px;padding:16px 20px}.vacation-header h2{color:#1a202c;font-size:20px;font-weight:700;margin:0}.vacation-filters{display:flex;flex-wrap:wrap;gap:12px}.vacation-calendar{background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000d;flex:1 1;margin-bottom:12px;margin-top:0;min-height:0;overflow:hidden;position:relative}.vacation-schedule .calendar-container{height:100%;overflow-x:auto;overflow-y:auto;padding:0 16px 16px 4px;width:100%}.vacation-schedule .calendar-header{background:#fff;border-bottom:2px solid #dee2e6;box-shadow:0 2px 4px #00000014;display:flex;margin-bottom:0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.vacation-schedule .employee-column-header{background:#f8f9fa;color:#495057;font-size:13px;font-weight:600;padding:8px 20px 8px 8px;text-align:left;z-index:6}.vacation-schedule .employee-cell,.vacation-schedule .employee-column-header{border-right:2px solid #dee2e6;left:0;min-width:360px;position:-webkit-sticky;position:sticky;width:360px}.vacation-schedule .employee-cell{align-items:flex-start;background:#fff;display:flex;flex-direction:column;gap:2px;justify-content:center;padding:6px 20px 6px 8px;z-index:3}.vacation-schedule .employee-info{align-items:center;display:flex;gap:10px;width:100%}.vacation-schedule .employee-details{display:flex;flex:1 1;flex-direction:column;gap:2px}.vacation-schedule .employee-name{color:#212529;font-size:13px;font-weight:600;line-height:1.2;margin-bottom:0;text-align:left;width:100%}.vacation-schedule .employee-group{background:none;border:none;font-size:11px;font-weight:500;line-height:1.2;padding:0;text-align:left;width:100%}.vacation-schedule .employee-group.group-gip{color:#f97316}.vacation-schedule .employee-group.group-project{color:#92400e}.vacation-schedule .day-cell{align-items:center;border-right:1px solid #f1f3f5;box-sizing:border-box;cursor:pointer;display:flex;height:32px;justify-content:center;min-width:30px;position:relative;transition:all .2s;width:30px}.vacation-schedule .day-cell:hover{background-color:#e9ecef;opacity:.9}.vacation-legend{background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000d;display:flex;flex-wrap:wrap;gap:24px;padding:12px 20px}.day-cell.vacation-sql{background:linear-gradient(135deg,#4ade80,#38b36a);cursor:not-allowed}.day-cell.vacation-sql:hover{box-shadow:0 2px 8px #4ade8066;opacity:.9}.day-cell.vacation-manual{background:linear-gradient(135deg,#fb923c,#f97316);cursor:pointer}.day-cell.vacation-manual:hover{box-shadow:0 2px 8px #fb923c66;opacity:.9;transform:scale(1.05);z-index:2}.day-cell:not(.vacation-sql):not(.vacation-manual){cursor:pointer}.day-cell:not(.vacation-sql):not(.vacation-manual):hover{background:#fb923c1a;border:1px solid #fb923c}.legend-color.vacation-sql{background:linear-gradient(135deg,#4ade80,#38b36a)}.legend-color.vacation-manual{background:linear-gradient(135deg,#fb923c,#f97316)}.vacation-schedule .zoom-controls{display:flex;flex-direction:column;gap:4px}.vacation-schedule .zoom-controls label{color:#495057;font-size:11px;font-weight:600}.vacation-schedule .zoom-buttons{display:flex;gap:4px}.vacation-schedule .zoom-buttons button{background:#fff;border:1px solid #dee2e6;border-radius:6px;color:#495057;cursor:pointer;font-size:14px;font-weight:600;min-width:40px;padding:6px 12px;transition:all .2s}.vacation-schedule .zoom-buttons button:hover:not(:disabled){background:#f8f9fa;border-color:#4ade80;color:#4ade80}.vacation-schedule .zoom-buttons button:disabled{cursor:not-allowed;opacity:.3}.vacation-schedule .zoom-buttons button:active:not(:disabled){transform:scale(.95)}.vacation-schedule .day-header.today{background:#fef3c7!important;color:#92400e!important;font-weight:700;position:relative}.vacation-schedule .day-header.today:after{background:#f59e0b;bottom:0;content:"";height:3px;left:0;position:absolute;right:0}.time-tracking-chart{background:#f8f9fa;box-sizing:border-box;display:flex;flex-direction:column;height:100%;overflow:hidden;padding:10px;width:100%}.time-tracking-header{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000d;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:4px;padding:16px 20px}.time-tracking-header h2{color:#1a202c;font-size:20px;font-weight:700;margin:0}.time-tracking-filters{display:flex;flex-wrap:wrap;gap:12px}.time-tracking-calendar{background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000d;flex:1 1;margin-bottom:12px;margin-top:0;min-height:0;overflow:hidden;position:relative}.scroll-btn{align-items:center;background:#fffffff2;border:1px solid #dee2e6;border-radius:50%;box-shadow:0 2px 8px #00000026;cursor:pointer;display:flex;font-size:24px;height:40px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .2s;width:40px;z-index:10}.scroll-btn:hover{background:#fff;box-shadow:0 4px 12px #0003}.scroll-btn.left{left:10px}.scroll-btn.right{right:10px}.time-tracking-chart .calendar-container{height:100%;overflow-x:auto;overflow-y:auto;padding:0 16px 16px 4px;width:100%}.calendar-container::-webkit-scrollbar{height:8px;width:8px}.calendar-container::-webkit-scrollbar-track{background:#f1f3f5;border-radius:4px}.calendar-container::-webkit-scrollbar-thumb{background:#adb5bd;border-radius:4px}.calendar-container::-webkit-scrollbar-thumb:hover{background:#868e96}.calendar-grid{display:flex;flex-direction:column;min-width:-webkit-fit-content;min-width:fit-content}.time-tracking-chart .calendar-header{background:#fff;border-bottom:2px solid #dee2e6;box-shadow:0 2px 4px #00000014;display:flex;margin-bottom:0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.time-tracking-chart .employee-column-header{background:#f8f9fa;border-right:2px solid #dee2e6;color:#495057;font-size:13px;font-weight:600;left:0;min-width:360px;padding:8px 20px 8px 8px;position:-webkit-sticky;position:sticky;text-align:left;width:360px;z-index:6}.months-header{display:flex}.month-header{border-right:1px solid #dee2e6}.month-name{background:#f8f9fa;border-bottom:1px solid #dee2e6;color:#1a202c;font-size:13px;font-weight:600;padding:8px 12px;text-align:center}.day-header,.days-header{display:flex}.day-header{align-items:center;background:#f8f9fa;border-right:1px solid #f1f3f5;box-sizing:border-box;color:#6c757d;font-size:11px;height:28px;justify-content:center;min-width:30px;padding:0;text-align:center;width:30px}.day-header.weekend{background:#e9ecef;font-weight:600}.employee-row{border-bottom:1px solid #e9ecef;display:flex}.employee-row:hover{background:#f8f9fa}.time-tracking-chart .employee-cell{align-items:flex-start;background:#fff;border-right:2px solid #dee2e6;display:flex;flex-direction:column;gap:2px;justify-content:center;left:0;min-width:360px;padding:6px 20px 6px 8px;position:-webkit-sticky;position:sticky;width:360px;z-index:3}.employee-row:hover .employee-cell{background:#f8f9fa}.time-tracking-chart .employee-info{align-items:center;display:flex;gap:10px;width:100%}.time-tracking-chart .employee-details{display:flex;flex:1 1;flex-direction:column;gap:2px}.time-tracking-chart .employee-name{color:#212529;font-size:13px;font-weight:600;line-height:1.2;margin-bottom:0;text-align:left;width:100%}.time-tracking-chart .employee-group{background:none;border:none;font-size:11px;font-weight:500;line-height:1.2;padding:0;text-align:left;width:100%}.time-tracking-chart .employee-group.group-gip{color:#f97316}.time-tracking-chart .employee-group.group-project{color:#92400e}.days-row,.month-days{display:flex}.month-days{border-right:1px solid #dee2e6}.time-tracking-chart .day-cell{align-items:center;border-right:1px solid #f1f3f5;box-sizing:border-box;display:flex;height:32px;justify-content:center;min-width:30px;position:relative;transition:all .2s;width:30px}.day-cell.weekend{background:#f8f9fa}.day-cell.vacation{background:linear-gradient(135deg,#4ade80,#38b36a);cursor:pointer}.day-cell.vacation:hover{box-shadow:0 2px 8px #00000026;opacity:.9;transform:scale(1.05);z-index:2}.time-indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.time-hours{color:#fff;font-size:10px;font-weight:600;text-shadow:0 1px 2px #0000004d}.time-tracking-legend{background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000d;display:flex;flex-wrap:wrap;gap:24px;padding:12px 20px}.legend-color{border:1px solid #dee2e6;border-radius:4px;height:20px;width:20px}.legend-color.vacation{background:linear-gradient(135deg,#4ade80,#38b36a)}.legend-color.weekend{background:#f8f9fa}.no-data{color:#6c757d;padding:60px 20px;text-align:center}.no-data p{font-size:15px;margin:8px 0}.no-data .hint{color:#adb5bd;font-size:13px}.loading-spinner{gap:20px;min-height:400px}.spinner{border-top-color:#4ade80;height:48px;width:48px}.loading-spinner p{font-size:16px}.day-cell.hours-optimal{background:linear-gradient(135deg,#4ade80,#22c55e);cursor:default}.day-cell.hours-optimal:hover{box-shadow:0 2px 8px #22c55e66;opacity:.9;transform:scale(1.05);z-index:2}.legend-color.hours-optimal{background:linear-gradient(135deg,#4ade80,#22c55e)}.day-cell.hours-medium{background:linear-gradient(135deg,#6b7280,#4b5563);cursor:default}.day-cell.hours-medium:hover{box-shadow:0 2px 8px #6b728066;opacity:.9;transform:scale(1.05);z-index:2}.legend-color.hours-medium{background:linear-gradient(135deg,#6b7280,#4b5563)}.day-cell.hours-low{background:linear-gradient(135deg,#d1d5db,#9ca3af);cursor:default}.day-cell.hours-low:hover{box-shadow:0 2px 8px #9ca3af66;opacity:.9;transform:scale(1.05);z-index:2}.day-cell.hours-low .time-hours{color:#374151;text-shadow:none}.legend-color.hours-low{background:linear-gradient(135deg,#d1d5db,#9ca3af)}.day-cell.vacation-day{background:linear-gradient(135deg,#fb923c,#f97316);cursor:pointer}.day-cell.vacation-day:hover{box-shadow:0 2px 8px #f9731666;opacity:.9;transform:scale(1.05);z-index:2}.legend-color.vacation-day{background:linear-gradient(135deg,#fb923c,#f97316)}.day-cell.hours-no-project{background:linear-gradient(135deg,#ef4444,#dc2626);cursor:default}.day-cell.hours-no-project:hover{box-shadow:0 2px 8px #ef444466;opacity:.9;transform:scale(1.05);z-index:2}.legend-color.hours-no-project{background:linear-gradient(135deg,#ef4444,#dc2626)}.time-tracking-chart .zoom-controls{display:flex;flex-direction:column;gap:4px}.time-tracking-chart .zoom-controls label{color:#495057;font-size:11px;font-weight:600}.time-tracking-chart .zoom-buttons{display:flex;gap:4px}.time-tracking-chart .zoom-buttons button{background:#fff;border:1px solid #dee2e6;border-radius:6px;color:#495057;cursor:pointer;font-size:14px;font-weight:600;min-width:40px;padding:6px 12px;transition:all .2s}.time-tracking-chart .zoom-buttons button:hover:not(:disabled){background:#f8f9fa;border-color:#4ade80;color:#4ade80}.time-tracking-chart .zoom-buttons button:disabled{cursor:not-allowed;opacity:.3}.time-tracking-chart .zoom-buttons button:active:not(:disabled){transform:scale(.95)}.time-tracking-chart .day-header.today{background:#fef3c7!important;color:#92400e!important;font-weight:700;position:relative}.time-tracking-chart .day-header.today:after{background:#f59e0b;bottom:0;content:"";height:3px;left:0;position:absolute;right:0}.PhotoView-Portal{direction:ltr;height:100%;left:0;overflow:hidden;position:fixed;top:0;touch-action:none;width:100%;z-index:2000}@keyframes PhotoView__rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes PhotoView__delayIn{0%,50%{opacity:0}to{opacity:1}}.PhotoView__Spinner{animation:PhotoView__delayIn .4s linear both}.PhotoView__Spinner svg{animation:PhotoView__rotate .6s linear infinite}.PhotoView__Photo{cursor:grab;max-width:none;-webkit-user-select:none;user-select:none}.PhotoView__Photo:active{cursor:grabbing}.PhotoView__icon{display:inline-block;left:0;position:absolute;top:0;transform:translate(-50%,-50%)}.PhotoView__PhotoBox,.PhotoView__PhotoWrap{bottom:0;direction:ltr;left:0;position:absolute;right:0;top:0;touch-action:none;width:100%}.PhotoView__PhotoWrap{overflow:hidden;z-index:10}.PhotoView__PhotoBox{transform-origin:left top}@keyframes PhotoView__fade{0%{opacity:0}to{opacity:1}}.PhotoView-Slider__clean .PhotoView-Slider__ArrowLeft,.PhotoView-Slider__clean .PhotoView-Slider__ArrowRight,.PhotoView-Slider__clean .PhotoView-Slider__BannerWrap,.PhotoView-Slider__clean .PhotoView-Slider__Overlay,.PhotoView-Slider__willClose .PhotoView-Slider__BannerWrap:hover{opacity:0}.PhotoView-Slider__Backdrop{background:#000;height:100%;left:0;position:absolute;top:0;transition-property:background-color;width:100%;z-index:-1}.PhotoView-Slider__fadeIn{animation:PhotoView__fade linear both;opacity:0}.PhotoView-Slider__fadeOut{animation:PhotoView__fade linear reverse both;opacity:0}.PhotoView-Slider__BannerWrap{align-items:center;background-color:#00000080;color:#fff;display:flex;height:44px;justify-content:space-between;left:0;position:absolute;top:0;transition:opacity .2s ease-out;width:100%;z-index:20}.PhotoView-Slider__BannerWrap:hover{opacity:1}.PhotoView-Slider__Counter{font-size:14px;opacity:.75;padding:0 10px}.PhotoView-Slider__BannerRight{align-items:center;display:flex;height:100%}.PhotoView-Slider__toolbarIcon{fill:#fff;box-sizing:border-box;cursor:pointer;opacity:.75;padding:10px;transition:opacity .2s linear}.PhotoView-Slider__toolbarIcon:hover{opacity:1}.PhotoView-Slider__ArrowLeft,.PhotoView-Slider__ArrowRight{align-items:center;bottom:0;cursor:pointer;display:flex;height:100px;justify-content:center;margin:auto;opacity:.75;position:absolute;top:0;transition:opacity .2s linear;-webkit-user-select:none;user-select:none;width:70px;z-index:20}.PhotoView-Slider__ArrowLeft:hover,.PhotoView-Slider__ArrowRight:hover{opacity:1}.PhotoView-Slider__ArrowLeft svg,.PhotoView-Slider__ArrowRight svg{fill:#fff;background:#0000004d;box-sizing:initial;height:24px;padding:10px;width:24px}.PhotoView-Slider__ArrowLeft{left:0}.PhotoView-Slider__ArrowRight{right:0}.project-photos{background:#f8f9fa;display:flex;flex-direction:column;height:100%}.photos-header{align-items:center;background:#e9ecef;border-bottom:2px solid #e9ecef;color:#212529;display:flex;justify-content:space-between;padding:12px 30px}.photos-header h1{align-items:center;display:flex;font-size:20px;font-weight:700;gap:10px;margin:0}.header-controls{align-items:center;display:flex;gap:12px}.search-input{border:1px solid #dee2e6;border-radius:6px;font-size:14px;padding:8px 16px;transition:all .2s;width:300px}.search-input:focus{border-color:#6c757d;box-shadow:0 0 0 3px #6c757d1a;outline:none}.photos-content{display:flex;flex:1 1;overflow:hidden}.projects-sidebar{background:#fff;border-right:1px solid #dee2e6;display:flex;flex-direction:column;width:320px}.sidebar-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:16px}.sidebar-header h3{color:#495057;font-size:16px;font-weight:600;margin:0}.projects-list{flex:1 1;overflow-y:auto}.project-item{align-items:center;border-bottom:1px solid #f1f3f5;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;transition:all .2s}.project-item:hover{background:#f8f9fa}.project-item.active{background:#e9ecef;border-left:3px solid #6c757d}.project-info{flex:1 1;min-width:0}.project-number{color:#212529;font-size:14px;font-weight:600;margin-bottom:4px}.project-name{overflow:hidden;text-overflow:ellipsis}.photo-count,.project-name{color:#6c757d;font-size:12px;white-space:nowrap}.photo-count{background:#f8f9fa;border-radius:12px;padding:4px 8px}.photos-gallery{flex:1 1;overflow-y:auto;padding:20px}.photo-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.photo-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:all .2s}.photo-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.photo-thumbnail{cursor:pointer;height:180px;object-fit:cover;transition:transform .2s;width:100%}.photo-card:hover .photo-thumbnail{transform:scale(1.05)}.video-thumbnail-wrapper{background:#000;height:180px;position:relative;width:100%}.video-thumbnail,.video-thumbnail-wrapper video{background:#000;height:100%;object-fit:contain;width:100%}.photo-info{padding:12px}.photo-caption{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#212529;display:-webkit-box;font-size:14px;font-weight:600;line-height:1.4;margin-bottom:8px}.photo-caption,.photo-name{overflow:hidden;text-overflow:ellipsis}.photo-name{color:#6c757d;font-size:12px;font-weight:400;margin-bottom:6px;white-space:nowrap}.photo-meta{color:#adb5bd;display:flex;font-size:11px;justify-content:space-between;margin-bottom:6px}.photo-uploader{border-top:1px solid #f1f3f5;color:#6c757d;font-size:11px;font-weight:500;margin-top:4px;padding-top:6px}.empty-state,.no-selection{align-items:center;color:#6c757d;display:flex;flex-direction:column;height:100%;justify-content:center;text-align:center}.no-selection p{font-size:16px;margin:0}.loading-spinner{padding:40px}.PhotoView-Slider__ArrowLeft,.PhotoView-Slider__ArrowRight{background:#6c757dcc!important}.PhotoView-Slider__ArrowLeft:hover,.PhotoView-Slider__ArrowRight:hover{background:#5a6268e6!important}.PhotoView-Portal{bottom:20px!important;height:auto!important;left:250px!important;position:fixed!important;right:20px!important;top:60px!important;width:auto!important}.PhotoView-Slider,.PhotoView-Slider__BannerWrap{max-height:calc(100vh - 80px)!important;max-width:calc(100vw - 270px)!important}.PhotoView-Slider__PhotoWrap img{max-height:calc(100vh - 120px)!important;max-width:calc(100vw - 320px)!important;object-fit:contain!important}.ganttpro-view{background:#f8f9fa;display:flex;flex-direction:column;height:100%}.ganttpro-header{align-items:center;background:#e9ecef;border-bottom:2px solid #e9ecef;color:#212529;display:flex;justify-content:space-between;padding:12px 30px}.ganttpro-header h1{align-items:center;display:flex;font-size:20px;font-weight:700;gap:10px;margin:0}.ganttpro-filters{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:20px;padding:16px 30px}.filter-group{align-items:center;display:flex;gap:10px}.filter-group label{color:#495057;font-size:14px;font-weight:500;white-space:nowrap}.filter-group select{background:#fff;border:1px solid #dee2e6;border-radius:6px;cursor:pointer;font-size:14px;min-width:200px;padding:8px 12px}.filter-group select:focus{border-color:#6c757d;box-shadow:0 0 0 3px #6c757d1a;outline:none}.view-mode-buttons{background:#f1f3f5;border-radius:6px;display:flex;gap:4px;padding:4px}.view-mode-buttons button{background:#0000;border:none;border-radius:4px;color:#6c757d;cursor:pointer;font-size:13px;font-weight:500;padding:6px 14px;transition:all .2s}.view-mode-buttons button:hover{background:#dee2e6;color:#495057}.view-mode-buttons button.active{background:#6c757d;color:#fff}.ganttpro-content{background:#fff;flex:1 1;overflow:auto;padding:20px}.gantt-wrapper{height:100%;min-height:500px;width:100%}.gantt-container{overflow:auto}.gantt-container .bar{fill:#6c757d}.gantt-container .bar-progress{fill:#5a6268}.gantt-container .gip-task .bar{fill:#3b82f6}.gantt-container .gip-task .bar-progress{fill:#2563eb}.gantt-container .project-task .bar{fill:#10b981}.gantt-container .project-task .bar-progress{fill:#059669}.gantt-container .bar-label{fill:#fff;font-size:12px;font-weight:500}.gantt-container .today-highlight{fill:#ef44441a}.gantt-popup{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:280px;overflow:hidden;padding:0}.gantt-popup .popup-header{background:#6c757d;color:#fff;font-size:14px;font-weight:600;padding:12px 16px}.gantt-popup .popup-content{padding:12px 16px}.gantt-popup .popup-row{border-bottom:1px solid #f1f3f5;display:flex;font-size:13px;justify-content:space-between;padding:6px 0}.gantt-popup .popup-row:last-child{border-bottom:none}.gantt-popup .popup-label{color:#6c757d;font-weight:500}.gantt-popup .popup-value{color:#212529;font-weight:400}.ganttpro-legend{background:#fff;border-top:1px solid #e9ecef;display:flex;gap:20px;justify-content:center;padding:12px 30px}.legend-item{align-items:center;color:#495057;display:flex;font-size:13px;gap:8px}.legend-color{border-radius:3px;height:12px;width:24px}.legend-color.gip-color{background:#3b82f6}.legend-color.project-color{background:#10b981}.loading-spinner{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;padding:60px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#6c757d;height:40px;width:40px}.loading-spinner p{color:#6c757d;font-size:14px;margin-top:16px}.empty-state{align-items:center;color:#6c757d;display:flex;flex-direction:column;height:100%;justify-content:center;padding:40px;text-align:center}.empty-state p{font-size:16px;margin:8px 0}.empty-hint{color:#adb5bd;font-size:13px}.refresh-button{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.refresh-button:hover{background:#5a6268;transform:translateY(-1px)}.gantt .grid-header{fill:#e9ecef;stroke:#dee2e6}.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f8f9fa}.gantt .row-line{stroke:#e9ecef}.gantt .tick{stroke:#dee2e6}.gantt .tick.thick{stroke:#adb5bd}.gantt .today-highlight{fill:#6c757d1a}.bitrix-portal-container{background:#f8f9fa;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.bitrix-portal-frame{background:#fff;border:none;flex:1 1;height:100%;width:100%}.bitrix-blocked-message{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 4px #0000000d;display:flex;flex-direction:column;height:100%;justify-content:center;margin:10px;padding:40px;text-align:center}.bitrix-logo{height:auto;margin-bottom:30px;width:200px}.bitrix-blocked-message h2{color:#1a202c;font-size:24px;font-weight:600;margin:0 0 16px}.bitrix-blocked-message p{color:#6c757d;font-size:15px;margin:8px 0;max-width:600px}.bitrix-open-button{background:linear-gradient(135deg,#0d6efd,#0a58ca);border-radius:8px;box-shadow:0 2px 8px #0d6efd4d;color:#fff;font-size:16px;font-weight:500;margin-top:30px;padding:12px 32px;text-decoration:none;transition:all .2s}.bitrix-open-button:hover{box-shadow:0 4px 12px #0d6efd66;transform:translateY(-2px)}.led-calculator-container{background:#f8f9fa;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.led-calculator-frame{background:#fff;border:none;flex:1 1;height:100%;width:100%}.led-calculator-container:before{animation:spin .8s linear infinite;border:4px solid #e9ecef;border-radius:50%;border-top-color:#6c757d;content:"";height:40px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:40px;z-index:-1}@keyframes spin{to{transform:translate(-50%,-50%) rotate(1turn)}}.mlhub-container{background:#f8f9fa;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.mlhub-header{align-items:center;background:#fff;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:15px 20px}.mlhub-header h2{color:#212529;font-size:20px;margin:0}.open-external{color:#0d6efd;font-size:14px;text-decoration:none}.open-external:hover{text-decoration:underline}.mlhub-frame{background:#fff;border:none;flex:1 1;height:100%;width:100%}.cloud-polymedia-container{background:#f8f9fa;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.cloud-polymedia-frame{background:#fff;border:none;flex:1 1;height:100%;width:100%}.portal-polymedia-container{background:#f8f9fa;display:flex;flex-direction:column;height:100%;overflow:hidden;width:100%}.portal-polymedia-frame{background:#fff;border:none;flex:1 1;height:100%;width:100%}.main-layout{background:#2d2d2d;display:grid;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;grid-template-areas:"header header" "sidebar content";grid-template-columns:240px 1fr;grid-template-rows:48px 1fr;height:100vh;transition:grid-template-columns .25s ease}.main-layout.sidebar-collapsed{grid-template-columns:60px 1fr}.main-layout.sidebar-collapsed .sidebar{width:60px}.main-layout.sidebar-collapsed .soon-badge,.main-layout.sidebar-collapsed .tab-label{opacity:0;visibility:hidden}.top-bar{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#2d2d2df2;border-bottom:.5px solid #ffffff1a;grid-area:header;justify-content:space-between;padding:0 20px;z-index:100}.top-bar,.top-bar-left{align-items:center;display:flex}.top-bar-left{gap:16px}.sidebar-toggle{align-items:center;background:#3a3a3ccc;border:none;border-radius:6px;color:#fffc;cursor:pointer;display:flex;font-size:12px;height:28px;justify-content:center;transition:all .15s ease;width:28px}.sidebar-toggle:hover{background:#48484acc;color:#fff}.app-logo{align-items:center;color:#fff;display:flex;font-size:17px;font-weight:600;gap:8px}.app-logo-icon{height:24px;object-fit:contain;width:24px}.top-bar-center{align-items:center;color:#fffffff2;display:flex;font-size:16px;font-weight:500;gap:12px;left:50%;position:absolute;transform:translateX(-50%)}.current-tab-icon{font-size:18px}.current-tab-label{font-weight:600}.external-link-btn{align-items:center;background:#3a3a3c99;border-radius:6px;color:#ffffffb3;display:flex;font-size:18px;justify-content:center;margin-left:4px;padding:4px 8px;text-decoration:none;transition:all .15s ease}.external-link-btn:hover{background:#48484acc;color:#fff}.top-bar-right{align-items:center;display:flex;gap:16px}.unassigned-indicator{align-items:center;background:#6c757d;border:none;border-radius:8px;box-shadow:0 2px 8px #6c757d4d;cursor:pointer;display:flex;gap:8px;margin-left:-200px;margin-right:auto;padding:6px 12px;transition:all .2s ease}.unassigned-indicator:hover{background:#5a6268;box-shadow:0 4px 12px #6c757d80;transform:translateY(-1px)}.indicator-icon{font-size:16px;line-height:1}.indicator-label{color:#fff;font-size:13px;font-weight:600}.indicator-count{background:#fff;border-radius:10px;color:#6c757d;font-size:12px;font-weight:700;min-width:22px;padding:2px 8px;text-align:center}.user-section{align-items:center;color:#ffffffe6;display:flex;font-size:15px;font-weight:500;gap:20px}.logout-btn{background:#3a3a3ccc;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;padding:6px 12px;transition:all .15s ease}.logout-btn:hover{background:#48484acc}.sidebar{background:#2d2d2de6;border-right:.5px solid #ffffff1a;grid-area:sidebar;overflow:hidden;padding:16px 8px;transition:all .25s ease;z-index:50}.tabs-nav{display:flex;flex-direction:column;gap:4px}.tab-btn{align-items:center;background:none;border:none;border-radius:8px;color:#ffffffd9;cursor:pointer;display:flex;font-size:13px;gap:10px;min-height:44px;padding:12px;text-align:left;transition:all .15s ease;white-space:nowrap}.tab-btn:hover:not(.disabled){background:#3a3a3c99}.tab-btn.active{background:#3a3a3ccc;color:#fff;font-weight:500}.tab-btn.disabled{cursor:not-allowed;opacity:.5}.tab-icon{flex-shrink:0;font-size:16px;text-align:center;width:20px}.tab-icon.bitrix-icon{background-image:url(/static/media/bitrix-logo.b0c1a72f9c6012858deb.png);background-position:50%;background-repeat:no-repeat;background-size:contain;display:inline-block;height:20px;width:20px}.tab-icon-image{display:block;height:20px;object-fit:contain;width:20px}.tab-icon.custom-icon{align-items:center;display:flex;justify-content:center}.tab-label{flex:1 1}.soon-badge,.tab-label{transition:opacity .15s ease,visibility .15s ease}.soon-badge{background:#ff9500e6;border-radius:3px;color:#fff;flex-shrink:0;font-size:9px;font-weight:600;padding:2px 5px}.main-content{background:#2d2d2d;grid-area:content;overflow:auto;padding:0}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.e694fb4c.css.map*/