.login-page{min-height:100vh;display:flex}.login-brand-panel{width:420px;flex-shrink:0;background:var(--sidebar-bg, #0f172a);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl);position:relative;overflow:hidden}.login-brand-panel:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(ellipse at 30% 50%,rgba(0,153,204,.12) 0%,transparent 60%);pointer-events:none}.login-brand-content{text-align:center;position:relative;z-index:1}.login-brand-logo{width:72px;height:72px;margin-bottom:var(--space-md);filter:brightness(0) invert(1);opacity:.9}.login-brand-title{font-size:2rem;font-weight:700;color:#fff;margin:0 0 var(--space-xs);letter-spacing:-.03em}.login-brand-subtitle{font-size:1rem;color:#ffffff80;margin:0;font-weight:400}.login-brand-footer{position:absolute;bottom:var(--space-lg);left:0;right:0;text-align:center}.login-brand-footer p{font-size:.75rem;color:#ffffff40;margin:0;letter-spacing:.05em;text-transform:uppercase;font-weight:500}.login-form-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background:var(--gray-50, #f9fafb)}.login-form-container{width:100%;max-width:400px}.login-form-header{margin-bottom:var(--space-lg)}.login-form-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--space-xs);letter-spacing:-.02em}.login-form-description{font-size:.9rem;color:var(--text-secondary);margin:0}.login-form{display:flex;flex-direction:column;gap:var(--space-md)}.login-password-wrapper{position:relative}.login-password-wrapper .input{padding-right:2.5rem}.login-password-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:.25rem;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color .15s}.login-password-toggle:hover{color:var(--text-secondary)}.login-submit-btn{width:100%;margin-top:var(--space-xs)}.login-error{background-color:var(--color-error-light, #fde0e7);border:1px solid rgba(239,71,111,.2);color:var(--color-error-dark, #d63557);padding:.75rem 1rem;border-radius:var(--radius-base);font-size:.875rem}.login-form-note{margin-top:var(--space-lg);padding-top:var(--space-base);border-top:1px solid var(--border-light);font-size:.75rem;color:var(--text-tertiary);text-align:center}@media (max-width: 768px){.login-page{flex-direction:column}.login-brand-panel{width:100%;padding:var(--space-xl) var(--space-base);min-height:200px}.login-brand-logo{width:48px;height:48px;margin-bottom:var(--space-sm)}.login-brand-title{font-size:1.5rem}.login-brand-footer{display:none}.login-form-panel{padding:var(--space-lg) var(--space-base)}}.user-list{display:flex;flex-direction:column}.user-list-loading{padding:.75rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.user-list-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;cursor:pointer;transition:background-color .2s ease;border-radius:6px;margin:.125rem .25rem}.user-list-item:hover{background-color:var(--bg-secondary)}.user-list-item.selected{background-color:#0099cc1a}.user-list-name{font-size:.875rem;color:var(--text-primary);font-weight:500}.story-points-badge{display:inline-flex;align-items:center;gap:.25rem;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;flex-shrink:0;white-space:nowrap}.story-points-badge.story-points-small{padding:.125rem .5rem;font-size:.7rem}.story-points-badge.story-points-medium{padding:.25rem .625rem;font-size:.75rem}.story-points-badge.story-points-large{padding:.375rem .75rem;font-size:.875rem}.story-points-badge.has-value{background-color:var(--accent-color);color:#fff}.story-points-badge.has-value:hover{background-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 2px 8px #0099cc4d}.story-points-badge.empty{background-color:#f3f4f6;color:#6b7280;border:1.5px dashed #d1d5db;font-weight:500}.story-points-badge.empty:hover{border-color:#09c;border-style:solid;color:#09c;background-color:#0099cc14;transform:translateY(-1px)}.story-points-input{border-radius:8px;border:2px solid var(--accent-color);background-color:#fff;text-align:center;font-weight:600;color:var(--text-primary);outline:none;box-shadow:0 2px 8px #09c3;transition:all .2s ease}.story-points-input.story-points-small{padding:.125rem .5rem;font-size:.7rem;width:50px}.story-points-input.story-points-medium{padding:.25rem .625rem;font-size:.75rem;width:60px}.story-points-input.story-points-large{padding:.375rem .75rem;font-size:.875rem;width:70px}.story-points-input:focus{border-color:var(--primary-color);box-shadow:0 4px 12px #0099cc4d}.story-points-input::placeholder{color:var(--text-tertiary);font-weight:400}.toast{position:fixed;top:2rem;right:2rem;z-index:9999;min-width:300px;max-width:500px;animation:slideInRight .3s ease-out;border-radius:var(--radius-base);box-shadow:var(--shadow-xl)}.toast-error{background-color:var(--color-error);color:var(--text-inverse)}.toast-success{background-color:var(--color-success);color:var(--text-inverse)}.toast-info{background-color:var(--color-info);color:var(--text-inverse)}.toast-warning{background-color:var(--color-warning);color:var(--text-inverse)}.toast-close{background:transparent;border:none;color:var(--text-inverse);font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;border-radius:var(--radius-sm);transition:var(--transition-base);flex-shrink:0}.toast-close:hover{background-color:#fff3}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 640px){.toast{left:var(--space-base);right:var(--space-base);min-width:auto}}.column-manager-modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-close-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;border-radius:var(--radius-base);transition:var(--transition-base);display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.column-manager-body{flex:1;overflow-y:auto;padding:1.5rem}.manager-description{color:var(--text-secondary);font-size:var(--font-sm);margin-bottom:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-base);border-left:3px solid var(--primary-color)}.column-item{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-base);transition:var(--transition-base)}.column-item:hover{border-color:var(--border-medium);box-shadow:var(--shadow-sm)}.column-drag-handle{cursor:grab;color:var(--text-tertiary);display:flex;align-items:center;padding:.25rem;border-radius:var(--radius-base);transition:var(--transition-base)}.column-drag-handle:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.column-drag-handle:active{cursor:grabbing}.column-color-preview{width:40px;height:40px;border-radius:var(--radius-base);border:2px solid var(--border-light);flex-shrink:0}.column-title{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-base)}.column-id{font-size:var(--font-sm);color:var(--text-tertiary);font-family:Courier New,monospace}.btn-icon{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:var(--radius-base);transition:var(--transition-base);display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-icon.btn-danger:hover{background:var(--color-error);color:#fff}.btn-add-column{width:100%;padding:1rem;border:2px dashed var(--border-medium);background:none;border-radius:var(--radius-base);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--text-secondary);font-weight:var(--font-weight-medium);transition:var(--transition-base)}.btn-add-column:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--bg-secondary)}.column-form{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:#fff;border:1px solid var(--border-medium);border-radius:var(--radius-base)}.color-picker{display:flex;align-items:center;gap:1rem}.color-picker input[type=color]{width:60px;height:40px;border:1px solid var(--border-medium);border-radius:var(--radius-base);cursor:pointer;background:none}.color-picker input[type=color]::-webkit-color-swatch-wrapper{padding:0;border-radius:var(--radius-base)}.color-picker input[type=color]::-webkit-color-swatch{border:none;border-radius:calc(var(--radius-base) - 2px)}.color-value{font-family:Courier New,monospace;color:var(--text-secondary);font-size:var(--font-sm)}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}@media (max-width: 640px){.column-manager-modal{width:95%;max-height:90vh}.column-item{flex-wrap:wrap}.column-actions{width:100%;justify-content:flex-end}}.tiptap-editor{border:1px solid var(--border-color);border-radius:var(--radius-base);background-color:#fff;overflow:hidden;transition:border-color .2s ease}.tiptap-editor:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb, 106, 117, 249),.1)}.tiptap-editor.read-only{border:none;background-color:transparent}.editor-menubar{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.editor-menu-btn{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:.25rem .5rem;border:none;background-color:transparent;color:var(--text-secondary);font-size:.875rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.editor-menu-btn:hover{background-color:var(--bg-primary);color:var(--text-primary)}.editor-menu-btn.is-active{background-color:var(--primary-color);color:#fff}.editor-menu-btn:active{transform:scale(.95)}.editor-menu-btn:disabled{opacity:.5;cursor:not-allowed}.tiptap-editor .ProseMirror{padding:1rem;min-height:150px;max-height:400px;overflow-y:auto;outline:none;font-size:.9375rem;line-height:1.6;color:var(--text-primary)}.tiptap-editor.read-only .ProseMirror{padding:0;min-height:auto;max-height:none}.tiptap-editor .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-light);pointer-events:none;height:0}.tiptap-editor .ProseMirror h1{font-size:1.875rem;font-weight:700;margin-top:1.5rem;margin-bottom:.75rem;line-height:1.2;color:var(--text-primary)}.tiptap-editor .ProseMirror h1:first-child{margin-top:0}.tiptap-editor .ProseMirror h2{font-size:1.5rem;font-weight:700;margin-top:1.25rem;margin-bottom:.625rem;line-height:1.3;color:var(--text-primary)}.tiptap-editor .ProseMirror h2:first-child{margin-top:0}.tiptap-editor .ProseMirror h3{font-size:1.25rem;font-weight:600;margin-top:1rem;margin-bottom:.5rem;line-height:1.4;color:var(--text-primary)}.tiptap-editor .ProseMirror h3:first-child{margin-top:0}.tiptap-editor .ProseMirror p{margin:.5rem 0}.tiptap-editor .ProseMirror p:first-child{margin-top:0}.tiptap-editor .ProseMirror p:last-child{margin-bottom:0}.tiptap-editor .ProseMirror strong{font-weight:700}.tiptap-editor .ProseMirror em{font-style:italic}.tiptap-editor .ProseMirror s{text-decoration:line-through}.tiptap-editor .ProseMirror code{background-color:var(--bg-secondary);color:var(--accent-color);padding:.125rem .375rem;border-radius:var(--radius-sm);font-family:Courier New,monospace;font-size:.875em}.tiptap-editor .ProseMirror pre{background-color:#1e1e1e;color:#d4d4d4;padding:1rem;border-radius:var(--radius-base);overflow-x:auto;margin:1rem 0;font-family:Courier New,monospace;font-size:.875rem;line-height:1.5}.tiptap-editor .ProseMirror pre code{background:none;color:inherit;padding:0;font-size:inherit}.tiptap-editor .ProseMirror blockquote{border-left:4px solid var(--primary-color);padding-left:1rem;margin:1rem 0;color:var(--text-secondary);font-style:italic}.tiptap-editor .ProseMirror ul,.tiptap-editor .ProseMirror ol{padding-left:1.5rem;margin:.75rem 0}.tiptap-editor .ProseMirror ul{list-style-type:disc}.tiptap-editor .ProseMirror ol{list-style-type:decimal}.tiptap-editor .ProseMirror li{margin:.25rem 0}.tiptap-editor .ProseMirror li p{margin:0}.tiptap-editor .ProseMirror ul[data-type=taskList]{list-style:none;padding-left:0}.tiptap-editor .ProseMirror ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:.5rem}.tiptap-editor .ProseMirror ul[data-type=taskList] li label{flex-shrink:0;margin-top:.125rem}.tiptap-editor .ProseMirror ul[data-type=taskList] li input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-color)}.tiptap-editor .ProseMirror ul[data-type=taskList] li div{flex:1}.tiptap-editor .ProseMirror ul[data-type=taskList] li[data-checked=true]>div{text-decoration:line-through;color:var(--text-secondary)}.tiptap-editor .ProseMirror a{color:var(--primary-color);text-decoration:underline;cursor:pointer;transition:color .2s ease}.tiptap-editor .ProseMirror a:hover{color:var(--accent-color)}.tiptap-editor .ProseMirror hr{border:none;border-top:2px solid var(--border-color);margin:2rem 0}.tiptap-editor .ProseMirror ::selection{background-color:rgba(var(--primary-color-rgb, 106, 117, 249),.2)}.tiptap-editor .ProseMirror::-webkit-scrollbar{width:8px}.tiptap-editor .ProseMirror::-webkit-scrollbar-track{background:var(--bg-secondary)}.tiptap-editor .ProseMirror::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.tiptap-editor .ProseMirror::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.tiptap-editor .ProseMirror:focus{outline:none}.tiptap-editor .ProseMirror:empty:before{content:attr(data-placeholder);color:var(--text-light);pointer-events:none;position:absolute}.tiptap-editor.read-only .ProseMirror{cursor:default}.tiptap-editor.read-only .ProseMirror ul[data-type=taskList] li input[type=checkbox]{pointer-events:none}.tiptap-editor .ProseMirror img.editor-image{max-width:100%;height:auto;border-radius:var(--radius-base);margin:.75rem 0;display:block;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:box-shadow .2s ease}.tiptap-editor .ProseMirror img.editor-image:hover{box-shadow:0 4px 12px #00000026}.editor-upload-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#ffffffe6;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--primary-color);z-index:10}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors: active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.pdf-viewer-container{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-width:90vw;max-height:90vh;width:1000px;overflow:hidden}.pdf-viewer-header{border-bottom:1px solid var(--border-light);background-color:var(--bg-primary)}.pdf-viewer-zoom{min-width:50px;text-align:center}.pdf-viewer-content{flex:1;overflow:auto;padding:var(--space-lg);display:flex;align-items:center;justify-content:center;background-color:var(--bg-tertiary);position:relative}.pdf-viewer-content .react-pdf__Document{display:flex;justify-content:center}.pdf-viewer-content .react-pdf__Page{max-width:100%;box-shadow:var(--shadow-base)}.pdf-viewer-content .react-pdf__Page__canvas{max-width:100%;height:auto!important}.pdf-viewer-footer{border-top:1px solid var(--border-light);background-color:var(--bg-primary)}@media (max-width: 768px){.pdf-viewer-container{max-width:95vw;max-height:95vh}.pdf-viewer-content{padding:var(--space-sm)}}.image-viewer-container{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:90vw;max-height:90vh;width:90vw;height:90vh;display:flex;flex-direction:column;overflow:hidden}.image-viewer-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-light);flex-shrink:0}.image-viewer-content{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);position:relative}.image-viewer-img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .2s ease;cursor:grab}.image-viewer-img:active{cursor:grabbing}.image-viewer-zoom{min-width:50px;text-align:center}.divider-vertical{width:1px;background:var(--border-light);margin:0 var(--space-xs)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-base);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.image-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background:#0009;border:none;color:#fff;width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,transform .2s ease;z-index:10}.image-nav-btn:hover{background:#000c;transform:translateY(-50%) scale(1.1)}.image-nav-btn:active{transform:translateY(-50%) scale(.95)}.image-nav-prev{left:var(--space-base)}.image-nav-next{right:var(--space-base)}.image-counter{position:absolute;bottom:var(--space-base);left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:var(--space-xs) var(--space-base);border-radius:var(--radius-base);font-size:var(--font-sm);font-weight:500;z-index:10}@media (max-width: 768px){.image-viewer-container{width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0}.image-viewer-header{flex-wrap:wrap}.image-viewer-header>div:last-child{flex-wrap:wrap;gap:var(--space-xs)}.divider-vertical{display:none}}.attachments-list{width:100%}.attachment-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-base);transition:all .2s ease}.attachment-item:hover{background-color:var(--bg-primary);border-color:var(--primary-color)}.attachment-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:#fff;border-radius:var(--radius-sm);color:var(--accent-color)}.attachment-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.attachment-name{font-size:.875rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background-color:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;position:relative;z-index:1}.attachment-action-btn:hover{background-color:#ffffffe6;border-color:var(--border-color);color:var(--primary-color)}.attachment-delete-btn:hover{background-color:#ef4444!important;border-color:#dc2626!important;color:#fff!important}.empty-attachments{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;text-align:center;background-color:#f9fafb;border-radius:8px;border:1.5px dashed #e5e7eb}.empty-attachments-icon{color:#d1d5db;margin-bottom:.75rem;opacity:.6}.project-list{display:flex;flex-direction:column}.project-list-loading{padding:.75rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.project-list-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;cursor:pointer;transition:background-color .2s ease;border-radius:6px;margin:.125rem .25rem}.project-list-item:hover{background-color:var(--bg-secondary)}.project-list-item.selected{background-color:#015e7c1a}.project-list-name{font-size:.875rem;color:var(--text-primary);font-weight:500}.task-comments{display:flex;flex-direction:column;gap:var(--space-base)}.comment-form{display:flex;flex-direction:column;gap:var(--space-sm)}.comment-input-wrapper{display:flex;gap:var(--space-sm);align-items:flex-start}.comment-textarea{flex:1;min-height:40px;max-height:200px;padding:var(--space-sm) var(--space-base);border:1px solid var(--border-medium);border-radius:var(--radius-base);font-family:inherit;font-size:var(--font-sm);color:var(--text-primary);resize:none;transition:all .2s ease;overflow-y:auto}.comment-textarea:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px #0099cc1a}.comment-textarea::placeholder{color:var(--text-tertiary)}.comment-textarea:disabled{opacity:.6;cursor:not-allowed;background-color:var(--bg-secondary)}.comment-actions{padding-left:40px}.comments-list{display:flex;flex-direction:column;gap:var(--space-base);margin-top:var(--space-base)}.comment-item{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-base);background-color:var(--bg-secondary);border-radius:var(--radius-base);transition:background-color .2s ease}.comment-item:hover{background-color:var(--bg-tertiary)}.comment-header{display:flex;align-items:center;gap:var(--space-sm)}.comment-meta{display:flex;align-items:center;flex:1}.comment-date{font-size:var(--font-xs);white-space:nowrap}.comment-delete-btn{opacity:0;transition:opacity .2s ease}.comment-item:hover .comment-delete-btn{opacity:1}.comment-delete-btn:hover{color:var(--error-color)}.comment-body{padding-left:40px}.comment-text{margin:0;font-size:var(--font-sm);color:var(--text-primary);line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0006;z-index:1000;display:flex;justify-content:flex-end;animation:fadeIn .2s ease}.task-sidebar{width:100%;max-width:650px;height:100vh;background-color:#fafafa;box-shadow:-4px 0 20px #0000001a;display:flex;flex-direction:column;animation:slideIn .25s cubic-bezier(.4,0,.2,1);overflow:hidden}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.sidebar-header{background-color:#fff;border-bottom:1px solid #e5e7eb}.task-id-badge{font-size:.875rem;font-weight:600;color:var(--text-secondary);background-color:var(--bg-primary);padding:.25rem .75rem;border-radius:var(--radius-base);font-family:monospace}.sidebar-content{flex:1;overflow-y:auto;padding:0}.sidebar-section{margin-bottom:0;padding:2rem;background-color:#fff;border-bottom:1px solid #e5e7eb}.sidebar-section:last-child{border-bottom:none}.sidebar-section h4{margin-bottom:1.5rem;font-size:.6875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:1px}.sidebar-section .flex.items-center.justify-between.mb-base{align-items:center}.sidebar-section .flex.items-center.justify-between.mb-base h4{margin:0;line-height:1}.section-header-integrated{background:#fff;border-bottom:1px solid #e5e7eb}.task-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.5rem}.task-title-integrated{font-size:1.75rem;font-weight:700;color:#111827;margin:0;line-height:1.3;letter-spacing:-.02em;flex:1}.task-title-integrated.editable-title{cursor:pointer;padding:.25rem .5rem;margin-left:-.5rem;border-radius:var(--radius-base);transition:background-color .2s ease}.task-title-integrated.editable-title:hover{background-color:#f3f4f6}.task-title-input{font-size:1.75rem;font-weight:700;color:#111827;line-height:1.3;letter-spacing:-.02em;flex:1;padding:.25rem .5rem;border:2px solid var(--color-primary);border-radius:var(--radius-base);background-color:#fff;outline:none;font-family:inherit;width:100%}.task-meta-badges{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.status-badge-integrated{display:inline-flex;align-items:center;padding:.5rem .875rem;background-color:#3b82f6;border-radius:12px;font-size:.75rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.5px;line-height:1;cursor:help}.task-assignee-row{position:relative;display:flex;align-items:center;gap:.5rem}.assignee-chip-integrated{display:inline-flex;align-items:center;gap:.625rem;cursor:pointer;transition:opacity .2s ease}.assignee-chip-integrated:hover{opacity:.8}.btn-assign-integrated{display:inline-flex;align-items:center;padding:0;background:none;border:none;color:#9ca3af;font-size:.875rem;font-weight:500;cursor:pointer;transition:color .2s ease}.btn-assign-integrated:hover{color:#6b7280}.description-section{margin-top:2rem}.description-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.description-section h4{margin:0}.btn-edit-description{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background-color:#015e7c;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-edit-description:hover{background-color:#014660;transform:scale(1.1)}.description-actions{display:flex;gap:.5rem}.btn-save-description,.btn-cancel-description{padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s ease;border:none}.btn-save-description{background-color:#015e7c;color:#fff}.btn-save-description:hover:not(:disabled){background-color:#014660}.btn-save-description:disabled{opacity:.5;cursor:not-allowed}.btn-cancel-description{background-color:#f3f4f6;color:#374151;border:1px solid #e5e7eb}.btn-cancel-description:hover:not(:disabled){background-color:#e5e7eb}.description-content{font-size:.9375rem;color:#374151;line-height:1.7}.no-description{font-size:.875rem;color:#9ca3af;font-style:italic;margin:0;padding:1.5rem;text-align:center;background-color:#f9fafb;border-radius:8px;border:1.5px dashed #e5e7eb}.date-item{display:flex;align-items:center;gap:.75rem;padding:.5rem 0}.date-item>.icon{color:#9ca3af;flex-shrink:0}.date-item>div{display:flex;flex-direction:column;gap:.25rem;flex:1}.date-label{font-size:.75rem;color:#6b7280;font-weight:500}.date-value{font-size:.875rem;color:#111827;font-weight:400}.delay-info-section{margin-top:1.5rem;padding:1rem 1.25rem;background-color:#f9fafb;border-radius:10px;border:1px solid #e5e7eb}.delay-status-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;margin-bottom:.875rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.delay-status-label.delay-on-track{color:var(--color-success-dark, #05a57a)}.delay-status-label.delay-warning{color:var(--color-warning-dark, #e6b84f)}.delay-status-label.delay-danger{color:var(--color-error-dark, #d63557)}.delay-details{display:flex;flex-direction:column;gap:.5rem}.delay-detail-row{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.delay-detail-label{color:#6b7280;font-weight:400}.delay-detail-value{color:#111827;font-weight:500}.delay-value-on-track{color:var(--color-success-dark, #05a57a)}.delay-value-warning{color:var(--color-warning-dark, #e6b84f)}.delay-value-danger{color:var(--color-error-dark, #d63557)}.movement-timeline{position:relative;padding-left:2rem}.timeline-entry{position:relative;padding-bottom:1.5rem}.timeline-entry:last-child{padding-bottom:0}.timeline-entry:before{content:"";position:absolute;left:-1.5rem;top:.75rem;bottom:-.75rem;width:2px;background-color:#e5e7eb}.timeline-entry:last-child:before{display:none}.timeline-marker{position:absolute;left:-1.75rem;top:.5rem;width:.5rem;height:.5rem;background-color:#015e7c;border:2px solid white;border-radius:50%;box-shadow:0 0 0 3px #e5e7eb;z-index:1}.timeline-content{background-color:#f9fafb;padding:1rem 1.25rem;border-radius:10px;border:1px solid #e5e7eb;transition:all .2s ease}.timeline-content:hover{border-color:#015e7c;background-color:#f3f4f6}.timeline-header{margin-bottom:.5rem}.timeline-movement{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#111827}.timeline-movement strong{color:#015e7c;font-weight:600}.timeline-movement .icon{color:#9ca3af;flex-shrink:0}.timeline-details{display:flex;align-items:center;gap:.75rem;font-size:.75rem;margin-top:.5rem}.timeline-date{color:#6b7280;font-weight:500}.timeline-duration{color:#015e7c;font-weight:600}.sidebar-content::-webkit-scrollbar{width:6px}.sidebar-content::-webkit-scrollbar-track{background:transparent}.sidebar-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.sidebar-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}.history-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 .5rem;background-color:#015e7c;color:#fff;font-size:.75rem;font-weight:600;border-radius:12px;margin-left:auto}.btn-show-more{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.875rem;margin-top:1.5rem;background-color:#fff;border:1.5px solid #e5e7eb;border-radius:8px;color:#6b7280;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-show-more:hover{background-color:#f9fafb;border-color:#015e7c;color:#015e7c}.demo-url-link{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-primary, #015E7C);text-decoration:none;font-weight:500;transition:opacity .2s ease;max-width:100%;overflow:hidden}.demo-url-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-url-link:hover{opacity:.7;text-decoration:underline}.task-project-row{position:relative}.user-select-dropdown-sidebar{position:absolute;top:100%;left:0;margin-top:.5rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:10;min-width:200px;max-height:300px;overflow-y:auto}.task-sidebar .priority-badge{font-size:.75rem;font-weight:600;padding:.5rem .875rem;border-radius:12px;color:#fff;text-transform:uppercase;letter-spacing:.5px;width:fit-content;line-height:1;display:inline-flex;align-items:center}.task-sidebar .priority-low{background-color:#10b981}.task-sidebar .priority-medium{background-color:#f59e0b}.task-sidebar .priority-high{background-color:#ef4444}.task-sidebar .priority-critical{background-color:#dc2626}.btn-add-attachment{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background-color:#015e7c;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-add-attachment:hover{background-color:#014660;transform:scale(1.1)}@media (max-width: 768px){.task-sidebar{max-width:100%}.sidebar-header{padding:1rem 1.5rem}.sidebar-header h2{font-size:1.25rem}.sidebar-content{padding:0}.sidebar-section{padding:1.5rem}.task-title-minimal{font-size:1.5rem}.meta-grid-minimal{grid-template-columns:1fr;gap:1.25rem}}.kanban-board{width:100%}.kanban-columns{display:flex;gap:1.5rem;align-items:stretch;overflow-x:auto;overflow-y:visible;padding-bottom:1rem}.kanban-columns::-webkit-scrollbar{height:8px}.kanban-columns::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:4px}.kanban-columns::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.kanban-columns::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.kanban-column{background-color:var(--bg-secondary);border-radius:12px;border:2px solid transparent;transition:all .2s ease;min-height:500px;display:flex;flex-direction:column;flex:0 0 320px;min-width:320px}.kanban-column.is-over{border-color:var(--accent-color);box-shadow:0 4px 12px #09c3}.column-header{padding:1.25rem;border-bottom:1px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:12px 12px 0 0;display:flex;justify-content:space-between;align-items:center}.column-title{display:flex;align-items:center;gap:.75rem}.column-title h3{font-size:1rem;font-weight:600;color:var(--text-primary)}.task-count{background-color:var(--bg-primary);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:12px;min-width:24px;text-align:center}.add-task-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--border-color);background-color:transparent;color:var(--accent-color);font-size:1.5rem;line-height:1;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.add-task-btn:hover{background-color:var(--accent-color);color:#fff;border-color:var(--accent-color)}.column-content{padding:1rem;flex:1;display:flex;flex-direction:column;gap:1rem;overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 300px)}.empty-column{text-align:center;padding:3rem 1rem;color:var(--text-secondary);font-size:.875rem;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:2px dashed var(--border-color);border-radius:8px;margin:.5rem;transition:all .2s ease}.empty-column:hover{border-color:var(--accent-color);background-color:#0099cc05}.empty-hint{font-size:.75rem;color:var(--text-light);font-style:italic;margin-top:.25rem}.kanban-card{background-color:#fff;border:1px solid var(--border-color);border-radius:10px;transition:all .2s ease;box-shadow:0 1px 3px #0000000d}.kanban-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.kanban-card.dragging{opacity:.5;box-shadow:0 8px 24px #0003}.card-drag-area{padding:.875rem;cursor:grab}.card-drag-area:active{cursor:grabbing}.drag-overlay .kanban-card{cursor:grabbing;box-shadow:0 8px 24px #0003;transform:rotate(3deg)}.priority-badge{font-size:.625rem;font-weight:var(--font-weight-semibold);padding:.25rem .625rem;border-radius:12px;color:#fff;text-transform:uppercase;letter-spacing:.5px}.priority-medium{background-color:var(--priority-medium)}.kanban-card .card-title{font-size:.875rem;font-weight:500;color:var(--text-primary);margin:0 0 1rem;line-height:1.5}.card-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.card-info{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.card-assignee{position:relative;display:flex;align-items:center}.btn-assign-user{width:28px;height:28px;border-radius:50%;border:2px dashed var(--border-color);background-color:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-assign-user:hover{border-color:var(--primary-color);color:var(--primary-color);background-color:#015e7c0d}.user-select-dropdown{position:absolute;top:100%;left:0;margin-top:.5rem;background-color:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:100;min-width:200px;max-height:300px;overflow-y:auto;pointer-events:auto}.card-delay-indicator{font-size:.6875rem;font-weight:600;display:inline-flex;align-items:center;gap:.25rem;padding:.1875rem .5rem;border-radius:10px;cursor:help;margin-left:auto;line-height:1;white-space:nowrap}.card-delay-indicator.delay-on-track{color:var(--color-success-dark, #05a57a);background-color:var(--color-success-light, #d1fae5)}.card-delay-indicator.delay-warning{color:var(--color-warning-dark, #e6b84f);background-color:var(--color-warning-light, #fff3d9)}.card-delay-indicator.delay-danger{color:var(--color-error-dark, #d63557);background-color:var(--color-error-light, #fde0e7)}.card-time{font-size:.75rem;color:var(--text-secondary);display:flex;align-items:center;gap:.25rem;cursor:help;margin-left:auto}.card-time:hover{color:var(--text-primary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background-color:#fff;border-radius:12px;padding:2rem;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d}.modal-content h3{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-bottom:1.5rem}.modal-content .form-group{margin-bottom:1.25rem}.modal-content label{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.modal-content input,.modal-content textarea,.modal-content select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;font-size:.95rem;transition:border-color .2s ease;font-family:inherit}.modal-content input:focus,.modal-content textarea:focus,.modal-content select:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px #0099cc1a}.modal-content textarea{resize:vertical;min-height:80px}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.btn-primary{background-color:var(--accent-color);color:#fff}.btn-primary:hover{background-color:var(--accent-dark);transform:translateY(-1px);box-shadow:0 4px 12px #0099cc4d}.btn-secondary{background-color:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--bg-primary)}.inline-create-card{background-color:#fff;border:2px solid var(--accent-color);border-radius:10px;padding:1rem;box-shadow:0 2px 8px #0099cc26;animation:slideInCard .2s ease}@keyframes slideInCard{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.inline-create-input-kanban{width:100%;border:none;outline:none;font-size:.875rem;font-weight:500;color:var(--text-primary);padding:.5rem 0;background-color:transparent;margin-bottom:.5rem}.inline-create-input-kanban::placeholder{color:var(--text-tertiary);font-weight:400}.inline-create-hint-kanban{font-size:.7rem;color:var(--text-tertiary);border-top:1px solid var(--border-color);padding-top:.5rem;text-align:center}@media (max-width: 768px){.kanban-board{padding:0}.kanban-columns{gap:1rem;padding:.5rem .5rem 1rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.kanban-column{flex:0 0 280px;min-width:280px;max-width:280px;scroll-snap-align:start;min-height:calc(100vh - 280px)}.column-header{padding:1rem}.column-title h3{font-size:.9rem}.task-count{font-size:.7rem;padding:.2rem .4rem;min-width:20px}.add-task-btn{width:28px;height:28px;font-size:1.25rem}.column-content{padding:.75rem;gap:.75rem;max-height:calc(100vh - 320px)}.empty-column{padding:2rem .75rem;min-height:150px;font-size:.8rem}.empty-hint{font-size:.7rem}.kanban-card{border-radius:8px}.card-drag-area{padding:.75rem}.kanban-card .card-title{font-size:.8rem;margin-bottom:.75rem}.card-tags{gap:.375rem;margin-bottom:.625rem}.priority-badge{font-size:.6rem;padding:.2rem .5rem}.card-info{gap:.375rem}.card-assignee{font-size:.7rem}.btn-assign-user{width:24px;height:24px}.user-select-dropdown{min-width:180px;max-height:250px}.card-delay-indicator{font-size:.625rem;padding:.125rem .375rem}.card-time{font-size:.7rem}.modal-overlay{padding:.5rem}.modal-content{padding:1.25rem;max-width:100%;border-radius:10px}.modal-content h3{font-size:1.125rem;margin-bottom:1rem}.modal-content .form-group{margin-bottom:1rem}.modal-content label{font-size:.8rem;margin-bottom:.375rem}.modal-content input,.modal-content textarea,.modal-content select{padding:.625rem;font-size:.875rem}.modal-actions{gap:.5rem;margin-top:1rem}.btn-primary,.btn-secondary{padding:.625rem 1.25rem;font-size:.875rem}.inline-create-card{padding:.75rem}.inline-create-input-kanban{font-size:.8rem;padding:.375rem 0;margin-bottom:.375rem}.inline-create-hint-kanban{font-size:.65rem;padding-top:.375rem}.kanban-columns::-webkit-scrollbar{height:6px}}@media (max-width: 375px){.kanban-column{flex:0 0 260px;min-width:260px;max-width:260px}.column-content{padding:.625rem}.modal-content{padding:1rem}}.dashboard-page{overflow-x:hidden;overflow-y:visible}.dashboard-header{border-bottom:1px solid var(--border-color);padding-bottom:var(--space-base);margin-bottom:var(--space-base);display:flex;flex-direction:column;gap:var(--space-sm)}.dashboard-header-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-base)}.sprint-header-actions{display:flex;align-items:center;gap:var(--space-xs);flex-shrink:0}.sprint-actions-divider{width:1px;height:24px;background-color:var(--border-light);margin:0 var(--space-xs)}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-base)}.dashboard-dot{display:inline-block;width:3px;height:3px;border-radius:50%;background-color:var(--text-tertiary);margin:0 .375rem;vertical-align:middle}.delay-view-toggle{display:flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.delay-toggle-btn{padding:.5rem .875rem;font-size:.8125rem;font-weight:500;border:none;background-color:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;line-height:1}.delay-toggle-btn:first-child{border-right:1px solid var(--border-color)}.delay-toggle-btn:hover{background-color:var(--bg-secondary)}.delay-toggle-btn.active{background-color:var(--color-primary);color:#fff}.sprint-meta-pill{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;border-radius:var(--radius-sm);background-color:var(--bg-secondary);border:1px solid var(--border-light);font-size:var(--font-xs);cursor:pointer;transition:border-color .15s ease}.sprint-meta-pill:hover{border-color:var(--border-medium)}.capacity-bar-inline{width:48px;height:4px;background-color:var(--border-light);border-radius:2px;overflow:hidden;flex-shrink:0}.capacity-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.sprint-dates{white-space:nowrap}.date-compact{display:none}.date-full{display:inline}.complete-sprint-modal{max-width:600px}.sprint-summary{background-color:var(--bg-secondary);padding:1.25rem;border-radius:8px;margin-bottom:1.5rem}.summary-item{border-radius:6px}.summary-item-completed{background-color:#06d6a01a;color:#06d6a0}.summary-item-incomplete{background-color:#ef476f1a;color:#ef476f}.move-options{grid-template-columns:1fr 1fr}.move-option-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.5rem 1rem;background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s ease}.move-option-card:hover:not(:disabled){border-color:var(--accent-color);background-color:#0099cc0d;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.move-option-card:disabled{opacity:.5;cursor:not-allowed}.move-option-card svg{color:var(--accent-color);margin-bottom:.75rem}.move-option-card h4,.move-option-card p{margin:0;line-height:1.5}.sprint-delay-indicator{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;border-radius:6px;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.sprint-delay-indicator--ok{background-color:var(--color-success-light);color:var(--color-success-dark);border:1px solid var(--color-success)}.sprint-delay-indicator--ok:hover{background-color:var(--color-success);color:#fff}.sprint-delay-indicator--alert{background-color:var(--color-error-light);color:var(--color-error-dark);border:1px solid var(--color-error)}.sprint-delay-indicator--alert:hover{background-color:var(--color-error);color:#fff}.dashboard-page .delay-modal{max-width:560px;width:100%}.dashboard-page .delay-list{display:flex;flex-direction:column;gap:var(--space-sm);max-height:400px;overflow-y:auto;padding-right:var(--space-xs)}.dashboard-page .delay-item{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-base);padding:var(--space-sm) var(--space-base);border-left:4px solid var(--border-light)}.dashboard-page .delay-item--atrasado{border-left-color:#dc2626;background:#fff5f5}.dashboard-page .delay-item--adelantado,.dashboard-page .delay-item--en-tiempo{border-left-color:#16a34a;background:#f0fff4}.dashboard-page .delay-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.dashboard-page .delay-item-dates{display:flex;gap:var(--space-lg)}.dashboard-page .delay-date-row{display:flex;align-items:center;gap:var(--space-xs)}.dashboard-page .delay-badge{font-size:11px;padding:2px 8px;border-radius:var(--radius-sm);font-weight:600}.dashboard-page .delay-badge--atrasado{background:#fee2e2;color:#dc2626}.dashboard-page .delay-badge--adelantado,.dashboard-page .delay-badge--en-tiempo{background:#dcfce7;color:#16a34a}.project-delay-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dashboard-empty-container{min-height:500px}.dashboard-empty-icon{color:var(--accent-color);opacity:.3;margin-bottom:1.5rem}.dashboard-form-row{grid-template-columns:1fr 1fr}@media (max-width: 768px){.dashboard-header{padding-bottom:var(--space-sm)}.dashboard-header-title{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.dashboard-header-title h2{font-size:1.25rem}.sprint-header-actions{width:100%}.sprint-header-actions button{flex:1;justify-content:center}.sprint-btn-label{display:none}.sprint-dates{font-size:.8rem}.date-full{display:none}.date-compact{display:inline}.dashboard-toolbar{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.sprint-delay-indicator{padding:.375rem .625rem;font-size:.75rem}.delay-view-toggle{border-radius:6px}.delay-toggle-btn{padding:.375rem .625rem;font-size:.75rem}.dashboard-page .delay-item-dates{flex-direction:column;gap:var(--space-xs)}.move-options,.dashboard-form-row{grid-template-columns:1fr}.complete-sprint-modal{max-width:100%}}.standup-user-card{padding:var(--space-base);border:2px solid var(--border-light);border-radius:var(--radius-base);cursor:pointer;transition:all .2s ease;background-color:var(--bg-primary)}.standup-user-card:hover{border-color:var(--color-primary);background-color:var(--bg-secondary)}.standup-user-card.selected{border-color:var(--color-primary);background-color:#015e7c0d}.standup-checkbox{width:20px;height:20px;border:2px solid var(--border-medium);border-radius:4px;display:flex;align-items:center;justify-content:center;background-color:#fff;transition:all .2s ease}.standup-user-card.selected .standup-checkbox{background-color:var(--color-primary);border-color:var(--color-primary)}.shuffle-container{display:flex;flex-wrap:wrap;gap:var(--space-lg);justify-content:center;align-items:center;padding:var(--space-2xl)}.shuffle-user{display:flex;flex-direction:column;align-items:center;padding:var(--space-base);border-radius:var(--radius-base);transition:all .3s ease;opacity:.5}.shuffle-user.highlighted{transform:scale(1.3);opacity:1;background-color:#015e7c1a;box-shadow:0 0 20px #015e7c4d}.standup-progress{max-width:600px;margin:0 auto}.progress-bar{width:100%;height:8px;background-color:var(--bg-secondary);border-radius:var(--radius-base);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary) 0%,var(--color-accent) 100%);transition:width .5s ease}.standup-current-user{padding:var(--space-lg);background-color:var(--bg-secondary);border-radius:var(--radius-lg);border-left:4px solid var(--color-primary)}.standup-current-user-compact{display:flex;align-items:center;gap:var(--space-base);padding:0;margin-bottom:var(--space-base)}.standup-current-user-compact h3{margin:0;line-height:1}.standup-sections-modern{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}@media (max-width: 1024px){.standup-sections-modern{grid-template-columns:1fr}}.standup-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:all .3s ease;border:2px solid transparent;display:flex;flex-direction:column;height:100%}.standup-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.standup-card-completed{border-color:#10b9814d}.standup-card-progress{border-color:#015e7c4d}.standup-card-pending{border-color:#f59e0b4d}.standup-card-header{padding:var(--space-base) var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);border-bottom:1px solid var(--border-light);background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%)}.standup-card-header-compact{padding:var(--space-sm) var(--space-base);display:flex;align-items:center;gap:var(--space-xs);border-bottom:1px solid var(--border-light);background-color:var(--bg-secondary)}.standup-card-header-compact .standup-card-title{font-size:var(--font-sm)}.standup-card-completed .standup-card-header-compact{color:#10b981}.standup-card-progress .standup-card-header-compact{color:#015e7c}.standup-card-pending .standup-card-header-compact{color:#f59e0b}.standup-card-icon{width:40px;height:40px;border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;flex-shrink:0}.standup-icon-completed{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.standup-icon-progress{background:linear-gradient(135deg,#015e7c,#014054);color:#fff}.standup-icon-pending{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.standup-card-title{font-size:var(--font-base);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.standup-card-body{padding:var(--space-sm);flex:1;overflow-y:auto;max-height:320px}.standup-task-modern{display:flex;gap:var(--space-sm);padding:var(--space-sm);margin-bottom:var(--space-sm);background-color:var(--bg-secondary);border-radius:var(--radius-base);transition:all .2s ease;animation:slideInTask .3s ease}.standup-task-modern:hover{background-color:var(--bg-tertiary);transform:translate(4px)}.standup-task-modern:last-child{margin-bottom:0}.standup-task-compact{display:flex;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-xs);background-color:var(--bg-secondary);border-radius:var(--radius-sm);transition:all .2s ease;animation:slideInTask .3s ease}.standup-task-compact:hover{background-color:var(--bg-tertiary);transform:translate(2px)}.standup-task-compact:last-child{margin-bottom:0}.standup-task-indicator{width:4px;min-width:4px;border-radius:2px;flex-shrink:0}.standup-indicator-completed{background:linear-gradient(180deg,#10b981,#059669)}.standup-indicator-progress{background:linear-gradient(180deg,#015e7c,#014054)}.standup-indicator-pending{background:linear-gradient(180deg,#f59e0b,#d97706)}.standup-task-content{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.standup-task-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm)}.standup-task-name{flex:1;font-size:var(--font-sm);color:var(--text-primary);font-weight:var(--font-weight-medium);line-height:1.3;word-break:break-word}.standup-task-meta{display:flex;align-items:center;gap:var(--space-xs)}.standup-task-points{font-size:var(--font-xs);color:#fff;font-weight:var(--font-weight-bold);background-color:var(--color-primary);padding:1px 6px;border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0}.standup-task-id{font-size:var(--font-xs);font-family:Courier New,monospace;color:var(--text-tertiary);font-weight:var(--font-weight-medium)}.standup-task-time{font-size:var(--font-xs);color:var(--text-secondary);background-color:#015e7c1a;padding:1px 6px;border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);white-space:nowrap;flex-shrink:0}.standup-delay-badge{font-size:var(--font-xs);font-weight:600;display:inline-flex;align-items:center;padding:1px 6px;border-radius:10px;line-height:1;white-space:nowrap;flex-shrink:0}.standup-delay-on-track{color:var(--color-success-dark, #05a57a);background-color:var(--color-success-light, #d1fae5)}.standup-delay-warning{color:var(--color-warning-dark, #e6b84f);background-color:var(--color-warning-light, #fff3d9)}.standup-delay-danger{color:var(--color-error-dark, #d63557);background-color:var(--color-error-light, #fde0e7)}.standup-empty-message{text-align:center;color:var(--text-tertiary);font-size:var(--font-xs);font-style:italic;padding:var(--space-base) var(--space-sm)}@keyframes slideInTask{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.standup-current-user{animation:fadeIn .5s ease}.standup-burndown{background-color:var(--bg-primary);border:2px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-base);animation:fadeIn .5s ease}.standup-burndown-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-base)}.burndown-stat{display:flex;flex-direction:column;gap:2px;text-align:center}.burndown-stat-label{font-size:var(--font-xs);color:var(--text-tertiary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px}.burndown-stat-value{font-size:var(--font-lg);color:var(--text-primary);font-weight:var(--font-weight-bold)}.standup-burndown-chart{margin-top:var(--space-sm)}.burndown-chart-svg{width:100%;height:auto;max-width:650px;margin:0 auto;display:block;background-color:var(--bg-primary);border-radius:var(--radius-base);padding:var(--space-sm)}.burndown-legend{margin-top:var(--space-base);padding:var(--space-sm) 0}.burndown-timeline{display:flex;justify-content:space-around;align-items:center;padding-top:var(--space-sm);border-top:1px solid var(--border-light)}.burndown-timeline-item{display:flex;align-items:center;gap:var(--space-xs);color:var(--text-secondary)}@media (max-width: 768px){.standup-burndown-header{flex-direction:column;align-items:flex-start}.burndown-timeline{flex-direction:column;gap:var(--space-xs)}}.capacity-details-table{overflow-x:auto}.capacity-details-table table{width:100%;border-collapse:collapse}.capacity-details-table th{background-color:var(--bg-secondary);padding:var(--space-sm) var(--space-base);font-size:var(--font-xs);font-weight:var(--font-weight-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border-light)}.capacity-details-table td{padding:var(--space-base);border-bottom:1px solid var(--border-light)}.capacity-details-table tr:hover{background-color:var(--bg-secondary)}.capacity-details-table tr:last-child td{border-bottom:none}.backlog-header{align-items:center}.backlog-header-title{flex:1}.backlog-header-actions{display:flex;gap:var(--space-sm);align-items:center;flex-shrink:0}.btn.btn-planning-poker{background:transparent!important;color:#10b981!important;border:1.5px solid #10B981!important;font-weight:500;box-shadow:none!important;transition:all .2s cubic-bezier(.4,0,.2,1);border-radius:8px;padding:.5rem 1rem}.btn.btn-planning-poker:hover:not(:disabled){background:#10b9811a!important;border-color:#059669!important;color:#059669!important}.btn.btn-planning-poker:active:not(:disabled){background:#10b98126!important}.btn.btn-planning-poker:disabled{border-color:var(--border-light)!important;color:var(--text-tertiary)!important;cursor:not-allowed;opacity:.5}.btn.btn-create-sprint{background:transparent!important;color:var(--primary-color)!important;border:1.5px solid var(--primary-color)!important;font-weight:500;box-shadow:none!important;transition:all .2s cubic-bezier(.4,0,.2,1);border-radius:8px;padding:.5rem 1rem}.btn.btn-create-sprint:hover{background:#015e7c1a!important;border-color:#014f66!important;color:#014f66!important}.btn.btn-create-sprint:active{background:#015e7c26!important}.btn-text-desktop{display:inline}.btn-text-mobile{display:none}.task-count{font-size:.75rem;font-weight:600;color:var(--text-secondary);background-color:var(--bg-primary);padding:.25rem .5rem;border-radius:12px;min-width:24px;text-align:center}.sprint-section,.backlog-section{background-color:var(--bg-secondary);border-radius:12px;border:2px solid transparent;margin-bottom:1.5rem;overflow:visible;transition:all .2s ease}.sprint-section.active{border-color:var(--accent-color)}.expand-btn{background:none;border:none;cursor:pointer;padding:.25rem;color:var(--text-secondary);display:flex;align-items:center;transition:transform .2s ease}.expand-btn:hover{color:var(--text-primary)}.count-badge{font-size:.75rem;font-weight:600;color:var(--text-secondary);background-color:var(--bg-primary);padding:.25rem .5rem;border-radius:12px;min-width:24px;text-align:center}.backlog-page .status-badge{font-size:.6rem;font-weight:600;padding:.1rem .35rem;border-radius:3px;text-transform:uppercase;letter-spacing:.2px}.status-badge.planned{background-color:var(--status-in-progress-bg);color:var(--status-in-progress-text)}.status-badge.active{background-color:var(--status-completed-bg);color:var(--status-completed-text)}.status-badge.planning,.status-badge.pending{background-color:var(--status-pending-bg);color:var(--status-pending-text)}.status-badge.in-progress{background-color:var(--status-in-progress-bg);color:var(--status-in-progress-text)}.status-badge.qa{background-color:var(--status-qa-bg);color:var(--status-qa-text)}.status-badge.completed{background-color:var(--status-completed-bg);color:var(--status-completed-text)}.status-badge.on-hold{background-color:var(--color-error-light);color:var(--color-error-dark)}table{width:100%;border-collapse:collapse;background-color:#fff;border-radius:8px;overflow:visible}thead{background-color:var(--bg-secondary)}th{text-align:left;padding:.75rem 1rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.task-row{border-bottom:1px solid var(--border-color);transition:background-color .2s ease;cursor:grab}.task-row:hover{background-color:#0099cc05}.task-row:active{cursor:grabbing}.task-row.drag-over{background-color:#015e7c14;border-top:2px solid var(--primary-color)}.task-row.drag-over td{padding-top:calc(1rem - 2px)}.task-row.drag-over-invalid{background-color:#dc354514;border-top:2px solid var(--color-error);cursor:not-allowed}.task-row.drag-over-invalid td{padding-top:calc(1rem - 2px);opacity:.6}.task-row td{padding:1rem;vertical-align:middle;overflow:visible}.task-title{max-width:500px;line-height:1.4}.task-row td[style*="cursor: pointer"]:hover .task-title{color:var(--primary-color);text-decoration:underline}.priority-badge{display:inline-block;padding:.25rem .5rem;border-radius:6px;font-size:.7rem;font-weight:600;color:#fff;text-transform:capitalize}.priority-low{background-color:var(--priority-low)}.priority-medium{background-color:var(--priority-medium);color:var(--priority-medium-dark)}.priority-high{background-color:var(--priority-high)}.priority-critical{background-color:var(--priority-critical)}.form-row{grid-template-columns:1fr 1fr}.tasks-cards-mobile{display:none}.task-card-mobile{background-color:#fff;border:1px solid var(--border-light);border-radius:8px;padding:var(--space-base);margin-bottom:var(--space-sm);cursor:pointer;transition:all .2s ease;touch-action:manipulation}.task-card-mobile:hover{border-color:var(--accent-color);box-shadow:0 2px 8px #00000014}.task-card-mobile:active{transform:scale(.98)}.task-card-mobile.selected{background-color:#015e7c0f;border-color:var(--primary-color)}.task-card-header{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm)}.task-card-checkbox{margin-top:2px;flex-shrink:0}.task-card-title{flex:1;font-weight:600;color:var(--text-primary);font-size:.9375rem;line-height:1.4;min-width:0}.task-card-actions{flex-shrink:0}.task-card-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;margin-top:var(--space-sm)}.task-card-meta-item{display:flex;align-items:center;gap:.25rem;font-size:.8125rem;color:var(--text-secondary)}.task-card-drag-handle{opacity:.4;cursor:grab;touch-action:none}.task-card-drag-handle:active{cursor:grabbing}@media (max-width: 1024px){.backlog-header{gap:var(--space-base)}.backlog-header-title{flex:1}.backlog-header-actions{flex-shrink:0}.bulk-actions-bar{bottom:1rem;left:var(--space-sm);right:var(--space-sm);transform:none;max-width:none;border-radius:8px}.bulk-actions-content{flex-direction:column;gap:var(--space-base);padding:var(--space-base)}.bulk-actions-left,.bulk-actions-right{width:100%}.bulk-actions-right{flex-wrap:wrap}.bulk-actions-count{font-size:.8125rem}.section-header{flex-wrap:wrap;padding:var(--space-base)!important}.section-header>div:first-child{width:100%;margin-bottom:var(--space-sm)}.section-header .flex-1{flex-wrap:wrap;row-gap:var(--space-xs)}}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.tasks-table table,.sprint-tasks table{display:none}.tasks-cards-mobile{display:block}.backlog-header{margin-bottom:var(--space-base);padding-bottom:var(--space-sm);padding-left:var(--space-xs);padding-right:var(--space-xs)}.backlog-header h2{font-size:1.5rem}.btn-text-desktop,.btn-text-mobile{display:none}.btn-planning-poker,.btn-create-sprint{min-width:40px;min-height:40px;width:40px;height:40px;padding:0;justify-content:center;border-radius:8px}.btn-planning-poker span,.btn-create-sprint span{display:none}.btn-planning-poker svg,.btn-create-sprint svg{font-size:20px}.count-badge{font-size:.6875rem;padding:.1875rem .4rem}.status-badge{font-size:.5625rem;padding:.125rem .3rem}.sprint-dates-backlog .date-full{display:none}.sprint-dates-backlog .date-compact{display:inline;font-size:.75rem}.capacity-indicator{padding:.25rem .5rem;font-size:.75rem}.capacity-bar{width:40px;height:4px}.empty-state,.empty-sprint{padding:var(--space-lg)!important}.empty-state p,.empty-sprint p{font-size:.875rem}.inline-create-row,.section-header .btn[data-tooltip="Crear tarea rápida"] span{display:none}.user-select-dropdown-backlog,.actions-menu,.bulk-dropdown{max-height:60vh;overflow-y:auto}.modal-content{max-height:90vh;overflow-y:auto;margin:var(--space-base);max-width:calc(100vw - 2rem)}}@media (max-width: 640px){.backlog-header{margin-bottom:var(--space-sm);padding-left:var(--space-xs);padding-right:var(--space-xs)}.backlog-header h2{font-size:1.25rem}.btn-planning-poker,.btn-create-sprint{min-width:36px;min-height:36px;width:36px;height:36px;border-radius:8px}.btn-planning-poker svg,.btn-create-sprint svg{font-size:18px}.btn-sm{font-size:.8125rem;padding:.375rem .75rem}.task-card-mobile{padding:var(--space-sm)}.task-card-title{font-size:.875rem}.task-card-meta{gap:.375rem}.task-card-meta-item{font-size:.75rem}.section-header{padding:var(--space-sm)!important}.section-header .heading-3{font-size:1rem}}.task-assignee,.task-project{position:relative;display:flex;align-items:center}.btn-assign-user-backlog{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background-color:transparent;border:1px dashed var(--border-color);border-radius:var(--radius-base);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-assign-user-backlog:hover{border-color:var(--primary-color);color:var(--primary-color);background-color:#015e7c0d}.user-select-dropdown-backlog{position:absolute;top:100%;left:0;margin-top:.5rem;background-color:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:100;min-width:200px;max-height:300px;overflow-y:auto;pointer-events:auto}.inline-create-row{background-color:#0099cc08;border-bottom:1px solid var(--border-color);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.inline-create-row td{padding:.75rem 1rem;vertical-align:middle}.inline-create-icon{color:var(--accent-color);opacity:.6}.inline-create-wrapper{display:flex;flex-direction:column;gap:.5rem}.inline-create-input{border:2px solid var(--accent-color);border-radius:6px;padding:.75rem;font-size:.95rem;font-weight:500;color:var(--text-primary);background-color:#fff;outline:none;transition:all .2s ease;box-shadow:0 2px 8px #0099cc1a}.inline-create-input:focus{border-color:var(--accent-color);box-shadow:0 4px 12px #09c3}.inline-create-input::placeholder{color:var(--text-tertiary);font-weight:400}.inline-create-hint{display:flex;gap:.5rem;align-items:center;font-size:.75rem;color:var(--text-tertiary);padding-left:.25rem}.hint-text{color:var(--text-tertiary)}.task-actions,.task-card-actions{position:relative;display:flex;align-items:center;justify-content:center}.actions-menu{position:absolute;top:100%;right:0;margin-top:.5rem;background-color:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:100;min-width:200px;overflow:hidden;animation:slideDown .2s ease}.actions-menu-header{padding:.5rem 1rem;font-size:.7rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;background-color:var(--bg-secondary)}.actions-menu-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;width:100%;background:none;border:none;font-size:.875rem;font-weight:500;color:var(--text-primary);cursor:pointer;transition:all .15s ease;text-align:left}.actions-menu-item:hover{background-color:var(--bg-secondary);color:var(--primary-color)}.actions-menu-item.danger{color:var(--color-error)}.actions-menu-item.danger:hover{background-color:#dc35450d;color:var(--color-error)}.actions-menu-divider{height:1px;background-color:var(--border-color);margin:.25rem 0}.bulk-actions-bar{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background-color:#fff;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 24px #00000026;z-index:1000;animation:slideUp .3s ease;max-width:90%}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.bulk-actions-content{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem 1.5rem}.bulk-actions-left{display:flex;align-items:center;gap:1rem}.bulk-actions-count{font-size:.875rem;font-weight:600;color:var(--text-primary)}.bulk-actions-right{display:flex;align-items:center;gap:.5rem}.bulk-action-menu{position:relative}.bulk-dropdown{position:absolute;bottom:100%;left:0;margin-bottom:.5rem;background-color:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:100;min-width:200px;max-height:300px;overflow-y:auto;animation:slideDown .2s ease}.bulk-dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;width:100%;background:none;border:none;font-size:.875rem;font-weight:500;color:var(--text-primary);cursor:pointer;transition:all .15s ease;text-align:left}.bulk-dropdown-item:hover{background-color:var(--bg-secondary);color:var(--primary-color)}.task-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--primary-color)}.task-row.selected{background-color:#015e7c0f}.task-row.selected:hover{background-color:#015e7c1a}.capacity-indicator{display:flex;align-items:center;padding:.375rem .75rem;background-color:var(--bg-primary);border-radius:var(--radius-base);border:1px solid var(--border-light)}.capacity-bar{position:relative;width:60px;height:6px;background-color:#e5e7eb;border-radius:3px;overflow:hidden}.capacity-fill{height:100%;transition:width .3s ease,background-color .3s ease;border-radius:3px}.sprint-dates-backlog .date-compact{display:none}.sprint-dates-backlog .date-full{display:inline}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.dependencies-flow-container{position:relative;width:100%;height:calc(100vh - 250px);min-height:500px;background-color:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-light);overflow:hidden}.dependencies-flow-hint{position:absolute;top:var(--space-sm);left:50%;transform:translate(-50%);z-index:10;padding:var(--space-xs) var(--space-base);background-color:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-xs);color:var(--text-secondary);box-shadow:var(--shadow-sm)}.dependencies-empty{display:flex;align-items:center;justify-content:center;height:400px;background-color:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-light)}.flow-node{padding:var(--space-sm) var(--space-base);border-radius:var(--radius-md);background-color:var(--bg-primary);border:2px solid var(--border-medium);box-shadow:var(--shadow-sm);min-width:150px;transition:box-shadow .2s ease,border-color .2s ease}.flow-node:hover{box-shadow:var(--shadow-md);border-color:var(--color-accent)}.flow-node-root{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-base) var(--space-md);background:linear-gradient(135deg,var(--color-accent),var(--color-primary));border:none;color:#fff;font-weight:600;border-radius:50px}.flow-node-root .flow-node-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background-color:#fff3;border-radius:50%}.flow-node-root .flow-node-label{font-size:var(--font-base)}.react-flow__node-group{border-radius:var(--radius-lg)!important;padding:var(--space-lg)!important}.react-flow__node-group:before{content:attr(data-label);position:absolute;top:var(--space-sm);left:var(--space-base);font-size:var(--font-sm);font-weight:600;color:var(--project-color, var(--color-primary));z-index:1}.flow-node-header{display:flex;align-items:center;gap:var(--space-xs)}.flow-node-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.flow-node-title{font-size:var(--font-sm);font-weight:600;color:var(--text-primary)}.flow-node-meta{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);font-size:var(--font-xs);color:var(--text-tertiary)}.flow-node-task{min-width:180px;max-width:400px;background-color:var(--bg-primary)}.flow-node-task .flow-node-title{font-size:var(--font-xs);font-weight:500}.flow-node-task.critical-path{background-color:#fb923c0d}.flow-node-details{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs)}.flow-node-priority{font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm);color:#fff}.flow-node-deps{display:flex;align-items:center;gap:2px;font-size:var(--font-xs);color:var(--text-tertiary)}.react-flow__node{cursor:pointer}.react-flow__handle{width:10px;height:10px;background-color:#09c;border:2px solid white;transition:background-color .2s ease,box-shadow .2s ease,opacity .2s ease}.react-flow__handle:hover{background-color:#f5a623;box-shadow:0 0 0 4px #f5a6234d}.react-flow__node-connector .react-flow__handle{opacity:0!important;pointer-events:all!important;background:transparent!important;border:none!important;box-shadow:none!important}.react-flow__node-connector .react-flow__handle:hover{background:transparent!important;box-shadow:none!important}.react-flow__handle-right{right:-5px;opacity:1!important;visibility:visible!important}.react-flow__handle-left{left:-5px;opacity:0}.react-flow__handle-left.full-node-handle{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:var(--radius-md);transform:none;opacity:0}.flow-node-task.is-target{outline:2px dashed #F5A623;outline-offset:2px}.flow-node-project.is-target{outline:2px dashed #015E7C;outline-offset:2px}.react-flow__connection-line{stroke:var(--color-warning);stroke-width:2}.react-flow__edge marker{overflow:visible}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--color-error)!important;stroke-width:3!important}.react-flow__edge:hover .react-flow__edge-path{stroke-width:3}.react-flow__minimap{background-color:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md)}.react-flow__controls{box-shadow:var(--shadow-md);border-radius:var(--radius-md);overflow:hidden}.react-flow__controls-button{background-color:var(--bg-primary);border-color:var(--border-light);color:var(--text-primary)}.react-flow__controls-button:hover{background-color:var(--bg-secondary)}.react-flow__controls-button svg{fill:var(--text-primary)}.react-flow__attribution{display:none}.custom-gantt-container{display:flex;flex-direction:column;gap:var(--space-base);background:var(--bg-primary);border-radius:var(--radius-md);padding:var(--space-lg)}.gantt-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);padding-bottom:var(--space-sm)}.gantt-header h3{white-space:nowrap;flex-shrink:0}.gantt-legend-compact{display:flex;align-items:center;gap:var(--space-base);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--space-xs)}.legend-color{width:12px;height:12px;border-radius:var(--radius-sm)}.gantt-wrapper{overflow:auto;border:1px solid var(--border-light);border-radius:var(--radius-base);background:var(--bg-secondary)}.gantt-content{display:flex;min-width:max-content}.gantt-labels{flex-shrink:0;border-right:2px solid var(--border-medium);background:var(--bg-primary);position:sticky;left:0;z-index:10}.gantt-labels-header{height:50px;display:flex;align-items:center;padding:0 var(--space-base);border-bottom:2px solid var(--border-medium);background:var(--bg-secondary);font-weight:600}.gantt-label-row{height:50px;display:flex;align-items:center;padding:0 var(--space-base);gap:var(--space-xs);border-bottom:1px solid var(--border-light);transition:background-color .15s ease;overflow:hidden}.gantt-label-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.gantt-label-row:hover{background-color:var(--bg-tertiary)}.gantt-label-row.group-label{background:var(--bg-secondary);font-weight:600;border-bottom:2px solid var(--border-medium)}.gantt-label-row.task-label{padding-left:var(--space-lg)}.gantt-timeline-wrapper{flex:1;min-width:0}.gantt-timeline-header{height:50px;display:flex;border-bottom:2px solid var(--border-medium);background:var(--bg-secondary);position:sticky;top:0;z-index:5}.gantt-day-header{display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;white-space:nowrap;padding:4px;border-right:1px solid var(--border-light);flex-shrink:0;min-width:0}.gantt-day-header span{display:block;width:100%;text-align:center}.gantt-day-header.today{background:#fbbf2433}.gantt-day-header.weekend{background:#64748b1a}.gantt-timeline{position:relative;min-height:100px}.gantt-grid{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;display:flex}.gantt-grid-cell{position:absolute;top:0;height:100%;border-right:1px solid var(--border-light);flex-shrink:0}.gantt-grid-cell:nth-child(4n+1),.gantt-grid-cell:nth-child(4n+2){background:#00000005}.gantt-grid-cell.half-day{border-right:1px dashed rgba(0,0,0,.1)}.gantt-grid-cell.today-cell{background:#fbbf2426;z-index:2}.gantt-grid-cell.weekend-cell{background:#64748b14;z-index:1}.gantt-today-marker{position:absolute;top:0;height:100%;z-index:15;pointer-events:none}.gantt-today-line{width:2px;height:100%;background:var(--color-warning);opacity:.8}.gantt-today-label{position:absolute;top:-30px;left:50%;transform:translate(-50%);background:var(--color-warning);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;white-space:nowrap}.gantt-tasks{position:relative}.gantt-task-row{border-bottom:1px solid var(--border-light);position:relative;transition:background-color .15s ease}.gantt-task-row:hover{background-color:var(--bg-tertiary)}.gantt-task-row.group-row{background:var(--bg-secondary);border-bottom:2px solid var(--border-medium)}.gantt-task-bar{position:absolute;top:10px;height:30px;border-radius:var(--radius-base);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;padding:0 var(--space-sm);overflow:visible;box-shadow:var(--shadow-sm)}.gantt-task-segment{position:absolute;top:0;height:100%;transition:opacity .2s ease}.gantt-task-segment.base{border-radius:var(--radius-sm)}.gantt-task-segment.riesgo{position:absolute;border-radius:var(--radius-sm)}.gantt-task-segment.riesgo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:repeating-linear-gradient(45deg,rgba(239,68,68,.35),rgba(239,68,68,.35) 3px,transparent 3px,transparent 6px);pointer-events:none}.gantt-task-segment.no-laborable{background:repeating-linear-gradient(135deg,#94a3b84d,#94a3b84d 4px,#94a3b826 4px,#94a3b826 8px)!important;border-left:1px solid rgba(100,116,139,.4);border-right:1px solid rgba(100,116,139,.4)}.gantt-task-bar:hover,.gantt-task-bar.hovered{transform:translateY(-2px);box-shadow:var(--shadow-md);z-index:10}.gantt-task-bar.in-progress{border:2px solid #059669;box-shadow:0 0 0 2px #05966933}.gantt-task-label{font-size:13px;font-weight:500;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;z-index:2;position:relative}.gantt-progress-indicator{position:absolute;left:0;top:0;width:50%;height:100%;background:linear-gradient(90deg,#fff0,#fff3,#fff0);animation:progress-pulse 2s ease-in-out infinite;pointer-events:none;z-index:3}@keyframes progress-pulse{0%,to{opacity:.3}50%{opacity:.7}}.gantt-label-tooltip{background:#000000e6;color:#fff;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:13px;white-space:nowrap;box-shadow:var(--shadow-md);z-index:2000;pointer-events:none;animation:tooltip-fade-in .15s ease}.gantt-tooltip{position:fixed;bottom:20px;right:20px;background:#000000f2;color:#fff;padding:var(--space-base);border-radius:var(--radius-base);box-shadow:var(--shadow-lg);max-width:400px;z-index:1000;animation:tooltip-fade-in .2s ease}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.gantt-tooltip-title{font-size:14px;font-weight:600;margin-bottom:var(--space-xs);color:#fff}.gantt-tooltip-item{display:flex;align-items:center;gap:var(--space-xs);font-size:13px;margin-bottom:4px;color:#ffffffe6}.gantt-tooltip-badge{display:inline-block;padding:2px 8px;background:#fff3;border-radius:var(--radius-sm);font-size:11px;margin-top:var(--space-xs);font-weight:500}.gantt-legend{padding-top:var(--space-base);border-top:1px solid var(--border-light)}.legend-indicator{width:40px;height:16px;border-radius:var(--radius-sm);background:#10b981;box-shadow:var(--shadow-sm)}.legend-indicator.in-progress{background:#059669;border:2px solid #059669;box-shadow:0 0 0 2px #05966933}.legend-indicator.with-risk{background:#10b981;position:relative;overflow:hidden}.legend-indicator.with-risk:after{content:"";position:absolute;right:0;top:0;width:40%;height:100%;background:repeating-linear-gradient(45deg,#ef44444d,#ef44444d 3px,#ef444480 3px,#ef444480 6px)}.legend-indicator.with-non-working{background:repeating-linear-gradient(135deg,#94a3b84d,#94a3b84d 3px,#94a3b826 3px,#94a3b826 6px);border:1px solid rgba(100,116,139,.4)}@media (max-width: 768px){.gantt-header{flex-direction:column;align-items:flex-start;gap:var(--space-base)}.gantt-tooltip{right:10px;left:10px;max-width:none}}.task-scheduler{padding:var(--space-base)}.scheduler-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:var(--space-base)}.scheduler-metrics{display:flex;align-items:center;gap:var(--space-sm)}.scheduler-metric{display:flex;align-items:center;gap:5px;font-size:var(--font-sm);color:var(--text-secondary)}.scheduler-metric strong{color:var(--text-primary);font-weight:700}.scheduler-metric svg{color:var(--text-tertiary);flex-shrink:0}.scheduler-metric-sep{width:1px;height:20px;background:var(--border-medium);flex-shrink:0}.scheduler-delay-chip{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:600;border:none;cursor:pointer;transition:all var(--transition-fast)}.scheduler-delay-chip.delay--alert{background:#fee2e2;color:#dc2626}.scheduler-delay-chip.delay--alert:hover{background:#fecaca}.scheduler-delay-chip.delay--ok{background:#dcfce7;color:#16a34a}.scheduler-delay-chip.delay--ok:hover{background:#bbf7d0}.scheduler-controls{display:flex;align-items:center;gap:var(--space-sm)}.scheduler-view-toggle{display:flex;background:#fff;border-radius:var(--radius-base);padding:3px;border:1px solid var(--border-light)}.scheduler-view-toggle button{padding:5px 14px;border:none;background:transparent;border-radius:6px;font-size:var(--font-xs);font-weight:500;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.scheduler-view-toggle button:hover:not(.active){color:var(--text-secondary);background:var(--bg-secondary)}.scheduler-view-toggle button.active{background:var(--color-primary);color:#fff;font-weight:600;box-shadow:var(--shadow-sm)}.scheduler-actions{display:flex;align-items:center;gap:6px}.scheduler-action-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--border-light);background:#fff;border-radius:var(--radius-base);font-size:var(--font-xs);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.scheduler-action-btn:hover:not(:disabled){border-color:var(--border-medium);background:var(--bg-secondary);color:var(--text-primary)}.scheduler-action-btn:disabled{opacity:.5;cursor:not-allowed}.scheduler-action-btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.scheduler-action-btn--primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}.scheduler-action-btn--success{background:var(--color-success);border-color:var(--color-success);color:#fff}.scheduler-action-btn--success:hover:not(:disabled){background:var(--color-success-dark);border-color:var(--color-success-dark);color:#fff}.scheduler-action-btn--warning{color:var(--color-warning-dark);border-color:var(--color-warning)}.scheduler-action-btn--warning:hover:not(:disabled){background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.scheduler-action-btn .spinner{width:14px;height:14px;border-width:2px}.scheduler-result-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);background:var(--color-success-light);border:1px solid #BBF7D0;border-radius:var(--radius-base);margin-bottom:var(--space-base);font-size:var(--font-sm);color:#065f46}.scheduler-result-info{display:flex;align-items:center;gap:var(--space-sm)}.scheduler-result-info svg{color:var(--color-success-dark);flex-shrink:0}.scheduler-result-sep{width:1px;height:14px;background:#86efac;flex-shrink:0}.scheduler-result-risk{color:#b45309;font-weight:500}@media (max-width: 1024px){.scheduler-toolbar{flex-direction:column;align-items:stretch;gap:var(--space-sm)}.scheduler-controls{justify-content:flex-end}}@media (max-width: 768px){.scheduler-metrics,.scheduler-actions{flex-wrap:wrap}.scheduler-controls{flex-wrap:wrap;justify-content:flex-start}.scheduler-result-banner{flex-direction:column;align-items:flex-start}}.scheduler-header{border-bottom:2px solid var(--border-light);padding-bottom:var(--space-base)}.tab-button{padding:var(--space-sm) var(--space-base);background:transparent;border:none;border-bottom:3px solid transparent;display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;color:var(--text-secondary);font-weight:500;transition:all .2s}.tab-button:hover:not(:disabled){color:var(--text-primary);background:var(--bg-secondary)}.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-button:disabled{opacity:.5;cursor:not-allowed}.stats-grid .card{transition:transform .2s}.stats-grid .card:hover{transform:translateY(-2px)}.gantt-chart-container{padding:var(--space-base)}.gantt-legend{padding:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-base)}.legend-box{width:16px;height:16px;border-radius:var(--radius-sm);border:1px solid var(--border-light)}.legend-box.with-risk{background:repeating-linear-gradient(45deg,#f59e0b,#f59e0b 5px,#fcd34d 5px,#fcd34d 10px)}.legend-box.forced{background:var(--color-primary);position:relative}.legend-box.forced:after{content:"🔒";position:absolute;font-size:8px;top:50%;left:50%;transform:translate(-50%,-50%)}.gantt-chart{position:relative;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-base);overflow:hidden}.gantt-time-scale{position:relative;height:40px;background:var(--bg-secondary);border-bottom:2px solid var(--border-medium)}.gantt-time-marker{position:absolute;top:0;height:100%;border-left:1px solid var(--border-light);padding-left:var(--space-xs);padding-top:var(--space-xs);font-size:var(--font-xs);color:var(--text-tertiary);white-space:nowrap}.gantt-rows{position:relative}.gantt-row{display:flex;border-bottom:1px solid var(--border-light);min-height:60px;cursor:pointer;transition:background .2s}.gantt-row:hover{background:var(--bg-secondary)}.gantt-row.selected{background:var(--bg-tertiary)}.gantt-row-label{width:200px;min-width:200px;padding:var(--space-sm);display:flex;align-items:center;justify-content:space-between;border-right:2px solid var(--border-medium);background:var(--bg-secondary);position:relative;z-index:1}.gantt-row-label .label-text{font-weight:600;color:var(--text-primary);font-size:var(--font-sm)}.gantt-row-label .task-count{background:var(--color-primary);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600}.gantt-row-timeline{flex:1;position:relative;padding:var(--space-sm) 0;z-index:0}.gantt-task-bar{position:absolute;height:36px;border-radius:var(--radius-sm);padding:var(--space-xs);display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:var(--shadow-sm);color:#fff;font-size:var(--font-xs);font-weight:600;overflow:hidden;z-index:2}.gantt-task-bar:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);z-index:10}.gantt-task-bar.with-risk{background-image:repeating-linear-gradient(45deg,transparent,transparent 5px,rgba(255,255,255,.1) 5px,rgba(255,255,255,.1) 10px)}.gantt-task-bar.forced{border:2px solid #FCD34D}.gantt-task-bar .task-id{font-weight:700}.gantt-task-bar .risk-icon,.gantt-task-bar .forced-icon{opacity:.9}.user-list{padding:var(--space-base)}.user-card{transition:transform .2s,box-shadow .2s}.user-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.avatar{width:40px;height:40px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--font-lg)}.user-stats{display:flex;flex-direction:column;gap:var(--space-xs)}.stat-item{display:flex;flex-direction:column;gap:4px}.risk-matrix{padding:var(--space-base)}.risk-card{transition:transform .2s,box-shadow .2s}.risk-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.risk-details{display:flex;flex-direction:column}.risk-details p{display:flex;align-items:center;gap:var(--space-xs)}.modal-content{max-width:600px;max-height:90vh;overflow-y:auto}.modal-header{font-size:var(--font-xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-base);padding-bottom:var(--space-sm);border-bottom:2px solid var(--border-light)}.modal-footer{padding-top:var(--space-base);border-top:1px solid var(--border-light);margin-top:var(--space-base)}.stat-card{text-align:center}.risk-details-grid{max-height:200px;overflow-y:auto}.scheduler-config .spinner,.scheduler-results .spinner{border-width:3px;width:20px;height:20px}@media (max-width: 1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}.user-cards,.risk-details-grid{grid-template-columns:1fr}}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr}.gantt-row-label{width:150px;min-width:150px}.gantt-row-label .label-text{font-size:var(--font-xs)}.tab-button{padding:var(--space-xs) var(--space-sm);font-size:var(--font-sm)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.scheduler-config,.scheduler-results{animation:fadeIn .3s ease-out}.user-list .empty-state,.risk-matrix .empty-state{padding:var(--space-xl) var(--space-base)}.user-list-compact{margin-bottom:var(--space-lg)}.user-chips{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.user-chip{position:relative;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-base);padding:var(--space-sm);transition:all .2s ease;cursor:pointer}.user-chip:hover{border-color:var(--color-primary);box-shadow:var(--shadow-base);transform:translateY(-2px)}.user-chip-content{display:flex;align-items:center;gap:var(--space-sm)}.user-chip-info{display:flex;flex-direction:column;gap:var(--space-xs)}.user-chip-name{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);white-space:nowrap}.avatar-sm{width:32px;height:32px;font-size:var(--font-xs)}.badge-xs{padding:2px 6px;font-size:10px;font-weight:600}.user-hover-card{position:absolute;top:100%;left:0;margin-top:var(--space-xs);min-width:280px;background:#fff;border:1px solid var(--border-medium);border-radius:var(--radius-base);padding:var(--space-base);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s ease;z-index:100;pointer-events:none}.user-chip:hover .user-hover-card{opacity:1;visibility:visible;transform:translateY(0)}@media (max-width: 768px){.user-chips{flex-direction:column}.user-chip{width:100%}.user-hover-card{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);max-width:90vw}.user-chip:hover .user-hover-card{transform:translate(-50%,-50%)}}.optimizer-modal{max-width:520px;width:100%}.optimizer-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-base) var(--space-lg);border-bottom:1px solid var(--border-light)}.optimizer-modal-header h3{margin:0;font-size:var(--font-lg);font-weight:600}.optimizer-modal-body{padding:var(--space-base) var(--space-lg)}.optimizer-modal-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-base)}.optimizer-modal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);max-height:340px;overflow-y:auto;padding-right:var(--space-xs);margin-bottom:var(--space-base)}.optimizer-modal-grid::-webkit-scrollbar{width:6px}.optimizer-modal-grid::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-sm)}.optimizer-modal-grid::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-sm)}.optimizer-modal-grid::-webkit-scrollbar-thumb:hover{background:var(--border-dark)}.optimizer-project-card{background:#fff;border:2px solid var(--border-light);border-radius:var(--radius-base);padding:var(--space-sm);cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;gap:var(--space-xs);min-height:72px}.optimizer-project-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.optimizer-project-card.selected{background:#e6f4f7;border-color:var(--color-primary);box-shadow:0 0 0 2px #015e7c1a}.optimizer-card-header{display:flex;align-items:center;gap:var(--space-xs);flex:1}.optimizer-card-color{width:12px;height:12px;min-width:12px;border-radius:3px;flex-shrink:0}.optimizer-card-footer{display:flex;justify-content:space-between;align-items:center}.optimizer-check-icon{color:var(--color-primary);flex-shrink:0}.optimizer-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-base) var(--space-lg);border-top:1px solid var(--border-light);background:var(--bg-secondary)}.snapshot-card-dates{display:flex;flex-direction:column;gap:2px}.btn-delay-alert{background:#fee2e2;color:#dc2626;border:1px solid #FECACA;font-weight:600;display:flex;align-items:center;gap:var(--space-xs)}.btn-delay-alert:hover{background:#fecaca;border-color:#fca5a5}.btn-delay-ok{background:#dcfce7;color:#16a34a;border:1px solid #BBF7D0;font-weight:600;display:flex;align-items:center;gap:var(--space-xs)}.btn-delay-ok:hover{background:#bbf7d0;border-color:#86efac}.delay-modal{max-width:560px;width:100%}.delay-list{display:flex;flex-direction:column;gap:var(--space-sm);max-height:400px;overflow-y:auto;padding-right:var(--space-xs)}.delay-list::-webkit-scrollbar{width:6px}.delay-list::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-sm)}.delay-list::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-sm)}.delay-item{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-base);padding:var(--space-sm) var(--space-base);border-left:4px solid var(--border-light)}.delay-item--atrasado{border-left-color:#dc2626;background:#fff5f5}.delay-item--adelantado,.delay-item--en-tiempo{border-left-color:#16a34a;background:#f0fff4}.delay-item--sin-datos{border-left-color:var(--border-medium)}.delay-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs)}.delay-item-dates{display:flex;gap:var(--space-lg)}.delay-date-row{display:flex;align-items:center;gap:var(--space-xs)}.delay-badge{font-size:11px;padding:2px 8px;border-radius:var(--radius-sm);font-weight:600}.delay-badge--atrasado{background:#fee2e2;color:#dc2626}.delay-badge--adelantado,.delay-badge--en-tiempo{background:#dcfce7;color:#16a34a}.delay-badge--sin-datos{background:var(--bg-tertiary);color:var(--text-tertiary)}@media (max-width: 768px){.optimizer-modal{max-width:95vw;margin:var(--space-base)}.optimizer-modal-grid{grid-template-columns:1fr;max-height:50vh}.delay-modal{max-width:95vw}.delay-item-dates{flex-direction:column;gap:var(--space-xs)}}.projects-page{overflow-x:hidden;overflow-y:visible}.project-count{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);background-color:var(--bg-primary);padding:.25rem .5rem;border-radius:12px;min-width:24px;text-align:center}.projects-tabs{display:flex;gap:var(--space-xs);border-bottom:2px solid var(--border-light)}.projects-tab{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-base);background:transparent;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;color:var(--text-secondary);font-size:var(--font-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.projects-tab:hover{color:var(--color-primary);background-color:#0099cc0d}.projects-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.projects-content{padding-top:var(--space-base)}.view-tabs{display:flex;gap:.5rem;padding:0;margin-top:1.5rem;border-bottom:2px solid var(--border-color)}.view-tabs .tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:none;background:transparent;color:var(--text-secondary);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;border-bottom:3px solid transparent;position:relative}.view-tabs .tab:hover{color:var(--primary-color);background-color:#0099cc0d}.view-tabs .tab.active{color:var(--accent-color);border-bottom-color:var(--accent-color);background-color:#0099cc0d}.tab-badge{font-size:.7rem;padding:.2rem .5rem;background-color:var(--accent-color);color:#fff;border-radius:10px;margin-left:.25rem}.tab-content{width:100%;max-width:100%}.header-filters{background-color:var(--bg-primary);padding:1rem 1.5rem;border-radius:12px;border:1px solid var(--border-color)}.filter-group{display:flex;align-items:center;gap:1rem}.filter-label{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.view-mode-tabs{display:flex;gap:.5rem;background-color:var(--bg-secondary);padding:.25rem;border-radius:8px}.view-mode-tabs .tab{padding:.5rem 1.25rem;border:none;background:transparent;color:var(--text-secondary);font-size:.875rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease}.view-mode-tabs .tab:hover{background-color:#015e7c1a;color:var(--primary-color)}.view-mode-tabs .tab.active{background-color:var(--accent-color);color:#fff}.empty-state-container{display:flex;align-items:center;justify-content:center;min-height:500px}.empty-state-content{text-align:center;max-width:500px;padding:3rem}.empty-illustration{margin-bottom:2rem;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-state-content .empty-icon{color:var(--accent-color);opacity:.3}.empty-state-content h2{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.75rem}.empty-state-content p{font-size:1rem;color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}.btn-create-first{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2rem;background-color:var(--accent-color);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-create-first:hover{background-color:var(--accent-dark);transform:translateY(-1px);box-shadow:0 4px 12px #0099cc4d}.projects-list{display:flex;flex-direction:column;gap:var(--space-base)}.project-card{transition:box-shadow .2s ease,transform .2s ease}.project-card.project-card-clickable{cursor:pointer}.project-card:hover{box-shadow:var(--shadow-md)}.drag-handle{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);cursor:grab;padding:var(--space-xs);border-radius:var(--radius-sm);transition:all .2s ease}.drag-handle:hover{color:var(--color-primary);background-color:var(--bg-secondary)}.drag-handle:active{cursor:grabbing}.priority-badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:26px;padding:0 var(--space-sm);background-color:#015e7c;color:#fff;font-size:.875rem;font-weight:700;border-radius:6px;letter-spacing:.3px;box-shadow:0 1px 3px #0000001f;flex-shrink:0}.project-name-link{cursor:pointer;transition:color .15s ease}.project-name-link:hover{color:var(--color-accent)!important}.project-progress{display:flex;align-items:center;gap:var(--space-sm)}.progress-bar{flex:1;height:6px;background-color:var(--bg-tertiary);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background-color:var(--color-accent);border-radius:3px;transition:width .3s ease}.project-status-wrapper{position:relative}.project-status-btn{cursor:pointer;display:inline-flex;align-items:center;gap:4px;border:none;transition:opacity .15s ease}.project-status-btn:hover{opacity:.85}.project-status-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:50;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-base);box-shadow:var(--shadow-lg);min-width:220px;padding:var(--space-xs);display:flex;flex-direction:column;gap:2px}.project-status-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);border:none;background:transparent;color:var(--text-primary);font-size:var(--font-sm);cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s ease;width:100%;text-align:left}.project-status-option:hover{background-color:var(--bg-secondary)}.project-status-option.active{background-color:var(--bg-tertiary);font-weight:600}.project-status-option span{flex:1}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.unassigned-tasks-section{border:1px dashed var(--border-medium);border-radius:var(--radius-base);overflow:hidden}.unassigned-tasks-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-base);background:var(--bg-secondary);border:none;cursor:pointer;color:var(--text-secondary);transition:background-color .15s ease}.unassigned-tasks-header:hover{background:var(--bg-tertiary)}.unassigned-tasks-list{display:flex;flex-direction:column}.unassigned-task-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-base);border-top:1px solid var(--border-light);gap:var(--space-sm)}.unassigned-task-row:hover{background:var(--bg-secondary)}.unassigned-task-info{cursor:pointer;min-width:0}.unassigned-task-info:hover .text-primary{color:var(--color-accent)}.unassigned-task-assign .select-sm{font-size:var(--font-xs);padding:var(--space-xs) var(--space-sm);height:auto;min-width:180px}.modal-large{max-width:700px;width:90%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-large>.flex:first-child{flex-shrink:0;padding:0;margin:0 0 var(--space-base) 0;border-bottom:1px solid var(--border-light);padding-bottom:var(--space-base)}.modal-large>div:not(.flex):not(.modal-footer){overflow-y:auto;flex:1;min-height:0;padding:0;margin:0}.modal-large .modal-footer{flex-shrink:0;border-top:1px solid var(--border-light);padding-top:var(--space-base);margin-top:var(--space-base);background:var(--bg-primary)}@media (max-width: 768px){.header-top{flex-direction:column;align-items:stretch;gap:1rem}.header-title{justify-content:center}.header-title h1{font-size:1.5rem}.btn-create-new,.btn-create-first{width:100%;justify-content:center}.filter-group{flex-direction:column;align-items:stretch}.view-mode-tabs{width:100%}.view-mode-tabs .tab{flex:1;text-align:center}.form-row{grid-template-columns:1fr}.empty-state-content{padding:2rem 1rem}.modal-large{max-width:95%;width:95%}}.project-detail-page{overflow-x:hidden}.project-detail-back{color:var(--text-secondary);font-size:var(--font-sm);font-weight:500}.project-detail-back:hover{color:var(--color-accent)}.project-detail-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-base)}.stat-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-base);padding:var(--space-base);text-align:center}.stat-card-success{border-left:3px solid var(--color-success)}.stat-card-primary{border-left:3px solid var(--color-primary)}.stat-card-warning{border-left:3px solid var(--color-warning)}.stat-value{font-size:var(--font-2xl);font-weight:700;color:var(--text-primary);line-height:1.2}.stat-label{font-size:var(--font-xs);color:var(--text-tertiary);margin-top:var(--space-xs);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.project-detail-progress .progress-bar{width:100%;height:10px;background-color:var(--bg-tertiary);border-radius:5px;overflow:hidden}.project-detail-progress .progress-fill{height:100%;background-color:var(--color-primary);border-radius:5px;transition:width .3s ease}.project-detail-filter{font-size:var(--font-sm);padding:var(--space-xs) var(--space-sm);height:auto;min-width:160px}.project-task-list{border:1px solid var(--border-light);border-radius:var(--radius-base);overflow:hidden}.project-task-list-header{display:grid;grid-template-columns:1fr 140px 80px 60px;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);background:var(--bg-secondary);border-bottom:1px solid var(--border-light);font-size:var(--font-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.project-task-row{display:grid;grid-template-columns:1fr 140px 80px 60px;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);border-bottom:1px solid var(--border-light);align-items:center;cursor:pointer;transition:background-color .15s ease}.project-task-row:last-child{border-bottom:none}.project-task-row:hover{background-color:var(--bg-secondary)}.project-task-col-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-task-col-status{display:flex;align-items:center}.project-task-col-assignee{display:flex;align-items:center;justify-content:center}.project-task-col-sp{text-align:center}.project-task-status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-xs);font-weight:600;white-space:nowrap}@media (max-width: 768px){.project-detail-stats{grid-template-columns:repeat(2,1fr)}.project-task-list-header,.project-task-row{grid-template-columns:1fr 100px 60px}.project-task-col-sp{display:none}.project-detail-filter{min-width:120px}}.table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.table-wrapper{overflow-x:auto}.generic-table{width:100%;border-collapse:collapse;font-size:.875rem}.generic-table thead{background:var(--gray-50, #f8fafc);border-bottom:2px solid var(--gray-200, #e5e7eb)}.generic-table th{padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;color:var(--gray-500, #6b7280)!important}.generic-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .2s ease}.generic-table tbody tr:last-child{border-bottom:none}.generic-table td{padding:1rem;color:#334155;vertical-align:middle}.generic-table.table-hoverable tbody tr:hover{background-color:#f8fafc}.generic-table tbody tr.table-row-clickable{cursor:pointer}.generic-table tbody tr.table-row-clickable:hover{background-color:#f1f5f9}.generic-table.table-striped tbody tr:nth-child(2n){background-color:#f9fafb}.generic-table.table-striped tbody tr:nth-child(2n):hover{background-color:#f1f5f9}.table-cell-truncate{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-cell-empty{color:#94a3b8;font-style:italic}.table-empty{text-align:center;padding:3rem!important;color:#94a3b8;font-style:italic}.table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.table-loading p{color:#64748b;font-size:1rem}.loading-spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top-color:var(--primary-color, #015E7C);border-radius:50%;animation:spin .8s linear infinite}.table-cell-bold{font-weight:600}.table-cell-muted{color:#64748b}.table-cell-small{font-size:.813rem}.table-cell-center{text-align:center}.table-cell-right{text-align:right}.table-sticky-right{position:sticky;right:0;z-index:1}.generic-table thead .table-sticky-right{background:var(--gray-50, #f8fafc);z-index:2}.generic-table tbody tr .table-sticky-right{background:#fff}.generic-table.table-hoverable tbody tr:hover .table-sticky-right{background-color:#f8fafc}.generic-table.table-striped tbody tr:nth-child(2n) .table-sticky-right{background-color:#f9fafb}.generic-table.table-striped tbody tr:nth-child(2n):hover .table-sticky-right{background-color:#f1f5f9}.generic-table tbody tr.table-row-clickable:hover .table-sticky-right{background-color:#f1f5f9}.table-filter-row .table-sticky-right{background:#f1f5f9}.table-sticky-right:before{content:"";position:absolute;top:0;bottom:0;left:-8px;width:8px;background:linear-gradient(to right,transparent,rgba(0,0,0,.04));pointer-events:none}@media (max-width: 768px){.generic-table{font-size:.813rem}.generic-table th,.generic-table td{padding:.75rem}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.generic-table{min-width:600px}}@media (max-width: 480px){.generic-table th,.generic-table td{padding:.5rem}}.table-filters-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.table-search{flex:1;max-width:400px;position:relative;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:2px solid #e2e8f0;border-radius:8px;transition:border-color .2s}.table-search:focus-within{border-color:var(--primary-color, #015E7C)}.table-search .icon{color:#94a3b8}.table-search-input{flex:1;border:none;outline:none;font-size:.875rem;background:transparent}.table-search-input::placeholder{color:#94a3b8}.table-filter-actions{display:flex;align-items:center;gap:.75rem}.btn-filter-toggle,.btn-clear-filters{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid #e2e8f0;background:#fff;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;color:#475569}.btn-filter-toggle:hover,.btn-clear-filters:hover{border-color:var(--primary-color, #015E7C);background:#f8fafc}.btn-filter-toggle.active{background:var(--primary-color, #015E7C);color:#fff;border-color:var(--primary-color, #015E7C)}.btn-clear-filters{border-color:#fca5a5;color:#dc2626}.btn-clear-filters:hover{background:#fef2f2;border-color:#dc2626}.table-results-count{font-size:.875rem;color:#64748b;font-weight:500;white-space:nowrap}.table-filter-row{background:#f1f5f9}.table-filter-cell{padding:.5rem!important}.table-filter-input,.table-filter-select{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:4px;font-size:.813rem;background:#fff;transition:border-color .2s}.table-filter-input:focus,.table-filter-select:focus{outline:none;border-color:var(--primary-color, #015E7C);box-shadow:0 0 0 3px #015e7c1a}.table-filter-select{cursor:pointer}@media (max-width: 768px){.table-filters-bar{flex-direction:column;align-items:stretch}.table-search{max-width:none}.table-filter-actions{justify-content:space-between}.btn-filter-toggle span,.btn-clear-filters span{display:none}}.table-actions-container.table-actions-horizontal{flex-direction:row;justify-content:flex-end}.table-actions-container.table-actions-vertical{flex-direction:column;align-items:stretch}.table-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;border:1px solid transparent;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;font-family:inherit}.table-action-btn:focus{outline:none;box-shadow:0 0 0 3px #015e7c26}.table-action-btn.table-action-small{padding:.25rem .5rem;font-size:.75rem;border-radius:4px}.table-action-btn.table-action-medium{padding:.375rem .75rem;font-size:.813rem}.table-action-btn.table-action-large{padding:.5rem 1rem;font-size:.875rem}.table-action-btn.table-action-icon-only{padding:.5rem;min-width:2rem;min-height:2rem;border-radius:6px}.table-action-btn.table-action-icon-only.table-action-small{padding:.375rem;min-width:1.75rem;min-height:1.75rem;border-radius:4px}.table-action-btn.table-action-icon-only.table-action-large{padding:.625rem;min-width:2.5rem;min-height:2.5rem;border-radius:8px}@media (max-width: 768px){.table-action-btn.table-action-small .table-action-label{display:none}}.table-action-primary{background:var(--primary-color, #015E7C);color:#fff;border-color:var(--primary-color, #015E7C)}.table-action-primary:hover:not(.table-action-disabled){background:#014152;border-color:#014152;transform:translateY(-1px);box-shadow:0 2px 4px #015e7c33}.table-action-primary:active:not(.table-action-disabled){transform:translateY(0)}.table-action-secondary{background:#fff;color:#475569;border-color:#e2e8f0}.table-action-secondary:hover:not(.table-action-disabled){background:#f8fafc;border-color:#cbd5e1;color:#334155}.table-action-success{background:#06d6a0;color:#fff;border-color:#06d6a0}.table-action-success:hover:not(.table-action-disabled){background:#05a57a;border-color:#05a57a;transform:translateY(-1px);box-shadow:0 2px 4px #06d6a033}.table-action-warning{background:#ffd166;color:#7c5d1a;border-color:#ffd166}.table-action-warning:hover:not(.table-action-disabled){background:#e6b84f;border-color:#e6b84f;transform:translateY(-1px);box-shadow:0 2px 4px #ffd1664d}.table-action-danger{background:#ef476f;color:#fff;border-color:#ef476f}.table-action-danger:hover:not(.table-action-disabled){background:#d63557;border-color:#d63557;transform:translateY(-1px);box-shadow:0 2px 4px #ef476f4d}.table-action-info{background:#118ab2;color:#fff;border-color:#118ab2}.table-action-info:hover:not(.table-action-disabled){background:#0d6e8f;border-color:#0d6e8f;transform:translateY(-1px);box-shadow:0 2px 4px #118ab24d}.table-action-ghost{background:transparent;color:#64748b;border-color:transparent}.table-action-ghost:hover:not(.table-action-disabled){background:#f1f5f9;color:#334155}.table-action-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.table-action-label{line-height:1}@media (max-width: 640px){.table-actions-container.table-actions-horizontal{gap:.25rem}.table-action-btn{padding:.25rem .5rem;font-size:.75rem}.table-action-label{display:none}.table-actions-vertical .table-action-label{display:inline}}.table-action-btn.table-action-icon-only{position:relative}.table-action-btn.table-action-icon-only:hover:before{content:attr(title);position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%);padding:.375rem .625rem;background:#1e293b;color:#fff;font-size:.75rem;font-weight:500;border-radius:6px;white-space:nowrap;pointer-events:none;z-index:1000;opacity:0;animation:tooltip-fade-in .15s ease-in-out .3s forwards;box-shadow:0 4px 6px #0000001a}.table-action-btn.table-action-icon-only:hover:after{content:"";position:absolute;bottom:calc(100% + .125rem);left:50%;transform:translate(-50%);border:.25rem solid transparent;border-top-color:#1e293b;pointer-events:none;z-index:1000;opacity:0;animation:tooltip-fade-in .15s ease-in-out .3s forwards}@keyframes tooltip-fade-in{to{opacity:1}}.task-title{font-weight:500;color:#333;max-width:250px}.task-description{color:#666;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-description em{color:#999}.task-date{color:#666;font-size:.9rem;white-space:nowrap}.priority-badge,.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:500;white-space:nowrap}.priority-low{background:var(--priority-low-light);color:var(--priority-low)}.priority-medium{background:var(--priority-medium-light);color:var(--priority-medium-dark)}.priority-high{background:var(--priority-high-light);color:var(--priority-high)}.priority-critical{background:var(--priority-critical-light);color:var(--priority-critical)}.status-pending{background:var(--status-pending-bg);color:var(--status-pending-text)}.status-in-progress{background:var(--status-in-progress-bg);color:var(--status-in-progress-text)}.status-qa{background:var(--status-qa-bg);color:var(--status-qa-text)}.status-completed{background:var(--status-completed-bg);color:var(--status-completed-text)}.archived-error-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:2rem auto;max-width:600px}@media (max-width: 768px){.task-title,.task-description{max-width:150px}}.user-email{font-weight:500;color:var(--primary-color)}.user-name{color:#475569}.user-date{color:#64748b;font-size:.813rem}.role-badge{display:inline-block;padding:.375rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-badge-admin{background-color:#fef3c7;color:#92400e;border:1px solid #fbbf24}.role-badge-user{background-color:#dbeafe;color:#1e40af;border:1px solid #60a5fa}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-enabled{background-color:#dcfce7;color:#166534;border:1px solid #4ade80}.status-disabled{background-color:#fee2e2;color:#991b1b;border:1px solid #f87171}.planning-poker-page{display:flex;flex-direction:column;height:calc(100vh - 75px);max-height:calc(100vh - 75px);overflow:hidden;background-color:var(--bg-primary)}.planning-poker-header{display:flex;align-items:center;gap:var(--space-base);padding:var(--space-lg);border-bottom:1px solid var(--border-light);background-color:var(--bg-primary);flex-shrink:0}.planning-poker-participants{background-color:var(--bg-secondary);overflow-y:auto;max-height:300px}.participants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-base)}.participant-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-base);border-radius:var(--radius-base);background-color:var(--bg-primary);border:1px solid var(--border-light);transition:all .2s ease}.participant-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-sm)}.participant-vote{margin-top:var(--space-sm);display:flex;align-items:center;justify-content:center;width:100%}.vote-value{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;border-radius:var(--radius-base);font-weight:600;font-size:var(--font-lg)}.vote-value.hidden{background-color:var(--color-primary);color:var(--text-inverse)}.vote-value.revealed{background-color:var(--color-success);color:var(--text-inverse)}.vote-value.pending{background-color:var(--bg-tertiary);color:var(--text-tertiary);font-size:var(--font-xl)}.planning-poker-cards{background-color:var(--bg-primary);overflow-x:auto;overflow-y:hidden;max-height:400px}.planning-poker-cards::-webkit-scrollbar{height:12px}.planning-poker-cards::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:6px}.planning-poker-cards::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:6px}.planning-poker-cards::-webkit-scrollbar-thumb:hover{background:var(--border-dark)}.poker-cards-grid{display:flex;gap:var(--space-base);min-height:min-content}.poker-card{width:70px;height:105px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:2px solid var(--border-medium);border-radius:var(--radius-md);background-color:var(--bg-primary);font-size:var(--font-2xl);font-weight:700;color:var(--text-primary);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.poker-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--color-primary);background-color:var(--color-primary);color:var(--text-inverse)}.poker-card.selected{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--color-primary);background-color:var(--color-primary);color:var(--text-inverse)}.poker-card:active{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.planning-poker-results{background-color:var(--bg-secondary);overflow-y:auto;max-height:400px}.results-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--space-base);margin-bottom:var(--space-base)}.stat-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-base);border-radius:var(--radius-base);background-color:var(--bg-primary);border:1px solid var(--border-light)}.stat-label{font-size:var(--font-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs)}.stat-value{font-size:var(--font-2xl);font-weight:700;color:var(--color-primary)}.planning-poker-footer{padding:var(--space-lg);border-top:1px solid var(--border-light);background-color:var(--bg-primary);display:flex;justify-content:space-between;align-items:center}@media (max-width: 768px){.planning-poker-modal{max-width:95vw}.participants-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.poker-card{width:60px;height:90px}.results-stats{grid-template-columns:repeat(2,1fr)}}@keyframes revealVote{0%{transform:rotateY(90deg);opacity:0}to{transform:rotateY(0);opacity:1}}.vote-value.revealed{animation:revealVote .3s ease-out}.planning-poker-content{display:flex;flex:1;overflow:hidden}.planning-poker-sidebar{width:280px;border-right:1px solid var(--border-light);background-color:var(--bg-secondary);padding:var(--space-base);overflow-y:auto}.task-list-toggle-mobile{display:none;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background-color:var(--color-primary);color:var(--text-inverse);border:none;font-size:var(--font-sm);font-weight:600;cursor:pointer;width:100%;justify-content:center;transition:background-color .2s ease}.task-list-toggle-mobile:hover{background-color:var(--color-accent)}.task-list-toggle-mobile:active{transform:scale(.98)}.planning-poker-main{flex:1;overflow:hidden;display:flex;flex-direction:column}.planning-poker-scrollable{flex:1;overflow-y:auto;overflow-x:hidden}.planning-poker-scrollable::-webkit-scrollbar{width:8px}.planning-poker-scrollable::-webkit-scrollbar-track{background:#f3f4f6;border-radius:4px}.planning-poker-scrollable::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.planning-poker-scrollable::-webkit-scrollbar-thumb:hover{background:#9ca3af}.task-queue{display:flex;flex-direction:column;gap:var(--space-xs)}.task-queue-item{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--radius-base);background-color:var(--bg-primary);border:1px solid var(--border-light);transition:all .2s ease}.task-queue-item:hover:not(.estimated){border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translate(4px);background-color:#015e7c0d}.task-queue-item.current{border-color:var(--color-primary);background-color:#015e7c26;border-width:2px;box-shadow:var(--shadow-md)}.task-queue-item.estimated{opacity:.6}.participants-section{padding:var(--space-base);border-bottom:1px solid var(--border-light);background-color:var(--bg-secondary)}.participant-card.moderator{border:2px solid var(--color-primary);background-color:#015e7c0d}.participants-footer{margin-top:auto;padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--border-light);background-color:var(--bg-secondary);display:flex;align-items:center;gap:var(--space-base);flex-shrink:0}.participants-compact-list{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.participant-compact{position:relative;display:flex;align-items:center;justify-content:center}.participant-fade-enter{opacity:0;transform:scale(.8)}.participant-fade-enter-active{opacity:1;transform:scale(1);transition:all .3s ease-in-out}.participant-fade-exit{opacity:1;transform:scale(1)}.participant-fade-exit-active{opacity:0;transform:scale(.8);transition:all .3s ease-in-out}.participant-compact.moderator{border:2px solid var(--color-primary);border-radius:50%;padding:2px}.participant-vote-badge{position:absolute;bottom:-4px;right:-4px;background-color:var(--bg-primary);border-radius:50%;padding:2px;display:flex;align-items:center;justify-content:center;min-width:20px;min-height:20px;border:1px solid var(--border-light);box-shadow:var(--shadow-sm)}.vote-compact{font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;min-width:16px;min-height:16px}.vote-compact.revealed{color:var(--color-success)}.vote-compact.pending{color:var(--text-tertiary)}.poker-task-section{background-color:#fff;padding:2rem;border-bottom:1px solid #e5e7eb}.poker-task-title{font-size:1.75rem;font-weight:700;color:#111827;margin:0;line-height:1.3;letter-spacing:-.02em}.poker-section-label{margin-bottom:1rem;font-size:.6875rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:1px}.poker-task-description{line-height:1.6;color:#374151;font-size:.9375rem}.poker-task-description h1,.poker-task-description h2,.poker-task-description h3{font-weight:600;margin-top:1.5rem;margin-bottom:.75rem;color:#111827}.poker-task-description h1{font-size:1.5rem}.poker-task-description h2{font-size:1.25rem}.poker-task-description h3{font-size:1.125rem}.poker-task-description p{margin-bottom:1rem}.poker-task-description ul,.poker-task-description ol{margin-left:1.5rem;margin-bottom:1rem}.poker-task-description li{margin-bottom:.5rem}.poker-task-description a{color:var(--color-primary);text-decoration:underline}.poker-task-description code{background-color:#f3f4f6;padding:.125rem .375rem;border-radius:.25rem;font-family:monospace;font-size:.875em}.poker-task-description pre{background-color:#f3f4f6;padding:1rem;border-radius:.375rem;overflow-x:auto;margin-bottom:1rem}.poker-task-description blockquote{border-left:3px solid var(--color-primary);padding-left:1rem;margin-left:0;margin-bottom:1rem;color:#6b7280;font-style:italic}.poker-task-description img{max-width:100%;height:auto;border-radius:.375rem;margin:1rem 0}.task-presentation{background-color:var(--bg-primary);padding:var(--space-lg);padding-bottom:var(--space-sm)}.task-description{max-height:400px;overflow-y:auto;line-height:1.6}.task-description-wrapper{border:1px solid var(--border-light);border-radius:var(--radius-base);padding:var(--space-sm);background-color:var(--bg-secondary)}.task-description-wrapper::-webkit-scrollbar{width:8px}.task-description-wrapper::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:4px}.task-description-wrapper::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}.task-description-wrapper::-webkit-scrollbar-thumb:hover{background:var(--border-dark)}.task-attachments{margin-top:var(--space-sm)}.voting-section{background-color:var(--bg-primary);padding:var(--space-lg);padding-top:var(--space-sm)}.poker-deck-fixed{flex-shrink:0;background-color:var(--bg-primary);padding:var(--space-lg) var(--space-lg) var(--space-base);border-top:1px solid var(--border-light);box-shadow:0 -2px 8px #0000000d}.poker-deck-fixed h4{margin-bottom:var(--space-md)}.poker-deck-fixed .poker-cards-grid{overflow-x:auto;overflow-y:hidden;padding-bottom:var(--space-xs);padding-top:var(--space-base)}.poker-deck-fixed .poker-cards-grid::-webkit-scrollbar{height:6px}.poker-deck-fixed .poker-cards-grid::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:3px}.poker-deck-fixed .poker-cards-grid::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}.poker-deck-fixed .poker-cards-grid::-webkit-scrollbar-thumb:hover{background:var(--border-dark)}.results-section{background-color:var(--bg-secondary);padding:var(--space-lg)}.consensus-message{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}@media (max-width: 968px){.planning-poker-room-modal{max-width:95vw}.planning-poker-content{flex-direction:column}.planning-poker-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-light);max-height:200px}}@media (max-width: 640px){.planning-poker-header{padding:var(--space-sm);gap:var(--space-sm);flex-wrap:wrap}.planning-poker-header .btn{padding:var(--space-xs) var(--space-sm);font-size:var(--font-sm)}.planning-poker-header .btn .btn-text-mobile-hidden{display:none}.planning-poker-header .flex-1{flex:unset;order:-1;width:100%;margin-bottom:var(--space-xs)}.planning-poker-header h2{font-size:var(--font-lg)}.planning-poker-header p{font-size:var(--font-xs)}.task-list-toggle-mobile{display:flex}.planning-poker-sidebar{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;max-height:100vh;z-index:1000;transform:translate(-100%);transition:transform .3s ease;box-shadow:var(--shadow-xl)}.planning-poker-sidebar.show-mobile{transform:translate(0)}.poker-card{width:50px;height:75px;font-size:var(--font-xl)}.poker-deck-fixed{padding:var(--space-base) var(--space-sm)}.poker-deck-fixed h4{font-size:var(--font-base);margin-bottom:var(--space-sm)}.task-presentation{padding:var(--space-base)}.task-presentation h4{font-size:var(--font-base)}.results-section{padding:var(--space-base)}.results-stats{grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.stat-card{padding:var(--space-sm)}.stat-value{font-size:var(--font-xl)}.results-section .form-group{margin-top:var(--space-base)}.results-section .flex{flex-direction:column;gap:var(--space-xs)}.results-section .btn{width:100%}.participants-footer{padding:var(--space-xs) var(--space-sm);flex-wrap:wrap;gap:var(--space-xs)}.participants-footer .flex{width:100%;margin-bottom:var(--space-xs)}.participants-compact-list{justify-content:center;gap:var(--space-xs)}.task-queue-item{padding:var(--space-xs)}.task-queue-item span{font-size:var(--font-xs)}.task-queue-item .badge{font-size:var(--font-xs);padding:2px 6px}.empty-state{padding:var(--space-lg) var(--space-base)!important}.empty-state h4{font-size:var(--font-base)}.empty-state p{font-size:var(--font-sm)}.consensus-message{padding:var(--space-sm)!important}.consensus-message p{font-size:var(--font-sm)}.task-attachments{margin-top:var(--space-xs)}.task-attachments .badge{font-size:var(--font-xs);padding:4px 8px}.poker-vote-button-mobile{display:block!important;padding:var(--space-base);border-top:1px solid var(--border-light);background-color:var(--bg-primary);flex-shrink:0}.poker-deck-desktop{display:none!important}.poker-task-section{padding:var(--space-base)}.poker-task-title{font-size:var(--font-xl)}.poker-task-description{font-size:var(--font-sm)}.voting-card-large{width:180px;height:270px;min-width:180px;min-height:270px;max-width:180px;max-height:270px;font-size:4rem}.voting-nav-button{width:50px;height:50px}.voting-modal-content{padding:var(--space-lg)}}.voting-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000e6;z-index:2000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease;overflow:hidden;touch-action:none}.voting-modal-content{width:100%;max-width:500px;padding:var(--space-2xl);display:flex;flex-direction:column;align-items:center;gap:var(--space-2xl);position:relative}.voting-modal-close{position:absolute;top:var(--space-base);right:var(--space-base);background:#ffffff1a;border:none;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}.voting-modal-close:hover{background:#fff3}.voting-modal-title{color:#fff;font-size:var(--font-xl);font-weight:600;margin:0;text-align:center}.voting-modal-card-container{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);width:100%;position:relative;overflow:visible;padding:0 var(--space-sm)}.voting-card-large{width:200px;height:300px;min-width:200px;min-height:300px;max-width:200px;max-height:300px;display:flex;align-items:center;justify-content:center;background-color:#fff;border:4px solid var(--color-primary);border-radius:var(--radius-lg);font-size:5rem;font-weight:700;color:var(--color-primary);box-shadow:var(--shadow-xl);flex-shrink:0;flex-grow:0;user-select:none;-webkit-user-select:none;touch-action:none;transition:all .3s ease}.voting-card-large.locked{border-color:var(--color-success);color:var(--color-success);opacity:.9}@keyframes cardPop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideInFromRight{0%{transform:translate(50%) scale(.9) rotateY(-15deg);opacity:0}to{transform:translate(0) scale(1) rotateY(0);opacity:1}}@keyframes slideInFromLeft{0%{transform:translate(-50%) scale(.9) rotateY(15deg);opacity:0}to{transform:translate(0) scale(1) rotateY(0);opacity:1}}.voting-card-large.slide-next{animation:slideInFromRight .3s cubic-bezier(.34,1.56,.64,1)}.voting-card-large.slide-prev{animation:slideInFromLeft .3s cubic-bezier(.34,1.56,.64,1)}.voting-nav-button{background:#ffffff1a;border:2px solid rgba(255,255,255,.3);color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.voting-nav-button:hover:not(:disabled){background:#fff3;border-color:#ffffff80;transform:scale(1.1)}.voting-nav-button:active:not(:disabled){transform:scale(.95)}.voting-nav-button:disabled{opacity:.3;cursor:not-allowed}.voting-modal-indicator{display:flex;gap:var(--space-xs);align-items:center;justify-content:center}.voting-dot{width:10px;height:10px;border-radius:50%;background-color:#ffffff4d;cursor:pointer;transition:all .2s ease}.voting-dot.active{background-color:#fff;width:14px;height:14px}.voting-dot:hover{background-color:#fff9}.voting-waiting-badge{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-base);background-color:#ffffff26;border-radius:var(--radius-lg);color:#fff;font-size:var(--font-sm);font-weight:500;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.voting-modal-results{width:100%;display:flex;flex-direction:column;gap:var(--space-base)}.voting-results-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.voting-modal-results .stat-card{background-color:#fff;border:none}.voting-modal-results .stat-label{color:var(--text-secondary)}.voting-modal-results .stat-value{color:var(--color-primary)}.voting-results-votes{background-color:#fff;border-radius:var(--radius-base);padding:var(--space-base);color:var(--text-primary)}.voting-results-votes h4{color:var(--text-secondary)}.votes-list{display:flex;flex-direction:column;gap:var(--space-xs)}.vote-item{background-color:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.voting-modal-results .btn{background-color:#fff;color:var(--text-primary);border:2px solid var(--border-medium)}.voting-modal-results .btn-primary{background-color:#fff;color:var(--color-primary);border-color:var(--color-primary)}.voting-modal-results .btn-primary:hover{background-color:var(--color-primary);color:#fff}.voting-modal-results .btn-secondary{background-color:#fff;color:var(--text-secondary);border-color:var(--border-medium)}.voting-modal-results .btn-secondary:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.poker-vote-button-mobile{display:none}@media (max-width: 375px){.poker-card{width:45px;height:68px;font-size:var(--font-lg)}.participants-footer{padding:var(--space-xs)}.participant-compact{transform:scale(.9)}.stat-value{font-size:var(--font-lg)}.voting-card-large{width:150px;height:225px;min-width:150px;min-height:225px;max-width:150px;max-height:225px;font-size:3.5rem}.voting-nav-button{width:45px;height:45px}.voting-modal-content{padding:var(--space-base)}}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-lg)}.course-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow .2s ease,transform .2s ease;cursor:pointer}.course-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-card-banner{height:8px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light))}.course-card-body{padding:var(--space-base)}.course-card-meta{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.course-progress-ring{width:40px;height:40px;position:relative}.course-progress-ring svg{transform:rotate(-90deg)}.course-progress-ring .ring-bg{stroke:var(--border-light)}.course-progress-ring .ring-fill{stroke:var(--color-success);transition:stroke-dashoffset .4s ease}.course-progress-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:var(--font-xs);font-weight:600;color:var(--text-secondary)}.course-detail{display:grid;grid-template-columns:300px 1fr;gap:var(--space-lg);min-height:calc(100vh - 120px)}.course-sidebar{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;align-self:start;position:sticky;top:var(--space-base)}.course-sidebar-header{padding:var(--space-base);border-bottom:1px solid var(--border-light)}.course-lesson-list{list-style:none;padding:0;margin:0}.course-lesson-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .15s ease;font-size:var(--font-sm)}.course-lesson-item:last-child{border-bottom:none}.course-lesson-item:hover{background:var(--bg-secondary)}.course-lesson-item.active{background:var(--color-primary-lighter);color:var(--color-primary-dark);font-weight:500}.course-lesson-item.locked{opacity:.5;cursor:not-allowed}.course-lesson-item.locked:hover{background:transparent}.lesson-status-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%}.lesson-status-icon.completed{color:var(--color-success)}.lesson-status-icon.current{color:var(--color-primary)}.lesson-status-icon.locked{color:var(--text-tertiary)}.lesson-number{font-size:var(--font-xs);font-weight:600;color:var(--text-tertiary);min-width:20px}.course-content{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden}.lesson-content-header{padding:var(--space-base) var(--space-lg);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.lesson-content-body{padding:var(--space-lg);max-width:800px}.lesson-content-body h2{font-size:var(--font-xl);font-weight:700;color:var(--text-primary);margin:var(--space-lg) 0 var(--space-sm);padding-bottom:var(--space-xs);border-bottom:2px solid var(--color-primary-lighter)}.lesson-content-body h2:first-child{margin-top:0}.lesson-content-body h3{font-size:var(--font-lg);font-weight:600;color:var(--text-primary);margin:var(--space-base) 0 var(--space-sm)}.lesson-content-body p{font-size:var(--font-base);line-height:1.7;color:var(--text-secondary);margin-bottom:var(--space-sm)}.lesson-content-body ul,.lesson-content-body ol{padding-left:var(--space-lg);margin-bottom:var(--space-sm)}.lesson-content-body li{font-size:var(--font-base);line-height:1.7;color:var(--text-secondary);margin-bottom:var(--space-xs)}.lesson-content-body strong{color:var(--text-primary);font-weight:600}.lesson-content-body table{width:100%;border-collapse:collapse;margin:var(--space-base) 0;font-size:var(--font-sm)}.lesson-content-body table th{background:var(--bg-secondary);padding:var(--space-sm);text-align:left;font-weight:600;border:1px solid var(--border-light);color:var(--text-primary)}.lesson-content-body table td{padding:var(--space-sm);border:1px solid var(--border-light);color:var(--text-secondary)}.lesson-content-body .callout{background:var(--color-primary-lighter);border-left:4px solid var(--color-primary);padding:var(--space-sm) var(--space-base);margin:var(--space-base) 0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--font-sm);color:var(--text-primary)}.lesson-content-body .callout-warning{background:var(--color-warning-light);border-left-color:var(--color-warning-dark)}.lesson-content-body code{background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--font-sm);font-family:SF Mono,Fira Code,monospace}.lesson-content-body pre{background:var(--bg-tertiary);padding:var(--space-base);border-radius:var(--radius-base);overflow-x:auto;margin:var(--space-base) 0}.lesson-content-body pre code{background:none;padding:0}.mermaid-diagram{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-base);padding:var(--space-base);margin:var(--space-base) 0;overflow-x:auto;display:flex;justify-content:center;max-width:calc(100vw - 380px);width:max-content;min-width:100%}.mermaid-diagram svg{height:auto}.mermaid-diagram .nodeLabel,.mermaid-diagram .label{overflow:visible!important}.diagram-source{margin-bottom:var(--space-base)}.diagram-source summary{font-size:var(--font-xs);color:var(--text-tertiary);cursor:pointer;padding:var(--space-xs) 0;-webkit-user-select:none;user-select:none}.diagram-source summary:hover{color:var(--text-secondary)}.diagram-source pre{margin-top:var(--space-xs)}.lesson-nav{padding:var(--space-base) var(--space-lg);border-top:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.test-runner,.test-results{padding:var(--space-lg)}.test-progress-bar{height:4px;background:var(--border-light);border-radius:2px;overflow:hidden}.test-progress-fill{height:100%;background:var(--color-primary);transition:width .3s ease;border-radius:2px}.test-question{min-height:200px}.test-options{display:flex;flex-direction:column;gap:var(--space-sm)}.test-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);border:2px solid var(--border-light);border-radius:var(--radius-base);background:var(--bg-primary);cursor:pointer;transition:all .15s ease;text-align:left;width:100%;font-size:var(--font-sm)}.test-option:hover{border-color:var(--color-primary-light);background:var(--bg-secondary)}.test-option.selected{border-color:var(--color-primary);background:var(--color-primary-lighter)}.test-option-indicator{flex-shrink:0;display:flex;align-items:center;color:var(--color-primary)}.test-option-circle{width:18px;height:18px;border:2px solid var(--border-medium);border-radius:50%;display:block}.test-option.selected .test-option-circle{border-color:var(--color-primary)}.test-dot{width:8px;height:8px;border-radius:50%;border:none;background:var(--border-light);cursor:pointer;padding:0;transition:all .15s ease}.test-dot.active{background:var(--color-primary);transform:scale(1.3)}.test-dot.answered{background:var(--color-primary-light)}.test-results-header{text-align:center;padding:var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-base)}.test-results-header.test-passed{background:var(--color-success-light);color:var(--color-success-dark)}.test-results-header.test-failed{background:#fef2f2;color:var(--color-error)}.test-results-icon{margin-bottom:var(--space-sm)}.test-review{display:flex;flex-direction:column;gap:var(--space-sm)}.test-review-item{padding:var(--space-sm) var(--space-base);border-radius:var(--radius-base);border:1px solid var(--border-light)}.test-review-item.correct{background:var(--color-success-light);border-color:var(--color-success)}.test-review-item.incorrect{background:#fef2f2;border-color:var(--color-error)}.course-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);text-align:center;color:var(--text-tertiary)}.course-welcome-icon{margin-bottom:var(--space-base);opacity:.5}@media (max-width: 768px){.courses-grid,.course-detail{grid-template-columns:1fr}.course-sidebar{position:static}}.course-complete-banner{background:linear-gradient(135deg,var(--color-success),var(--color-success-dark));color:#fff;padding:var(--space-lg);border-radius:var(--radius-md);text-align:center;margin-bottom:var(--space-base)}.cp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-base)}.cp-stat-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-base);padding:var(--space-base);display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.cp-stat-value{font-size:var(--font-2xl);font-weight:700;color:var(--text-primary)}.cp-stat-label{font-size:var(--font-xs);color:var(--text-tertiary)}.cp-table{width:100%;border-collapse:collapse}.cp-table th{text-align:left;padding:var(--space-sm) var(--space-base);font-size:var(--font-xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-light)}.cp-table td{padding:var(--space-sm) var(--space-base);border-bottom:1px solid var(--border-light);vertical-align:middle}.cp-user-row{cursor:pointer;transition:background .15s ease}.cp-user-row:hover{background:var(--bg-secondary)}.cp-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);font-weight:600;flex-shrink:0}.cp-progress-bar-container{width:100px;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:2px}.cp-progress-bar{height:100%;background:var(--color-primary);border-radius:3px;transition:width .3s ease}.cp-detail-row td{padding:0;background:var(--bg-secondary)}.cp-lessons-detail{padding:var(--space-base) var(--space-lg)}.cp-lessons-table{width:100%;border-collapse:collapse}.cp-lessons-table th{text-align:left;padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);font-weight:600;color:var(--text-tertiary);border-bottom:1px solid var(--border-light)}.cp-lessons-table td{padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border-light)}.cp-icon-success{color:var(--color-success)}.cp-icon-warning{color:var(--color-warning)}.cp-icon-muted{color:var(--text-tertiary)}.cp-text-warning{color:var(--color-warning-dark);font-weight:600}.sidebar{width:260px;background-color:var(--sidebar-bg);display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);position:fixed;left:0;top:0;bottom:0;z-index:100;overflow:hidden}.sidebar.collapsed{width:72px}.sidebar-top{padding:var(--space-xs) 0}.sidebar.collapsed .sidebar-top{justify-content:center}.sidebar-toggle{width:28px;height:28px;border-radius:var(--radius-base);border:1px solid var(--sidebar-border);background-color:transparent;color:var(--sidebar-text);cursor:pointer;transition:all .2s ease;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sidebar-toggle:hover{background-color:var(--sidebar-bg-hover);color:#fff;border-color:#ffffff26}.sidebar-section-label{padding:0;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#ffffff4d}.sidebar.collapsed .sidebar-section-label{display:none}.sidebar-nav{overflow-y:auto;padding:var(--space-sm)}.sidebar-item{padding:.625rem .75rem;color:var(--sidebar-text);text-decoration:none;transition:all .15s ease;cursor:pointer;position:relative;border-radius:var(--radius-base);margin-bottom:2px}.sidebar-item:hover{background-color:var(--sidebar-bg-hover);color:var(--sidebar-text-hover)}.sidebar-item.active{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-active);font-weight:600}.sidebar-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:60%;width:3px;background-color:var(--sidebar-accent);border-radius:0 3px 3px 0}.sidebar-icon{font-size:1.25rem;flex-shrink:0;width:22px;text-align:center;position:relative;display:flex;align-items:center;justify-content:center}.sidebar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem;font-weight:500}.sidebar.collapsed .sidebar-label{display:none}.sidebar.collapsed .sidebar-item{justify-content:center;padding:.75rem 0}.sidebar-divider{height:1px;background-color:var(--sidebar-border);margin:var(--space-sm) var(--space-sm)}.sidebar.collapsed .sidebar-divider{margin:var(--space-sm) var(--space-xs)}.sidebar-badge{background-color:var(--color-error, #ef4444);color:#fff;font-size:.6rem;font-weight:700;min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;line-height:1;margin-left:auto}.sidebar-badge-collapsed{position:absolute;top:-6px;right:-8px;min-width:16px;height:16px;font-size:.55rem;padding:0 4px;margin-left:0}.sidebar-user-wrapper{position:relative;border-top:1px solid var(--sidebar-border)}.sidebar-user-btn{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-base);background:transparent;border:none;cursor:pointer;transition:background-color .15s ease;text-align:left}.sidebar-user-btn:hover{background-color:var(--sidebar-bg-hover)}.sidebar.collapsed .sidebar-user-btn{justify-content:center;padding:var(--space-sm)}.sidebar-user-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--accent-color),var(--color-primary));color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-user-info{min-width:0;flex:1}.sidebar-user-name{font-size:.8rem;font-weight:600;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-email{font-size:.7rem;color:#fff6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar.collapsed .sidebar-user-info{display:none}.sidebar-user-menu{position:absolute;bottom:100%;left:var(--space-sm);right:var(--space-sm);margin-bottom:var(--space-xs);background:var(--bg-primary);border-radius:var(--radius-base);box-shadow:var(--shadow-lg);border:1px solid var(--border-light);overflow:hidden;z-index:200}.sidebar-user-menu-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:.625rem .75rem;background:transparent;border:none;cursor:pointer;font-size:.85rem;font-family:inherit;color:var(--text-secondary);transition:all .15s ease}.sidebar-user-menu-item:hover{background-color:var(--gray-50);color:var(--color-error)}.sidebar-user-menu-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#fff3}@media (max-width: 1024px){.sidebar{width:280px;max-width:280px;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 24px #0000004d}.sidebar.collapsed{width:280px;max-width:280px;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.sidebar-header{min-height:56px;height:56px}.sidebar-brand-text,.sidebar-label{display:inline!important}.sidebar-item{padding:.75rem}}@media (max-width: 640px){.sidebar,.sidebar.collapsed{width:260px;max-width:260px}.sidebar-header{min-height:52px;height:52px}}.main-layout{min-height:100vh;background-color:var(--gray-50)}.main-content{flex:1;margin-left:260px;display:flex;flex-direction:column;transition:margin-left .3s cubic-bezier(.4,0,.2,1);min-width:0;overflow-x:hidden}.main-content.sidebar-collapsed{margin-left:72px}.mobile-header{display:none}.mobile-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:90;animation:fadeIn .2s ease}.main-container{overflow-y:auto;overflow-x:hidden;max-width:100%;padding:1rem}@media (max-width: 768px){.main-container{padding:.5rem}}@media (max-width: 1024px){.main-content,.main-content.sidebar-collapsed{margin-left:0}.mobile-header{display:flex;align-items:center;background-color:var(--bg-primary);border-bottom:1px solid var(--border-light);min-height:52px;height:52px;padding:0 var(--space-sm)}.mobile-menu-button{display:flex!important}.mobile-backdrop{display:block}}@media (max-width: 640px){.mobile-header{min-height:48px;height:48px}}:root{--color-primary: #015E7C;--color-primary-dark: #014152;--color-primary-light: #0099CC;--color-primary-lighter: #b3e5f5;--primary-color: #015E7C;--accent-color: #0099CC;--accent-dark: #007ba3;--color-secondary: #073b4c;--color-secondary-dark: #012a36;--color-secondary-light: #118ab2;--color-success: #06d6a0;--color-success-dark: #05a57a;--color-success-light: #d1fae5;--color-warning: #ffd166;--color-warning-dark: #e6b84f;--color-warning-light: #fff3d9;--color-error: #ef476f;--color-error-dark: #d63557;--color-error-light: #fde0e7;--color-info: #118ab2;--color-info-light: #d4eef5;--priority-low: #06d6a0;--priority-low-light: #d1fae5;--priority-low-dark: #05a57a;--priority-medium: #ffd166;--priority-medium-light: #fff3d9;--priority-medium-dark: #e6b84f;--priority-high: #ef476f;--priority-high-light: #fde0e7;--priority-critical: #d63557;--priority-critical-light: #fccdd9;--status-pending: #ffd166;--status-pending-bg: #fff3d9;--status-pending-text: #9c7a2f;--status-in-progress: #118ab2;--status-in-progress-bg: #d4eef5;--status-in-progress-text: #014152;--status-qa: #8b5cf6;--status-qa-bg: #ede9fe;--status-qa-text: #5b21b6;--status-completed: #06d6a0;--status-completed-bg: #d1fae5;--status-completed-text: #035a47;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--text-primary: var(--gray-900);--text-secondary: var(--gray-600);--text-tertiary: var(--gray-500);--text-disabled: var(--gray-400);--text-inverse: #ffffff;--text-light: var(--gray-500);--bg-primary: #ffffff;--bg-secondary: var(--gray-50);--bg-tertiary: var(--gray-100);--bg-overlay: rgba(0, 0, 0, .5);--border-light: var(--gray-200);--border-medium: var(--gray-300);--border-dark: var(--gray-400);--border-color: var(--gray-200);--action-hover: var(--gray-100);--action-active: var(--gray-200);--action-disabled: var(--gray-300);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-base: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--radius-sm: .25rem;--radius-base: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-full: 9999px;--space-xs: .25rem;--space-sm: .5rem;--space-base: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-xs: .75rem;--font-sm: .875rem;--font-base: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 1.875rem;--font-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--sidebar-bg: #0f172a;--sidebar-bg-hover: rgba(255, 255, 255, .06);--sidebar-bg-active: rgba(0, 153, 204, .15);--sidebar-text: rgba(255, 255, 255, .6);--sidebar-text-hover: rgba(255, 255, 255, .9);--sidebar-text-active: #38bdf8;--sidebar-border: rgba(255, 255, 255, .08);--sidebar-accent: #38bdf8;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:var(--space-base);padding-right:var(--space-base)}.container-sm{max-width:640px}.container-md{max-width:768px}.container-lg{max-width:1024px}.container-xl{max-width:1280px}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-base{gap:var(--space-base)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.p-0{padding:0}.p-xs{padding:var(--space-xs)}.p-sm{padding:var(--space-sm)}.p-base{padding:var(--space-base)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.p-2xl{padding:var(--space-2xl)}.p-3xl{padding:6rem}.p-4xl{padding:8rem}.px-xs{padding-left:var(--space-xs);padding-right:var(--space-xs)}.px-sm{padding-left:var(--space-sm);padding-right:var(--space-sm)}.px-base{padding-left:var(--space-base);padding-right:var(--space-base)}.px-md{padding-left:var(--space-md);padding-right:var(--space-md)}.px-lg{padding-left:var(--space-lg);padding-right:var(--space-lg)}.py-xs{padding-top:var(--space-xs);padding-bottom:var(--space-xs)}.py-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.py-base{padding-top:var(--space-base);padding-bottom:var(--space-base)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.py-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.m-0{margin:0}.m-xs{margin:var(--space-xs)}.m-sm{margin:var(--space-sm)}.m-base{margin:var(--space-base)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.mx-auto{margin-left:auto;margin-right:auto}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-base{margin-bottom:var(--space-base)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.mb-2xl{margin-bottom:var(--space-2xl)}.mb-3xl{margin-bottom:6rem}.mb-4xl{margin-bottom:8rem}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-base{margin-top:var(--space-base)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mt-2xl{margin-top:var(--space-2xl)}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-auto{overflow-x:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.heading-1{font-size:var(--font-3xl);font-weight:var(--font-weight-bold);line-height:1.2;color:var(--text-primary);margin:0}.heading-2{font-size:var(--font-2xl);font-weight:var(--font-weight-semibold);line-height:1.3;color:var(--text-primary);margin:0}.heading-3{font-size:var(--font-xl);font-weight:var(--font-weight-semibold);line-height:1.4;color:var(--text-primary);margin:0}.heading-4{font-size:var(--font-lg);font-weight:var(--font-weight-medium);line-height:1.4;color:var(--text-primary);margin:0}.text-base{font-size:var(--font-base);line-height:1.5;color:var(--text-primary)}.text-sm{font-size:var(--font-sm);line-height:1.5;color:var(--text-secondary)}.text-xs{font-size:var(--font-xs);line-height:1.5;color:var(--text-tertiary)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-disabled{color:var(--text-disabled)}.text-inverse{color:var(--text-inverse)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning-dark)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-break{word-break:break-word;overflow-wrap:break-word}.label{display:inline-block;font-size:var(--font-xs);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-bottom:var(--space-xs)}.label-required:after{content:" *";color:var(--color-error)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:.625rem 1rem;font-size:var(--font-sm);font-weight:var(--font-weight-medium);line-height:1.5;border:1px solid transparent;border-radius:var(--radius-base);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;text-decoration:none;font-family:var(--font-sans)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn:focus{outline:2px solid var(--color-primary-light);outline-offset:2px}.btn-primary{background:var(--color-primary);color:var(--text-inverse);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-secondary{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-lighter)}.btn-success{background:var(--color-success);color:var(--text-inverse);border-color:var(--color-success)}.btn-success:hover:not(:disabled){background:var(--color-success-dark);border-color:var(--color-success-dark)}.btn-warning{background:var(--color-warning);color:var(--gray-900);border-color:var(--color-warning)}.btn-warning:hover:not(:disabled){background:var(--color-warning-dark);border-color:var(--color-warning-dark)}.btn-danger{background:var(--color-error);color:var(--text-inverse);border-color:var(--color-error)}.btn-danger:hover:not(:disabled){background:var(--color-error-dark);border-color:var(--color-error-dark)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--action-hover);color:var(--text-primary)}.btn-sm{padding:.375rem .75rem;font-size:var(--font-xs);gap:.25rem}.btn-md{padding:.625rem 1rem;font-size:var(--font-sm)}.btn-lg{padding:.75rem 1.5rem;font-size:var(--font-base)}.btn-icon{padding:.5rem;width:2.5rem;height:2.5rem;border-radius:var(--radius-base)}.btn-icon.btn-sm{width:2rem;height:2rem;padding:.375rem}.btn-icon.btn-lg{width:3rem;height:3rem;padding:.75rem}.btn-block{width:100%;display:flex}.btn-group{display:flex;gap:var(--space-sm);align-items:center}.btn-group-end{display:flex;gap:var(--space-sm);justify-content:flex-end;align-items:center}.btn-group-between{display:flex;gap:var(--space-sm);justify-content:space-between;align-items:center}.form-group{margin-bottom:var(--space-base)}.form-group:last-child{margin-bottom:0}.input{width:100%;padding:.625rem .75rem;font-size:var(--font-sm);font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-medium);border-radius:var(--radius-base);transition:all var(--transition-base)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.input:disabled{background:var(--bg-tertiary);color:var(--text-disabled);cursor:not-allowed}.input::placeholder{color:var(--text-tertiary)}.input-error{border-color:var(--color-error)}.input-error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error-light)}.input-sm{padding:.375rem .5rem;font-size:var(--font-xs)}.input-lg{padding:.75rem 1rem;font-size:var(--font-base)}.textarea{width:100%;padding:.625rem .75rem;font-size:var(--font-sm);font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-medium);border-radius:var(--radius-base);resize:vertical;min-height:80px;transition:all var(--transition-base)}.textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.select{width:100%;padding:.625rem 2rem .625rem .75rem;font-size:var(--font-sm);font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-medium);border-radius:var(--radius-base);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;transition:all var(--transition-base)}.select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-lighter)}.select:disabled{background:var(--bg-tertiary);color:var(--text-disabled);cursor:not-allowed}.checkbox,.radio{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input[type=checkbox],.radio input[type=radio]{width:1.125rem;height:1.125rem;cursor:pointer;accent-color:var(--color-primary)}.checkbox input[type=checkbox]:disabled,.radio input[type=radio]:disabled{cursor:not-allowed;opacity:.5}.error-message{display:block;margin-top:var(--space-xs);font-size:var(--font-xs);color:var(--color-error)}.help-text{display:block;margin-top:var(--space-xs);font-size:var(--font-xs);color:var(--text-tertiary)}.search-wrapper{position:relative;width:100%}.search-input{padding-left:2.5rem}.search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.input-with-icon{position:relative}.input-with-icon .input{padding-left:2.5rem}.input-with-icon .icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:var(--space-base) var(--space-md);border-bottom:1px solid var(--border-light)}.card-title{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.card-body{padding:var(--space-md)}.card-footer{padding:var(--space-base) var(--space-md);border-top:1px solid var(--border-light);background:var(--bg-secondary);border-radius:0 0 var(--radius-md) var(--radius-md)}.card-flat{box-shadow:none;border:1px solid var(--border-light)}.card-bordered{border:2px solid var(--border-medium);box-shadow:none}.card-elevated{box-shadow:var(--shadow-lg);border:none}.card-compact .card-header,.card-compact .card-body,.card-compact .card-footer{padding:var(--space-sm) var(--space-base)}.card-loose .card-header,.card-loose .card-body,.card-loose .card-footer{padding:var(--space-lg) var(--space-xl)}.card-clickable{cursor:pointer;transition:all var(--transition-base)}.card-clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--color-primary-light)}.card-clickable:active{transform:translateY(0);box-shadow:var(--shadow-md)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:var(--font-xs);font-weight:var(--font-weight-medium);line-height:1;border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background:var(--color-primary-lighter);color:var(--color-primary-dark)}.badge-success{background:var(--color-success-light);color:var(--color-success-dark)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.badge-danger{background:var(--color-error-light);color:var(--color-error-dark)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.badge-neutral{background:var(--gray-100);color:var(--gray-700)}.badge-priority-low{background:var(--priority-low-light);color:var(--priority-low-dark)}.badge-priority-medium{background:var(--priority-medium-light);color:var(--priority-medium-dark)}.badge-priority-high{background:var(--priority-high-light);color:var(--color-error-dark)}.badge-priority-critical{background:var(--priority-critical-light);color:var(--priority-critical)}.badge-status-pending{background:var(--status-pending-bg);color:var(--status-pending-text)}.badge-status-in-progress{background:var(--status-in-progress-bg);color:var(--status-in-progress-text)}.badge-status-qa{background:var(--status-qa-bg);color:var(--status-qa-text)}.badge-status-completed{background:var(--status-completed-bg);color:var(--status-completed-text)}.badge-sm{padding:.125rem .5rem;font-size:.625rem}.badge-lg{padding:.375rem .75rem;font-size:var(--font-sm)}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--space-base);animation:fadeIn var(--transition-base)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:500px;width:100%;max-height:90vh;overflow:hidden;z-index:var(--z-modal);animation:slideUp var(--transition-base)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;gap:var(--space-base)}.modal-title{font-size:var(--font-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.modal-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center;transition:all var(--transition-base)}.modal-close:hover{background:var(--action-hover);color:var(--text-primary)}.modal-body{padding:var(--space-lg);overflow-y:auto;overflow-x:hidden;max-height:calc(90vh - 250px)}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:10px}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.modal-body{scrollbar-width:thin;scrollbar-color:var(--border-medium) transparent}.modal-footer{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-light);display:flex;gap:var(--space-sm);justify-content:flex-end}.modal-sm{max-width:400px}.modal-sm .modal-header{padding:var(--space-base) var(--space-md);border-bottom:none}.modal-sm .modal-title{font-size:var(--font-lg);margin:0}.modal-sm .modal-body{padding:var(--space-sm) var(--space-md) var(--space-md)}.modal-sm .modal-footer{padding:var(--space-base) var(--space-md);border-top:none;gap:var(--space-xs)}.modal-md{max-width:750px}.modal-lg{max-width:800px}.modal-xl{max-width:1200px}.modal-full{max-width:95vw;max-height:95vh}.has-tooltip{position:relative}.has-tooltip:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-4px);background-color:var(--gray-900);color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:1000}.has-tooltip:hover:before{opacity:1}.has-tooltip.tooltip-top:before{bottom:100%;top:auto;left:50%;right:auto;transform:translate(-50%) translateY(-4px)}.has-tooltip.tooltip-bottom:before{top:100%;bottom:auto;left:50%;right:auto;transform:translate(-50%) translateY(4px)}.has-tooltip.tooltip-left:before{top:50%;bottom:auto;right:100%;left:auto;transform:translateY(-50%) translate(-4px)}.has-tooltip.tooltip-right:before{top:50%;bottom:auto;left:100%;right:auto;transform:translateY(-50%) translate(4px)}.has-tooltip.tooltip-delay:before{transition:opacity .15s ease .5s}.has-tooltip.tooltip-delay:hover:before{transition-delay:0s}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl) var(--space-base);text-align:center;color:var(--text-secondary)}.empty-state-icon{font-size:3rem;color:var(--text-tertiary);margin-bottom:var(--space-base)}.empty-state-title{font-size:var(--font-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-sm)}.empty-state-description{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--space-md);max-width:400px}.loading{display:flex;align-items:center;justify-content:center;padding:var(--space-2xl);color:var(--text-secondary)}.spinner{width:2rem;height:2rem;border:3px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-sm{width:1rem;height:1rem;border-width:2px}.spinner-lg{width:3rem;height:3rem;border-width:4px}.divider{height:1px;background:var(--border-light);border:none;margin:var(--space-base) 0}.divider-vertical{width:1px;height:auto;background:var(--border-light);margin:0 var(--space-base)}.avatar{width:2.5rem;height:2.5rem;min-width:2.5rem;min-height:2.5rem;border-radius:50%;background:var(--color-primary-light);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-sm);overflow:hidden;flex-shrink:0;aspect-ratio:1 / 1}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:2rem;height:2rem;font-size:var(--font-xs)}.avatar-lg{width:3rem;height:3rem;font-size:var(--font-base)}.avatar-xl{width:4rem;height:4rem;font-size:var(--font-lg)}.user-avatar-container{display:flex;align-items:center;gap:var(--space-sm)}.user-avatar-container .user-name{font-size:var(--font-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.tooltip{position:relative;display:inline-block}.tooltip-text{visibility:hidden;position:absolute;z-index:var(--z-tooltip);background:var(--gray-900);color:var(--text-inverse);text-align:center;padding:.375rem .75rem;border-radius:var(--radius-base);font-size:var(--font-xs);white-space:nowrap;opacity:0;transition:opacity var(--transition-base);bottom:125%;left:50%;transform:translate(-50%)}.tooltip-text:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:var(--gray-900) transparent transparent transparent}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-base)}.custom-scrollbar::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:var(--radius-base)}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.backdrop-blur{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.skeleton{background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-100) 50%,var(--gray-200) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-base)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1rem;margin-bottom:var(--space-sm)}.skeleton-title{height:1.5rem;width:60%;margin-bottom:var(--space-base)}.skeleton-circle{width:2.5rem;height:2.5rem;border-radius:50%}.page-container{width:100%;padding:var(--space-lg)}.page-container-narrow{max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md);padding-bottom:var(--space-base);border-bottom:1px solid var(--border-light);gap:var(--space-base)}@media (max-width: 768px){.page-container{padding:var(--space-base)}}@media (max-width: 640px){.page-container{padding:var(--space-sm)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-base);line-height:1.5}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}
