.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:20px;box-shadow:0 20px 60px #00000026;width:90%;max-width:520px;max-height:90vh;overflow:auto;animation:slideUp .4s cubic-bezier(.4,0,.2,1);border:1px solid rgba(226,232,240,.8)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2rem 1.5rem;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#fff,#f8fafc)}.modal-header h2{font-size:1.625rem;font-weight:700;color:#1e293b;letter-spacing:-.5px}.modal-close{background:none;border:none;font-size:2rem;color:#999;cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:#f0f0f0;color:#333}.modal-form{padding:2rem}.form-group{margin-bottom:1.75rem}.form-group label{display:block;margin-bottom:.625rem;font-weight:600;color:#1e293b;font-size:.9375rem;letter-spacing:-.2px}.form-group input[type=text],.form-group textarea,.form-group select{width:100%;padding:.875rem 1rem;border:1.5px solid #e2e8f0;border-radius:10px;font-size:.9375rem;font-family:inherit;transition:all .25s cubic-bezier(.4,0,.2,1);background:#fff}.form-group input[type=text]:hover,.form-group textarea:hover,.form-group select:hover{border-color:#cbd5e1}.form-group input[type=text]:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--shadow-focus);background:var(--color-bg-primary)}.duration-dropdown-wrapper{position:relative;width:100%}.duration-dropdown{width:100%;padding:.875rem 2.5rem .875rem 1rem;border:1.5px solid #e2e8f0;border-radius:10px;font-size:.9375rem;font-family:inherit;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);background:#fff;color:#1e293b;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none}.duration-dropdown:hover{border-color:#cbd5e1;background:#f8fafc}.duration-dropdown:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--shadow-focus);background:var(--color-bg-primary)}.duration-dropdown option{padding:.75rem 1rem;font-weight:500;color:#1e293b;background:#fff}.duration-dropdown option:hover{background:#f8fafc}.duration-dropdown option:checked{background:linear-gradient(135deg,var(--color-primary-gradient-start) 0%,var(--color-primary-gradient-end) 100%);color:#fff}.dropdown-arrow{position:absolute;right:1rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#64748b;font-size:.75rem;transition:transform .25s cubic-bezier(.4,0,.2,1)}.duration-dropdown:focus+.dropdown-arrow{transform:translateY(-50%) rotate(180deg);color:var(--color-primary)}.form-group input[type=text]:disabled{background:#f5f5f5;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:100px}.color-picker-group{display:flex;gap:.75rem;align-items:center}.color-picker-group input[type=color]{width:70px;height:45px;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .2s ease}.color-picker-group input[type=color]:hover{border-color:#cbd5e1;transform:scale(1.05)}.color-picker-group input[type=text]{flex:1}.btn-random-color{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border:1.5px solid #e2e8f0;border-radius:10px;padding:.625rem 1rem;cursor:pointer;font-size:1.25rem;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.btn-random-color:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);transform:rotate(90deg) scale(1.1);box-shadow:0 2px 8px #0000001a}.btn-random-color:active{transform:rotate(90deg) scale(1)}.modal-actions{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.modal-actions-right{display:flex;gap:.75rem}.btn{padding:.875rem 1.75rem;border:none;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);letter-spacing:.3px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary-gradient-start) 0%,var(--color-primary-gradient-end) 100%);color:#fff;box-shadow:0 2px 8px var(--shadow-primary)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px var(--shadow-primary-hover);background:linear-gradient(135deg,var(--color-primary-gradient-hover-start) 0%,var(--color-primary-gradient-hover-end) 100%)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px var(--shadow-primary)}.btn-secondary{background:#f0f0f0;color:#333}.btn-secondary:hover:not(:disabled){background:#e0e0e0}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background:#c82333}.person-selector{display:flex;flex-direction:column;gap:.625rem;max-height:220px;overflow-y:auto;padding:.75rem;border:1.5px solid #e2e8f0;border-radius:12px;background:#f8fafc}.person-select-item{display:flex;align-items:center;gap:.875rem;padding:1rem;border-radius:10px;border-left:4px solid;transition:all .25s cubic-bezier(.4,0,.2,1);font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;border:1px solid transparent}.person-select-item:hover:not(.disabled){background:var(--color-bg-hover)!important;transform:translate(3px);border-color:var(--color-border);box-shadow:0 2px 6px #0000000d}.person-select-item.selected{font-weight:600}.person-select-item.disabled{cursor:not-allowed;opacity:.7}.person-select-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.person-select-name{flex:1}.person-select-check{color:#10b981;font-size:1.375rem;font-weight:700;margin-left:auto;background:#d1fae5;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #10b98133}.person-selector::-webkit-scrollbar{width:6px}.person-selector::-webkit-scrollbar-track{background:#f1f1f1}.person-selector::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.person-selector::-webkit-scrollbar-thumb:hover{background:#555}.task-detail-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;pointer-events:none}.task-detail-panel{position:fixed;background:#fff;border-radius:20px;box-shadow:0 20px 60px #00000026;min-width:380px;max-width:520px;max-height:450px;display:flex;flex-direction:column;overflow:hidden;animation:slideIn .3s cubic-bezier(.4,0,.2,1);pointer-events:auto;z-index:2001;border:1px solid rgba(226,232,240,.8)}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.task-detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.75rem;border-bottom:1px solid #f1f5f9;border-left:4px solid;background:linear-gradient(135deg,#f8fafc,#fff)}.task-detail-title-section{flex:1}.task-detail-name{font-size:1.375rem;font-weight:700;color:#1e293b;margin:0 0 1rem;line-height:1.4;letter-spacing:-.3px}.task-detail-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.task-detail-persons{display:flex;flex-wrap:wrap;gap:.5rem}.task-detail-person{font-size:.8125rem;font-weight:600;padding:.375rem .875rem;border-radius:12px;box-shadow:0 1px 3px #0000001a}.task-detail-close{background:none;border:none;font-size:1.5rem;color:#999;cursor:pointer;line-height:1;padding:.25rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s ease;flex-shrink:0}.task-detail-close:hover{background:#f0f0f0;color:#333}.task-detail-content{padding:1.75rem;overflow-y:auto;flex:1;background:#fff}.task-detail-description{font-size:.9375rem;line-height:1.75;color:#475569;white-space:pre-wrap;word-wrap:break-word;letter-spacing:.1px}.task-detail-empty{padding:2rem 1.25rem;text-align:center;color:#999;font-style:italic;font-size:.875rem}.task-detail-content::-webkit-scrollbar{width:6px}.task-detail-content::-webkit-scrollbar-track{background:#f1f1f1}.task-detail-content::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.task-detail-content::-webkit-scrollbar-thumb:hover{background:#555}.task-cell{min-height:80px;padding:1rem;border:1px solid #e2e8f0;background:#fff;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;align-items:stretch}.task-cell:hover{background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-bg-primary) 100%);border-color:var(--color-accent);box-shadow:0 2px 8px var(--shadow-focus);transform:translateY(-1px)}.task-cell.drag-over{background:linear-gradient(135deg,#e0f2fe,#bae6fd);border-color:var(--color-primary);border-width:2px;border-style:dashed;box-shadow:0 4px 16px #3b82f64d;transform:scale(1.02)}.task-count-badge{position:absolute;top:8px;right:8px;background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-primary) 100%);color:#fff;font-size:.6875rem;padding:4px 8px;border-radius:12px;font-weight:700;z-index:5;box-shadow:0 2px 6px var(--shadow-primary);letter-spacing:.3px}.task-cell-empty{color:#94a3b8;font-size:.875rem;text-align:center;font-style:italic;width:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem 0;transition:all .2s ease}.task-cell:hover .task-cell-empty{color:#64748b;transform:scale(1.02)}.task-list{display:flex;flex-direction:column;gap:6px;flex:1;width:100%}.task-item{padding:.625rem .875rem;border-radius:8px;font-size:.875rem;cursor:grab;transition:all .25s cubic-bezier(.4,0,.2,1);word-break:break-word;position:relative;overflow:hidden;border:1px solid transparent;border-left-width:4px;font-weight:500;-webkit-user-select:none;user-select:none}.task-item:active{cursor:grabbing}.task-item:hover:not(.dragging){transform:translate(3px);box-shadow:0 4px 12px #0000001f;border-color:currentColor;opacity:.9}.task-item.dragging{opacity:.5;transform:scale(.95);cursor:grabbing}.task-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-item[data-has-description=true]:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);background:#000000e6;color:#fff;padding:8px 12px;border-radius:6px;font-size:.875rem;white-space:pre-wrap;max-width:300px;word-wrap:break-word;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:1000;box-shadow:0 4px 12px #0000004d}.task-item[data-has-description=true]:hover:after{opacity:1;transform:translate(-50%) translateY(-12px)}.weekly-table-container{background:#fff;border-radius:16px;box-shadow:0 4px 24px #00000014;overflow:hidden;border:1px solid rgba(226,232,240,.8)}.loading{text-align:center;padding:3rem;font-size:1.25rem;color:#666}.table-header{display:flex;background:linear-gradient(180deg,#fff,#f8fafc);border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.table-header-left{min-width:300px;flex:0 0 auto;padding:1.25rem;border-right:1px solid #e2e8f0;background:#fff;position:relative}.table-header-right{flex:1;overflow-x:auto;display:flex;align-items:stretch}.week-headers{display:flex;min-width:100%;align-items:stretch}.week-header{min-width:200px;flex:1 1 0;padding:1.25rem 1rem;text-align:center;border-right:1px solid #e2e8f0;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;flex-shrink:0}.week-header.current-week{background:linear-gradient(135deg,var(--color-bg-tertiary) 0%,var(--color-border) 100%);border-bottom:3px solid var(--color-accent);font-weight:600;box-shadow:inset 0 -3px 0 var(--color-accent)}.week-title{font-size:.9rem;color:#333;margin-bottom:.25rem}.current-indicator{font-size:.75rem;color:var(--color-accent);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.table-body{display:flex;overflow-x:auto}.persons-column{min-width:300px;flex:0 0 auto;border-right:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fafc);display:flex;flex-direction:column;position:relative}.persons-column>.person-row{flex-shrink:0}.person-row{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-bottom:1px solid #f1f5f9;border-left:4px solid;background:#fff;transition:all .25s cubic-bezier(.4,0,.2,1);min-height:80px;box-sizing:border-box;cursor:move;-webkit-user-select:none;user-select:none}.person-row:hover{background:linear-gradient(90deg,#f8fafc,#fff);box-shadow:inset 4px 0 0 currentColor;transform:translate(2px)}.person-row.dragging{opacity:.5;cursor:grabbing}.person-row.drag-over{border-top:3px solid var(--color-accent);background:var(--color-bg-tertiary)}.person-drag-handle{color:#94a3b8;font-size:1.2rem;cursor:grab;padding:.5rem;margin-right:.5rem;-webkit-user-select:none;user-select:none;display:flex;align-items:center;line-height:1;border-radius:6px;transition:all .2s ease}.person-row.dragging .person-drag-handle{cursor:grabbing}.person-drag-handle:hover{color:var(--color-accent);background:var(--color-bg-tertiary)}.person-info{display:flex;align-items:center;gap:.75rem;flex:1}.person-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}.person-name{font-weight:600;color:#1e293b;font-size:.9375rem;letter-spacing:-.2px}.person-edit-btn{background:none;border:none;color:#999;cursor:pointer;font-size:1.25rem;padding:.25rem .5rem;border-radius:4px;transition:all .2s ease;opacity:0}.person-row:hover .person-edit-btn{opacity:1}.person-edit-btn:hover{background:#f0f0f0;color:var(--color-accent)}.empty-state{padding:2rem;text-align:center;color:#999;font-style:italic}.tasks-grid{flex:1;display:flex;flex-direction:column;overflow-x:auto}.tasks-grid .person-tasks-row{flex-shrink:0}.person-tasks-row{display:flex;border-bottom:1px solid #e0e0e0;align-items:stretch;min-height:80px}.person-tasks-row .task-cell{flex:1 1 0;min-width:200px;flex-shrink:0}.resize-handle{width:4px;background:transparent;cursor:col-resize;position:relative;z-index:20;flex-shrink:0;transition:background .2s ease;margin:0}.resize-handle:hover{background:var(--color-accent, #3b82f6)}.resize-handle:after{content:"";position:absolute;left:-2px;top:0;bottom:0;width:8px;cursor:col-resize}.week-resize-handle{align-self:stretch;height:auto;min-height:100%}.btn-add-person{background:linear-gradient(135deg,var(--color-primary-gradient-start) 0%,var(--color-primary-gradient-end) 100%);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%;box-shadow:0 2px 8px var(--shadow-primary);letter-spacing:.3px}.btn-add-person:hover{transform:translateY(-2px);box-shadow:0 8px 20px var(--shadow-primary-hover);background:linear-gradient(135deg,var(--color-primary-gradient-hover-start) 0%,var(--color-primary-gradient-hover-end) 100%)}.btn-add-person:active{transform:translateY(0);box-shadow:0 2px 8px var(--shadow-primary)}.table-body::-webkit-scrollbar,.table-header-right::-webkit-scrollbar{height:10px}.table-body::-webkit-scrollbar-track,.table-header-right::-webkit-scrollbar-track{background:#f1f5f9;border-radius:5px}.table-body::-webkit-scrollbar-thumb,.table-header-right::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:5px;border:2px solid #f1f5f9}.table-body::-webkit-scrollbar-thumb:hover,.table-header-right::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width: 768px){.table-header-left,.persons-column{min-width:120px}.week-header,.person-tasks-row .task-cell{min-width:100px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary-gradient-start) 0%,var(--color-primary-gradient-end) 100%);padding:2rem;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,.1) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none}.login-card{background:#fff;border-radius:24px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:420px;padding:3rem;position:relative;z-index:1;animation:slideUp .4s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:2.5rem}.login-header h1{font-size:2rem;font-weight:700;color:#1e293b;margin-bottom:.5rem;letter-spacing:-.5px}.login-header p{font-size:.9375rem;color:#64748b;margin:0}.login-form{display:flex;flex-direction:column;gap:1.5rem}.login-error{background:#fee2e2;color:#dc2626;padding:.875rem 1rem;border-radius:10px;font-size:.875rem;font-weight:500;border:1px solid #fecaca;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.login-form .form-group{display:flex;flex-direction:column;gap:.625rem}.login-form .form-group label{font-size:.9375rem;font-weight:600;color:#1e293b;letter-spacing:-.2px}.login-form .form-group input{width:100%;padding:.875rem 1rem;border:1.5px solid #e2e8f0;border-radius:10px;font-size:.9375rem;font-family:inherit;transition:all .25s cubic-bezier(.4,0,.2,1);background:#fff}.login-form .form-group input:hover{border-color:#cbd5e1}.login-form .form-group input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--shadow-focus)}.login-button{background:linear-gradient(135deg,var(--color-primary-gradient-start) 0%,var(--color-primary-gradient-end) 100%);color:#fff;border:none;padding:1rem 1.5rem;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);margin-top:.5rem;box-shadow:0 2px 8px var(--shadow-primary);letter-spacing:.3px}.login-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px var(--shadow-primary-hover);background:linear-gradient(135deg,var(--color-primary-gradient-hover-start) 0%,var(--color-primary-gradient-hover-end) 100%)}.login-button:active{transform:translateY(0);box-shadow:0 2px 8px var(--shadow-primary)}.login-footer{margin-top:2rem;text-align:center}.login-hint{font-size:.8125rem;color:#94a3b8;line-height:1.5;margin:0}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,var(--color-primary-gradient-start) 0%,var(--color-primary-gradient-end) 100%);color:#fff;padding:2rem 2.5rem;box-shadow:0 4px 20px var(--shadow-primary);position:relative;overflow:hidden}.app-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 100%);pointer-events:none}.app-header-content{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.app-header h1{font-size:1.875rem;font-weight:700;letter-spacing:-.5px;margin:0}.app-header-user{display:flex;align-items:center;gap:1rem}.user-name{font-size:.9375rem;font-weight:500;opacity:.95}.logout-button{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .25s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.logout-button:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-1px)}.app-main{flex:1;padding:2.5rem;overflow:auto}:root{--color-primary: #1e293b;--color-primary-light: color-mix( in srgb, var(--color-primary) 80%, white 20% );--color-primary-dark: color-mix(in srgb, var(--color-primary) 80%, black 20%);--color-primary-gradient-start: var(--color-primary);--color-primary-gradient-end: var(--color-primary-light);--color-primary-gradient-hover-start: var(--color-primary-dark);--color-primary-gradient-hover-end: var(--color-primary);--color-accent: var(--color-primary-light);--color-accent-light: color-mix(in srgb, var(--color-primary) 60%, white 40%);--color-accent-dark: var(--color-primary);--color-bg-primary: #ffffff;--color-bg-secondary: #f8fafc;--color-bg-tertiary: #f1f5f9;--color-bg-hover: color-mix(in srgb, var(--color-primary) 8%, transparent);--color-border: #e2e8f0;--color-border-hover: #cbd5e1;--color-border-focus: var(--color-accent);--color-text-primary: var(--color-primary);--color-text-secondary: color-mix( in srgb, var(--color-primary) 50%, white 50% );--color-text-tertiary: color-mix( in srgb, var(--color-primary) 30%, white 70% );--shadow-primary: color-mix( in srgb, var(--color-primary-dark) 25%, transparent );--shadow-primary-hover: color-mix( in srgb, var(--color-primary-dark) 40%, transparent );--shadow-focus: color-mix(in srgb, var(--color-accent) 10%, transparent)}@supports not (color: color-mix(in srgb,red,blue)){:root{--color-primary-light: #334155;--color-primary-dark: #0f172a;--color-accent-light: #475569;--color-bg-hover: rgba(30, 41, 59, .08);--color-text-secondary: #64748b;--color-text-tertiary: #94a3b8;--shadow-primary: rgba(15, 23, 42, .25);--shadow-primary-hover: rgba(15, 23, 42, .4);--shadow-focus: rgba(51, 65, 85, .1)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
