*{box-sizing:border-box}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}.App{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:1rem}.app-header{color:#fff;margin-bottom:2rem;text-align:center}.app-header-user{align-items:center;display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.app-header-username{font-size:14px;opacity:.85}.app-header-role{background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;font-size:12px;padding:2px 8px}.app-header-logout{background:#ffffff26;border:1px solid #ffffff4d;border-radius:5px;color:#fff;cursor:pointer;font-size:13px;padding:4px 12px;transition:background .15s}.app-header-logout:hover{background:#ffffff40}.app-header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;text-shadow:2px 2px 4px #0003}.app-header p{font-size:1.1rem;font-weight:300;opacity:.95}.schedule-container{--controls-sticky-height:0px;--header-row-height:30px;--total-row-height:30px;--breakdown-row-height:30px;background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;margin:0 auto;max-width:none;overflow:visible;width:100%}.add-project-section{background:linear-gradient(135deg,#667eea,#764ba2);gap:1rem;justify-content:space-between;padding:.85rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:40}.add-project-section,.controls-left{align-items:flex-end;display:flex;flex-wrap:wrap}.controls-left{gap:.85rem}.top-level-category-button{background:#fff;border:none;border-radius:999px;box-shadow:0 8px 18px #0f172a1f;color:#4c1d95;cursor:pointer;font-weight:700;padding:.55rem .9rem;transition:transform .15s ease,box-shadow .15s ease}.top-level-category-button:hover{box-shadow:0 10px 20px #0f172a29;transform:translateY(-1px)}.top-level-category-button:focus{box-shadow:0 0 0 3px #ffffff59,0 10px 20px #0f172a29;outline:none}.capacity-config-button{background:#fff;border:none;border-radius:999px;box-shadow:0 8px 18px #0f172a1f;color:#1d4ed8;cursor:pointer;font-weight:700;padding:.55rem .9rem;transition:transform .15s ease,box-shadow .15s ease}.capacity-config-button:hover{box-shadow:0 10px 20px #0f172a29;transform:translateY(-1px)}.capacity-config-button:focus{box-shadow:0 0 0 3px #ffffff59,0 10px 20px #0f172a29;outline:none}.filters-panel{align-items:flex-end;display:flex;flex-wrap:wrap;gap:.75rem;margin-left:auto}.filter-group,.work-category-filter{align-items:flex-start;color:#fff;display:flex;flex-direction:column;font-size:.82rem;font-weight:500;gap:.3rem}.compact-filter-group label{font-size:.78rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.filter-dropdown{position:relative}.filter-dropdown-toggle{align-items:center;background:#fffffff2;border:2px solid #ffffff4d;border-radius:6px;color:#667eea;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:.75rem;justify-content:space-between;min-height:38px;min-width:220px;padding:.45rem .7rem;text-align:left;transition:all .2s ease}.filter-dropdown-toggle:hover{background:#fff;border-color:#fff}.filter-dropdown-toggle:focus{border-color:#fff;box-shadow:0 0 0 3px #ffffff4d;outline:none}.filter-dropdown-toggle.is-open{background:#fff;border-color:#fff}.filter-dropdown-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown-arrow{font-size:.8rem;opacity:.8;transition:transform .2s ease}.filter-dropdown-toggle.is-open .filter-dropdown-arrow{transform:rotate(180deg)}.filter-dropdown-menu{background:#fff;border:1px solid #667eea2e;border-radius:10px;box-shadow:0 18px 34px #0f172a2e;max-height:320px;min-width:260px;overflow-y:auto;padding:.55rem;position:absolute;right:0;top:calc(100% + .4rem);z-index:80}.filter-select-all-button{background:#667eea1a;border:none;border-radius:8px;color:#4c5fd0;cursor:pointer;font-size:.82rem;font-weight:700;margin-bottom:.45rem;padding:.5rem .65rem;text-align:left;width:100%}.filter-select-all-button:hover{background:#667eea29}.filter-option{align-items:center;color:#334155;cursor:pointer;display:flex;font-size:.84rem;gap:.55rem;padding:.45rem .2rem}.filter-option+.filter-option{border-top:1px solid #94a3b829}.filter-option input{accent-color:#667eea}.filter-option.is-locked{color:#64748b}.filter-option.is-locked input{cursor:not-allowed}.multi-filter-select,.work-category-select{background:#fffffff2;border:2px solid #ffffff4d;border-radius:6px;color:#667eea;cursor:pointer;font-size:.85rem;font-weight:600;min-height:76px;min-width:180px;padding:.35rem .45rem;transition:all .2s ease}.multi-filter-select:hover,.work-category-select:hover{background:#fff;border-color:#fff}.multi-filter-select:focus,.work-category-select:focus{border-color:#fff;box-shadow:0 0 0 3px #ffffff4d;outline:none}.multi-filter-select option:disabled{background:#eef1ff;color:#8b95b6}.status-filter{min-width:200px}.client-project-filter{min-width:220px}.client-project-filter-empty{color:#6b7280;font-size:.82rem;margin:.4rem .2rem}.client-project-filter-search{border:1px solid #94a3b873;border-radius:8px;color:#334155;font-size:.82rem;margin-bottom:.45rem;padding:.48rem .6rem;width:100%}.client-project-filter-search:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea29;outline:none}.status-filter-select{min-width:220px}.date-range-filter{align-items:center;color:#fff;display:flex;flex-wrap:wrap;font-size:.85rem;font-weight:500;gap:.5rem}.total-display-select{background:#fffffff2;border:2px solid #ffffff4d;border-radius:6px;color:#667eea;cursor:pointer;font-size:.82rem;font-weight:600;padding:.35rem .55rem;transition:all .2s ease}.total-display-select:hover{background:#fff;border-color:#fff}.total-display-select:focus{border-color:#fff;box-shadow:0 0 0 3px #ffffff4d;outline:none}.date-input-wrapper{align-items:center;display:inline-flex;position:relative}.date-default-hint{background:#667eea26;border-radius:3px;color:#667eea;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:2px 6px;pointer-events:none;position:absolute;right:8px;text-transform:uppercase;top:50%;transform:translateY(-50%)}.date-range-input{background:#fffffff2;border:2px solid #ffffff4d;border-radius:6px;color:#667eea;cursor:pointer;font-size:.82rem;font-weight:600;min-width:128px;padding:.35rem .55rem;transition:all .2s ease}.date-range-input:hover{background:#fff;border-color:#fff}.date-range-input:focus{border-color:#fff;box-shadow:0 0 0 3px #ffffff4d;outline:none}.date-range-separator{color:#fff;font-weight:600;padding:0 .25rem}.reset-date-button{align-items:center;background:#fff3;border:2px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;justify-content:center;min-width:40px;padding:.35rem .55rem;transition:all .2s ease}.reset-date-button:hover{background:#ffffff4d;border-color:#fff;transform:rotate(180deg)}.reset-date-button:active{transform:rotate(180deg) scale(.95)}.add-project-button{align-items:center;background:#fff;border:none;border-radius:8px;box-shadow:0 4px 6px #0000001a;color:#667eea;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s ease}.add-project-button:hover{background:#f9fafb;box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.add-project-button:active{transform:translateY(0)}.plus-icon{font-size:1.25rem;font-weight:700}.export-csv-button{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;box-shadow:0 4px 6px #10b98133;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.export-csv-button:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 12px #10b9814d;transform:translateY(-2px)}.export-csv-button:active{box-shadow:0 2px 4px #10b98133;transform:translateY(0)}.export-icon{font-size:1.2rem}.import-csv-button{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;box-shadow:0 4px 6px #3b82f633;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.import-csv-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 12px #3b82f64d;transform:translateY(-2px)}.import-csv-button:active{box-shadow:0 2px 4px #3b82f633;transform:translateY(0)}.import-icon{font-size:1.2rem}.backup-button{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:8px;box-shadow:0 4px 6px #f59e0b33;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.backup-button:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 6px 12px #f59e0b4d;transform:translateY(-2px)}.backup-button:active{box-shadow:0 2px 4px #f59e0b33;transform:translateY(0)}.backup-icon{font-size:1.2rem}.schedule-grid{display:grid;grid-auto-flow:row;min-width:100%;overflow:visible;width:-webkit-max-content;width:max-content}.grid-cell{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:center;padding:.1rem}.header-cell{background:#1f2937;border-bottom:2px solid #374151;color:#fff;font-size:.7rem;font-weight:700;padding:.2rem;position:-webkit-sticky;position:sticky;top:var(--controls-sticky-height);z-index:22}.header-cell:first-child{border-right:2px solid #374151;justify-content:flex-start;left:0;padding-left:1.5rem;z-index:23}.schedule-total-row-cell{position:-webkit-sticky;position:sticky;top:calc(var(--controls-sticky-height) + var(--header-row-height));z-index:21}.month-header{text-align:center}.project-name-cell{background:#f9fafb;border-right:2px solid #e5e7eb;flex-direction:row;gap:.1rem;height:30px;padding:.2rem;transition:all .2s ease}.project-name-cell.clickable{cursor:pointer}.project-name-cell.clickable:hover{background:#f3f4f6}.project-name-cell.clickable:hover .edit-icon{opacity:1}.project-name{align-items:center;color:#1f2937;display:flex;font-size:.7rem;font-weight:600;justify-content:space-between}.edit-icon{font-size:.8rem;margin-left:.5rem;opacity:0;transition:opacity .2s ease}.category-add-button{background:#10b9811f;border:1px solid #10b98173;color:#047857;font-size:1rem;font-weight:700;line-height:1}.category-add-button,.category-color-input-wrapper{align-items:center;border-radius:6px;cursor:pointer;display:inline-flex;flex-shrink:0;height:24px;justify-content:center;opacity:0;transition:opacity .2s ease;width:24px}.category-color-input-wrapper{background:#ffffff2e;border:1px solid #ffffff8c}.category-color-input-wrapper:hover{background:#ffffff47}.category-color-input{background:#0000;border:none;cursor:pointer;height:16px;padding:0;width:16px}.category-color-input::-webkit-color-swatch-wrapper{padding:0}.category-color-input::-webkit-color-swatch{border:1px solid #fffc;border-radius:50%}.category-add-button:hover{background:#10b981;border-color:#10b981;color:#fff}.category-add-button:focus-visible{opacity:1;outline:2px solid #10b981;outline-offset:2px}.convert-button{background:#ef444414;border:1px solid #ef444459;border-radius:6px;color:#b91c1c;padding:0}.category-shift-button,.convert-button{align-items:center;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:.95rem;height:24px;justify-content:center;line-height:1;opacity:0;transition:opacity .2s ease;width:24px}.category-shift-button{background:#3b82f61f;border:1px solid #3b82f680;border-radius:6px;color:#1d4ed8;font-weight:700}.category-shift-button:hover{background:#2563eb;border-color:#2563eb;color:#fff}.category-shift-button:focus-visible{opacity:1;outline:2px solid #3b82f6;outline-offset:2px}.convert-button:hover{background:#dc2626;border-color:#dc2626;color:#fff}.project-move-button{align-items:center;background:#7c3aed1a;border:1px solid #7c3aed59;border-radius:6px;color:#5b21b6;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:.9rem;height:24px;justify-content:center;line-height:1;margin-left:.25rem;opacity:0;padding:0;transition:opacity .2s ease;width:24px}.project-move-button:hover{background:#6d28d9;border-color:#6d28d9;color:#fff}.project-move-button:focus-visible{opacity:1;outline:2px solid #8b5cf6;outline-offset:2px}.convert-button:focus-visible{opacity:1;outline:2px solid #ef4444;outline-offset:2px}.category-header-cell:hover .category-add-button,.category-header-cell:hover .category-color-input-wrapper,.category-header-cell:hover .category-move-button,.category-header-cell:hover .category-shift-button,.category-header-cell:hover .convert-button,.project-name-cell:hover .convert-button,.project-name-cell:hover .project-move-button{opacity:1}.category-shift-modal-overlay{align-items:center;background:#11182773;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:2000}.category-shift-modal{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 20px 45px #00000040;padding:1.1rem 1.4rem;width:min(1120px,96vw)}.category-move-modal{width:min(560px,96vw)}.user-management-modal{width:min(900px,96vw)}.category-shift-modal-header{margin-bottom:1.2rem}.category-shift-modal-header h3{color:#1f2937;font-size:1.2rem;margin:0}.category-shift-description{color:#1f2937;font-size:1.15rem;font-weight:600;margin:0 0 1rem}.category-shift-help-text{color:#6b7280;font-size:.9rem;margin:.35rem 0 .85rem}.category-shift-delete-row{display:flex;justify-content:flex-end;margin-top:.6rem}.category-shift-comments-row{display:flex;justify-content:flex-end;margin-top:.5rem}.category-shift-comments-button{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1d4ed8;cursor:pointer;font-weight:600;padding:.45rem .75rem}.category-shift-comments-button:hover{background:#dbeafe;border-color:#93c5fd}.category-shift-delete-button{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;cursor:pointer;font-weight:600;padding:.45rem .75rem}.category-shift-delete-button:hover{background:#ef4444;border-color:#ef4444;color:#fff}.category-shift-delete-button:disabled{cursor:not-allowed;opacity:.5}.category-shift-reorder-row{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.6rem}.category-shift-reorder-button{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e40af;cursor:pointer;font-weight:600;padding:.45rem .75rem;transition:background-color .15s ease,border-color .15s ease}.category-shift-reorder-button:hover:not(:disabled){background:#0ea5e9;border-color:#0ea5e9;color:#fff}.category-shift-reorder-button:disabled{cursor:not-allowed;opacity:.5}.category-delete-warning-list{color:#374151;margin:0 0 .8rem 1.1rem}.category-shift-color-row{align-items:center;display:flex;justify-content:space-between;margin-top:.35rem}.category-shift-color-input-wrapper{align-items:center;background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;display:inline-flex;height:34px;justify-content:center;width:34px}.category-shift-color-input{background:#0000;border:none;cursor:pointer;height:24px;padding:0;width:24px}.category-shift-color-input::-webkit-color-swatch-wrapper{padding:0}.category-shift-color-input::-webkit-color-swatch{border:1px solid #d1d5db;border-radius:50%}.category-shift-scope-note{color:#6b7280;font-size:.85rem;margin:0 0 1rem}.category-shift-stats-section{margin:.6rem 0 .85rem}.category-shift-stats-section h4{color:#1f2937;font-size:.9rem;margin:0 0 .45rem}.category-shift-status-grid{grid-gap:.45rem;display:grid;gap:.45rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.category-shift-status-card{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:.4rem;justify-content:space-between;padding:.45rem .55rem}.category-shift-status-name{color:#4b5563;font-size:.8rem}.category-shift-status-count{color:#111827;font-size:.9rem;font-weight:700}.category-shift-load-table-wrapper{border:1px solid #e5e7eb;border-radius:8px;overflow:visible}.category-shift-load-table{border-collapse:collapse;width:100%}.category-shift-load-table td,.category-shift-load-table th{border-bottom:1px solid #e5e7eb;font-size:.8rem;padding:.45rem .5rem;text-align:right;white-space:nowrap}.category-shift-load-table td:first-child,.category-shift-load-table th:first-child{font-weight:600;text-align:left}.category-shift-load-table thead th{background:#eff6ff;color:#1e40af;font-weight:700}.category-client-label-list{grid-gap:.45rem;display:grid;gap:.45rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.category-client-label-option{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:.5rem;padding:.5rem .6rem}.category-client-label-option input{accent-color:#4f46e5}.category-client-label-name{color:#1f2937;flex:1 1;font-size:.85rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-client-label-count{color:#6b7280;font-size:.78rem;font-weight:600}.category-shift-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;font-size:.9rem;justify-content:space-between;margin:.35rem 0 .45rem;padding:.35rem 0}.category-shift-current-label{color:#6b7280;font-weight:500}.category-shift-current-value{color:#111827;font-size:.95rem;font-weight:700}.category-shift-controls{display:block;margin-bottom:.35rem}.category-move-select{border:1px solid #d1d5db;border-radius:6px;color:#111827;font-size:.9rem;min-width:min(100%,360px);padding:.5rem .75rem}.category-shift-edit-label{color:#4b5563;font-size:.85rem;font-weight:600;margin-bottom:.35rem;margin-top:.35rem}.category-shift-date-input{border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;padding:.45rem .6rem;width:100%}.category-shift-date-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626;outline:none}.category-shift-apply-button{background:#2563eb;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:.45rem .75rem}.category-shift-apply-button:hover:not(:disabled){background:#1d4ed8}.category-shift-apply-button:disabled{cursor:not-allowed;opacity:.55}.category-shift-empty{display:block;font-weight:600;margin-bottom:.35rem}.category-shift-actions{align-items:center;border-top:1px solid #e5e7eb;display:flex;gap:.5rem;justify-content:flex-end;margin-top:.9rem;padding-top:.9rem}.capacity-config-grid{grid-gap:.6rem;display:grid;gap:.6rem}.capacity-config-row{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;gap:.8rem;justify-content:space-between;padding:.35rem 0}.capacity-config-label{color:#1f2937;font-weight:600}.capacity-config-input{border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;padding:.45rem .6rem;width:120px}.capacity-config-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626;outline:none}.user-management-error{color:#b91c1c;font-weight:600;margin:.2rem 0 .7rem}.user-management-table-wrapper{border:1px solid #e5e7eb;border-radius:8px;max-height:380px;overflow:auto}.user-management-table{border-collapse:collapse;width:100%}.user-management-table td,.user-management-table th{border-bottom:1px solid #e5e7eb;font-size:.85rem;padding:.55rem .6rem;text-align:left;white-space:nowrap}.user-management-table thead th{background:#eff6ff;color:#1e40af;font-weight:700;position:-webkit-sticky;position:sticky;top:0;z-index:1}.user-role-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;min-width:110px;padding:.35rem .45rem}.user-role-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626;outline:none}.category-shift-cancel-button{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#4b5563;cursor:pointer;font-size:.85rem;font-weight:600;padding:.45rem .75rem}.category-shift-cancel-button:hover{background:#f9fafb;border-color:#9ca3af}.category-move-button{background:#fff3;border:none;border-radius:999px;color:#fff;cursor:pointer;flex-shrink:0;font-size:.9rem;height:28px;margin-left:.35rem;opacity:0;transition:opacity .2s ease;width:28px}.category-move-button:hover{background:#ffffff52}.category-move-button:focus-visible{opacity:1;outline:2px solid #ffffff80;outline-offset:2px}.warning-icon{align-items:center;animation:pulse 2s ease-in-out infinite;cursor:help;display:inline-flex;font-size:.9rem;margin-right:.25rem;position:relative}.warning-icon .warning-tooltip{animation:none;background:#1e1e2e;border-radius:6px;box-shadow:0 4px 12px #0000004d;color:#f0f0f0;font-size:.78rem;font-weight:400;left:1.5rem;line-height:1.5;max-width:320px;min-width:220px;opacity:0;padding:.5rem .75rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .15s ease;visibility:hidden;white-space:pre-line;z-index:200}.warning-icon:hover .warning-tooltip{opacity:1;visibility:visible}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.project-effort{color:#6b7280;font-size:.6rem;font-weight:500}.project-name-cell[style*="opacity: 0.5"]{background:#fafafa}.project-name-cell[style*="opacity: 0.5"] .project-name{color:#9ca3af;font-style:italic}.project-name-cell[style*="opacity: 0.5"] .project-effort{color:#d1d5db}.project-status-cell{align-items:center;background:#f9fafb;border-right:2px solid #e5e7eb;display:flex;justify-content:center;padding:.5rem}.status-select{-webkit-appearance:none;appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23374151' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.75rem;font-weight:500;padding:.4rem 2rem .4rem .6rem;transition:all .2s ease;width:100%}.status-select:hover{background-color:#f9fafb;border-color:#9ca3af}.status-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.category-header-cell{background:#e5e7eb;border-bottom:1px solid #d1d5db;border-right:0 solid #d1d5db}.category-header-cell,.total-label-cell{color:#fff;cursor:pointer;flex-direction:row;font-size:.6rem;font-weight:500;justify-content:space-between;min-height:15px;padding:.2rem;transition:background .2s ease}.total-label-cell{background:#667eea}.category-header-cell.clickable:hover{background:#d1d5db}.category-name{display:flex;gap:.5rem}.collapse-icon{color:#ffffffe6;display:inline-block;font-size:.75rem;min-width:12px;transition:transform .2s ease}.category-total-cell{border:1px solid #fff;border-radius:5px;min-height:30px}.category-total-cell-empty{background:#0000!important;border-color:#0000}.empty-category-cell{background-color:#fff}.category-total-value{color:#fff;font-size:.9rem;font-weight:700}.total-label-cell.clickable{cursor:pointer;transition:all .2s ease}.total-label-cell.clickable:hover{background:#5568d3 0}.total-label{align-items:center;display:flex;gap:.5rem}.work-category-breakdown-cell{background:#fafbfc;border-left:3px solid #667eea;font-size:.7rem;padding:.3rem}.schedule-breakdown-row-cell{position:-webkit-sticky;position:sticky;top:calc(var(--controls-sticky-height) + var(--header-row-height) + var(--total-row-height) + var(--breakdown-row-height)*0);top:calc(var(--controls-sticky-height) + var(--header-row-height) + var(--total-row-height) + var(--breakdown-row-index, 0)*var(--breakdown-row-height));z-index:20}.work-category-breakdown-cell:first-child{border-right:2px solid #e5e7eb;left:0;padding-left:2.5rem;position:-webkit-sticky;position:sticky;z-index:21}.work-category-breakdown-name{color:#4b5563;font-size:.9rem;font-weight:600}.work-category-breakdown-value{align-items:center;color:#6b7280;display:flex;font-size:.85rem;font-weight:600;gap:.25rem}.project-timeline-cell{background:#fff;min-height:30px;position:relative}.project-bar{align-items:center;border-radius:4px;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:100%}.project-bar:hover{box-shadow:0 4px 8px #00000026;transform:scale(1.05);z-index:5}.project-bar-effort{color:#fff;font-size:.75rem;font-weight:600;text-shadow:1px 1px 2px #0003;white-space:nowrap}.inactive-project-bar{background-color:initial!important;border-style:dashed;border-width:2px;box-shadow:none}.inactive-project-bar:hover{box-shadow:0 2px 6px #0000001a;transform:scale(1.03)}.inactive-project-bar .project-bar-effort{color:#9ca3af;font-style:italic;text-shadow:none}.total-cell{background:#f3f4f6;border-top:2px solid #d1d5db}.total-value{-webkit-text-fill-color:#0000;-webkit-text-fill-color:#1f2937;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;background-color:#fff;border-radius:6px;box-shadow:0 2px 4px #0000001a;color:#1f2937;font-size:.7rem;font-weight:500;padding:.5rem 1rem}.capacity-warning-icon{align-items:center;animation:pulse 2s ease-in-out infinite;cursor:help;display:inline-flex;font-size:1rem;margin-left:.5rem;vertical-align:middle}.category-total-cell .capacity-warning-icon{font-size:.9rem}.total-cell .capacity-warning-icon{font-size:1.1rem;font-weight:700}.grid-header-right::-webkit-scrollbar,.grid-row-right::-webkit-scrollbar{height:8px}.grid-header-right::-webkit-scrollbar-track,.grid-row-right::-webkit-scrollbar-track{background:#f1f1f1}.grid-header-right::-webkit-scrollbar-thumb,.grid-row-right::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.grid-header-right::-webkit-scrollbar-thumb:hover,.grid-row-right::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width:768px){.schedule-grid{grid-template-columns:280px 1fr}.grid-header-left,.grid-row-left{padding:.75rem 1rem}.project-name{font-size:.85rem}.month-column{font-size:.8rem;padding:1rem .5rem}.month-cell,.month-column{min-width:100px}.project-bar{height:35px}}.admin-panel{display:inline-block;position:relative}.admin-toggle-button{align-items:center;background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer;display:flex;font-size:18px;height:44px;justify-content:center;padding:0;transition:all .2s ease;vertical-align:middle;width:44px}.admin-toggle-button:hover{background-color:#e8e8e8;border-color:#999}.admin-toggle-button:active{background-color:#ddd}.admin-menu{animation:slideDown .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#ffffff0d;box-shadow:0 2px 8px #0000001a;left:calc(100% + 8px);min-width:180px;padding:10px;position:absolute;top:0;z-index:100}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.admin-menu-item{align-items:center;background-color:initial;border:none;cursor:pointer;display:flex;font-size:14px;gap:10px;margin:10px;padding:12px 16px;text-align:left;transition:background-color .2s ease;white-space:nowrap;width:100%}.admin-menu-item:hover{background-color:#f5f5f5}.admin-menu-item:active{background-color:#efefef}.admin-menu-item .backup-icon,.admin-menu-item .export-icon,.admin-menu-item .import-icon{font-size:16px}.client-project-button{background:#4f46e51a;border-radius:8px}.client-project-button:hover{background:#4f46e52e}.user-management-button{background:#0e74901f;border-radius:8px}.user-management-button:hover{background:#0e749038}.client-project-modal-overlay{align-items:center;background:#1118278c;display:flex;inset:0;justify-content:center;position:fixed;z-index:1200}.client-project-modal{background:#fff;border-radius:14px;box-shadow:0 24px 60px #0f172a59;overflow:hidden;width:min(560px,92vw)}.client-project-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.2rem}.client-project-modal-header h2{font-size:1.1rem;margin:0}.client-project-close{background:#0000;border:none;cursor:pointer;font-size:1.1rem}.client-project-form,.client-project-list-section{padding:1rem 1.2rem}.client-project-create-row{display:flex;gap:.6rem;margin-top:.4rem}.client-project-create-row input{border:1px solid #d1d5db;border-radius:8px;flex:1 1;padding:.55rem .65rem}.client-project-create-row button{background:#4f46e5;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.55rem .9rem}.client-project-error{color:#b91c1c;font-size:.85rem;margin:.5rem 0 0}.client-project-list-section h3{font-size:.95rem;margin:0 0 .5rem}.client-project-empty{color:#6b7280;margin:0}.client-project-list{list-style:none;margin:0;max-height:220px;overflow-y:auto;padding:0}.client-project-list li{border:1px solid #e5e7eb;border-radius:8px;padding:.45rem .55rem}.client-project-list li+li{margin-top:.45rem}.comments-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:3200}.comments-modal{display:flex;flex-direction:column;max-height:80vh;max-width:700px;width:min(700px,92vw)}.comments-modal-body{background-color:#f9f9f9;flex:1 1;overflow-y:auto;padding:20px}.comments-list{display:flex;flex-direction:column;gap:15px}.comment-item{background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:12px}.comment-header{align-items:center;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:8px}.comment-header strong{color:#333}.comment-date{color:#999;font-size:.85rem}.comment-content{word-wrap:break-word;color:#555;line-height:1.5}.comments-modal-footer{background-color:#fff;border-top:1px solid #e0e0e0;padding:15px 20px}.comment-form{display:flex;flex-direction:column;gap:10px}.comment-input{border:1px solid #ddd;border-radius:4px;font-family:inherit;font-size:.95rem;min-height:80px;padding:10px;resize:vertical}.comment-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.comment-input:focus{border-color:#06c;box-shadow:0 0 0 2px #0066cc1a;outline:none}.empty-message,.permission-message{color:#999;font-style:italic;padding:20px;text-align:center}.loading{color:#666;padding:20px;text-align:center}.error-message{background-color:#ffebee;border-radius:4px;color:#c62828;font-size:.9rem;padding:10px}.modal-overlay{align-items:center;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;padding:2rem 2rem 1rem}.modal-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#1f2937;font-size:1.75rem;font-weight:700;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;transition:all .2s ease;width:40px}.close-button:hover{background:#f3f4f6;color:#1f2937}.project-form{padding:2rem}.form-group{flex:1 1;margin-bottom:1.5rem}.form-group label{color:#374151;display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.client-projects-checkbox-list{grid-gap:.45rem .8rem;border:2px solid #e5e7eb;border-radius:8px;display:grid;gap:.45rem .8rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));padding:.6rem .75rem}.client-project-checkbox{align-items:center;color:#374151;display:flex;font-size:.92rem;gap:.45rem}.client-projects-empty-message{color:#6b7280;font-size:.9rem;margin:0}.form-group input[type=date],.form-group input[type=number],.form-group input[type=text],.form-group select{border:2px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:1rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.form-group select{-webkit-appearance:none;appearance:none;background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill='%23374151' d='M8 12 2 6h12z'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;cursor:pointer;padding-right:2.5rem}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-row{display:flex;gap:1rem;margin-bottom:1.5rem}.form-actions-row{margin-bottom:1.25rem;margin-top:-.5rem}.start-now-button{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.55rem .95rem;transition:background-color .2s ease}.start-now-button:hover{background:#1d4ed8}.start-now-button:disabled{background:#93c5fd;cursor:not-allowed}.color-input-wrapper{align-items:center;display:flex;gap:.75rem}.form-group input[type=color]{border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;height:46px;transition:all .2s ease;width:60px}.form-group input[type=color]:hover{border-color:#667eea}.color-text-input{border:2px solid #e5e7eb;border-radius:8px;flex:1 1;font-family:monospace;font-size:1rem;padding:.75rem 1rem;transition:all .2s ease}.color-text-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-actions{align-items:center;border-top:2px solid #e5e7eb;display:flex;gap:1rem;justify-content:space-between;margin-top:2rem;padding-top:1.5rem}.form-actions-left{flex:1 1}.form-actions-right{display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end}.cancel-button,.delete-button,.save-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 2rem;transition:all .2s ease}.cancel-button{background:#f3f4f6;color:#6b7280}.cancel-button:hover{background:#e5e7eb;color:#374151}.cancel-button:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;opacity:.75}.manage-tasks-wrapper{display:inline-flex;position:relative}.disabled-reason-tooltip{background:#1f2937;border-radius:6px;bottom:calc(100% + 8px);box-shadow:0 8px 20px #00000040;color:#fff;font-size:.78rem;left:50%;line-height:1.35;max-width:260px;opacity:0;padding:.5rem .65rem;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%);transition:opacity .15s ease;visibility:hidden;white-space:normal;width:-webkit-max-content;width:max-content;z-index:20}.disabled-reason-tooltip:after{border:6px solid #0000;border-top-color:#1f2937;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.manage-tasks-wrapper:hover .disabled-reason-tooltip{opacity:1;visibility:visible}.save-button{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d}.save-button:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.save-button:active{transform:translateY(0)}.delete-button{background:#fee2e2;border:2px solid #fecaca;color:#dc2626}.delete-button:hover{background:#fecaca;border-color:#dc2626;color:#b91c1c}.delete-button:active{transform:scale(.98)}@media (max-width:768px){.modal-content{margin:1rem;width:95%}.modal-header,.project-form{padding:1.5rem}.form-row{gap:0}.form-actions,.form-row{flex-direction:column}.form-actions-left{order:2}.form-actions-right{flex-direction:column-reverse;order:1}.cancel-button,.delete-button,.save-button{width:100%}}.task-modal-overlay{align-items:stretch;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0009;display:flex;inset:0;justify-content:stretch;position:fixed;z-index:1300}.task-modal{background:#fff;border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100vh;overflow:hidden;width:100vw}.task-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.25rem}.task-modal-header h3{margin:0}.task-modal-body{flex:1 1;overflow-y:auto;padding:1rem 1.25rem}.task-summary{color:#374151;font-size:.9rem;gap:1rem}.task-actions-top,.task-summary{display:flex;flex-wrap:wrap;margin-bottom:.75rem}.task-actions-top{gap:.5rem}.task-actions-bottom{display:flex;justify-content:flex-start;margin-top:.75rem}.task-add-button{background:#2563eb}.task-add-button,.task-export-button{border:none;border-radius:6px;color:#fff;cursor:pointer;padding:.4rem .8rem}.task-export-button{background:#0f766e}.task-list{grid-gap:.5rem;margin-bottom:1rem}.task-list,.task-row{display:grid;gap:.5rem}.task-row{grid-gap:.5rem;align-items:center;grid-template-columns:1.8fr 1fr .6fr auto}.task-name-input,.task-week-count-input,.task-week-input{border:1px solid #d1d5db;border-radius:6px;padding:.4rem .5rem}.task-grid-wrapper{border:1px solid #e5e7eb;border-radius:8px;max-height:min(52vh,560px);overflow:auto}.task-schedule-grid{display:grid;min-width:-webkit-max-content;min-width:max-content}.task-grid-cell{align-items:center;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;display:flex;font-size:.75rem;justify-content:center;min-height:34px;padding:.25rem .4rem}.task-grid-header{background:#f3f4f6;border-bottom:1px solid #9ca3af;border-right:1px solid #9ca3af;color:#374151;font-weight:600;white-space:nowrap}.task-grid-month-header{background:#e5edff;border-bottom:1px solid #6b7280;color:#1e40af;font-size:.78rem;font-weight:700}.task-grid-week-header{background:#eff6ff;border-bottom:1px solid #6b7280;color:#1f2937;font-size:.72rem}.task-grid-sticky{left:0;position:-webkit-sticky;position:sticky;z-index:2}.task-grid-task-name{background:#fafafa;color:#1f2937;font-weight:500;gap:.5rem;justify-content:space-between}.task-grid-task-main{display:flex;flex-direction:column;gap:.35rem;width:100%}.task-grid-name-input{border:1px solid #d1d5db;border-radius:6px;font-size:.78rem;min-width:120px;padding:.35rem .45rem;width:100%}.task-grid-name-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26;outline:none}.task-grid-status-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:.74rem;padding:.3rem .4rem}.task-grid-status-select:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f;outline:none}.task-week-cell{background:#fff}.task-week-cell.clickable{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.task-week-cell.clickable:hover{background:#f8fafc}.task-week-cell.clickable:active{box-shadow:inset 0 0 0 2px #2563eb40}.task-week-cell.clickable:focus-visible{outline:2px solid #2563eb;outline-offset:-2px;z-index:1}.task-week-cell.action-extend-backward:hover{background:#7c3aed1f}.task-week-cell.action-extend-forward:hover{background:#2563eb1f}.task-week-cell.action-shorten:hover{background:#f59e0b33}.task-week-cell.action-set-initial:hover{background:#10b9812e}.task-week-cell.active{background:#10b98140;box-shadow:inset 0 0 0 1px #10b98173}.task-week-cell.active.clickable:hover{background:#10b98159}.task-delete-button{background:#fee2e2;border:1px solid #fecaca;border-radius:6px;color:#b91c1c}.task-comments-button,.task-delete-button{cursor:pointer;flex-shrink:0;padding:.4rem .6rem}.task-comments-button{background:#dbeafe;border:1px solid #bae6fd;border-radius:6px;color:#0369a1}.task-delete-button:hover{background:#fecaca;color:#991b1b}.task-comments-button:hover{background:#bae6fd;color:#0c4a6e}.task-grid-task-move{display:flex;flex-direction:column;gap:.35rem;margin-top:.45rem;width:100%}.task-grid-move-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:.74rem;padding:.32rem .4rem}.task-grid-move-select:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1f;outline:none}.task-move-button{background:#ede9fe;border:1px solid #ddd6fe;border-radius:6px;color:#5b21b6;cursor:pointer;padding:.35rem .55rem}.task-move-button:hover{background:#ddd6fe}.task-week-menu{background:#fff;border:1px solid #d1d5db;border-radius:8px;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column;min-width:140px;overflow:hidden;position:fixed;transform:translate(-50%,-10px);z-index:1500}.task-week-menu-item{background:#fff;border:none;color:#1f2937;cursor:pointer;font-size:.82rem;padding:.5rem .65rem;text-align:left}.task-week-menu-item:hover{background:#f3f4f6}.task-week-menu-cancel{border-top:1px solid #e5e7eb;color:#6b7280}.task-weekly-breakdown{border-top:1px solid #e5e7eb;margin-top:.75rem;padding-top:.75rem}.task-weekly-breakdown h4{margin-top:0}.task-empty{color:#6b7280;font-style:italic}.task-modal-footer{background:#fff;border-top:1px solid #e5e7eb;display:flex;gap:.5rem;justify-content:flex-end;padding:1rem 1.25rem}@media (max-width:900px){.task-row{grid-template-columns:1fr}.task-modal-footer{justify-content:stretch}.task-modal-footer .cancel-button,.task-modal-footer .save-button{flex:1 1}}.backup-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.backup-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:700px;overflow:hidden;width:90%}.backup-modal-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.backup-modal-header h2{font-size:1.5rem;font-weight:700;margin:0}.backup-modal-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:36px;justify-content:center;transition:all .2s ease;width:36px}.backup-modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.backup-tabs{background:#f9fafb;border-bottom:2px solid #e5e7eb;display:flex}.backup-tab{background:#0000;border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:1rem 1.5rem;transition:all .2s ease}.backup-tab:hover{background:#667eea0d;color:#667eea}.backup-tab.active{background:#fff;border-bottom-color:#667eea;color:#667eea}.backup-modal-content{flex:1 1;overflow-y:auto;padding:2rem}.backup-description{color:#6b7280;line-height:1.6;margin-bottom:1.5rem}.backup-message{align-items:center;border-radius:8px;display:flex;font-weight:500;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.5rem}.backup-message.error{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}.backup-message.success{background:#d1fae5;border:1px solid #a7f3d0;color:#065f46}.backup-message-icon{font-size:1.25rem}.backup-form-group{margin-bottom:1.5rem}.backup-form-group label{color:#374151;display:block;font-weight:600;margin-bottom:.5rem}.backup-form-group input{border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.backup-form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.backup-form-group input:disabled{background:#f3f4f6;cursor:not-allowed}.backup-form-group small{color:#6b7280;display:block;font-size:.875rem;margin-top:.5rem}.backup-action-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;padding:1rem 1.5rem;transition:all .2s ease;width:100%}.backup-action-button:disabled{cursor:not-allowed;opacity:.5}.save-button{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 6px #10b98133;color:#fff}.save-button:hover:not(:disabled){box-shadow:0 6px 12px #10b9814d;transform:translateY(-2px)}.load-button{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 6px #3b82f633;color:#fff}.load-button:hover:not(:disabled){box-shadow:0 6px 12px #3b82f64d;transform:translateY(-2px)}.backup-empty,.backup-loading{color:#6b7280;padding:3rem 1rem;text-align:center}.backup-empty p{margin:.5rem 0}.backup-schedule-list{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:1.5rem;max-height:400px;overflow-y:auto}.backup-schedule-item{align-items:center;border-bottom:1px solid #e5e7eb;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.5rem;transition:all .2s ease}.backup-schedule-item:last-child{border-bottom:none}.backup-schedule-item:hover{background:#f9fafb}.backup-schedule-item.selected{background:#eff6ff;border-left:4px solid #3b82f6}.backup-schedule-info{flex:1 1}.backup-schedule-info h4{color:#1f2937;font-size:1.1rem;margin:0 0 .5rem}.backup-schedule-meta{color:#6b7280;display:flex;flex-wrap:wrap;font-size:.875rem;gap:1rem}.backup-delete-button{background:#fee2e2;border:none;border-radius:6px;color:#dc2626;cursor:pointer;font-size:1.25rem;min-width:40px;padding:.5rem .75rem;transition:all .2s ease}.backup-delete-button:hover:not(:disabled){background:#fecaca;transform:scale(1.1)}.backup-delete-button:disabled{cursor:not-allowed;opacity:.5}.backup-modal-content::-webkit-scrollbar,.backup-schedule-list::-webkit-scrollbar{width:8px}.backup-modal-content::-webkit-scrollbar-track,.backup-schedule-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.backup-modal-content::-webkit-scrollbar-thumb,.backup-schedule-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.backup-modal-content::-webkit-scrollbar-thumb:hover,.backup-schedule-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.login-page{background:linear-gradient(135deg,#1a1f36,#2d3561);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh}.login-card,.login-page{align-items:center;display:flex}.login-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;flex-direction:column;gap:16px;max-width:380px;padding:48px 40px;width:100%}.login-logo{font-size:48px;line-height:1}.login-title{color:#1a1f36;font-size:22px;font-weight:700;margin:0}.login-subtitle{color:#6b7280;font-size:14px;margin:0}.login-error{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;color:#b91c1c;font-size:13px;padding:10px 14px;text-align:center;width:100%}.login-btn-azure{align-items:center;background:#fff;border:1.5px solid #d1d5db;border-radius:6px;color:#1a1f36;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:12px;justify-content:center;padding:11px 16px;transition:background .15s,border-color .15s;width:100%}.login-btn-azure:hover{background:#f3f4f6;border-color:#9ca3af}.login-ms-icon{flex-shrink:0;height:20px;width:20px}.login-divider{align-items:center;display:flex;justify-content:center;width:100%}.login-local-toggle{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:12px;padding:4px 8px}.login-local-toggle:hover{color:#6b7280}.login-local-form{display:flex;flex-direction:column;gap:10px;width:100%}.login-local-form input{border:1.5px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:14px;outline:none;padding:10px 12px;transition:border-color .15s;width:100%}.login-local-form input:focus{border-color:#2d3561}.login-btn-local{background:#2d3561;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:15px;font-weight:500;padding:11px;transition:background .15s;width:100%}.login-btn-local:hover:not(:disabled){background:#1a1f36}.login-btn-local:disabled{cursor:not-allowed;opacity:.6}
/*# sourceMappingURL=main.6017c490.css.map*/