.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))}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg: #0f0f13;--bg-card: #1a1a24;--bg-card-hover: #22223a;--bg-input: #14141e;--border: #2a2a3e;--text: #e4e4ed;--text-secondary: #8888a4;--text-muted: #5c5c78;--accent: #6366f1;--accent-hover: #818cf8;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--urgent: #f43f5e;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0,0,0,.3);--transition: .2s ease}[data-theme=light]{--bg: #f4f5f7;--bg-card: #ffffff;--bg-card-hover: #f0f0f5;--bg-input: #f8f9fb;--border: #e2e4ea;--text: #1a1a2e;--text-secondary: #5c5c78;--text-muted: #9494ab;--accent: #6366f1;--accent-hover: #4f46e5;--success: #16a34a;--warning: #d97706;--danger: #dc2626;--urgent: #e11d48;--shadow: 0 4px 24px rgba(0,0,0,.08)}html,html *,html *:before,html *:after{transition:background-color .5s ease,color .4s ease,border-color .5s ease,box-shadow .5s ease,fill .4s ease,stroke .4s ease}html.no-transition,html.no-transition *,html.no-transition *:before,html.no-transition *:after{transition:none!important}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;outline:none;font-size:.875rem}input,select,textarea{font-family:inherit;font-size:1rem;background:var(--bg-input);border:1px solid var(--border);color:var(--text);padding:.625rem .875rem;border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition);width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239494ab' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2rem}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.app-layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--bg-card);border-right:1px solid var(--border);padding:1.5rem 1rem;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:50;transition:transform .3s ease}.sidebar-logo{font-size:1.25rem;font-weight:800;color:var(--accent);padding:0 .5rem 1.5rem;letter-spacing:-.5px;display:flex;align-items:center;gap:.6rem}.sidebar-logo-icon{flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(99,102,241,.25));transition:transform .3s cubic-bezier(.68,-.55,.27,1.55)}.sidebar-logo:hover .sidebar-logo-icon{transform:rotate(-8deg) scale(1.05)}.sidebar-logo span{background:linear-gradient(135deg,var(--accent),#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius-sm);color:var(--text-secondary);font-weight:500;font-size:.875rem;transition:all var(--transition);background:none;width:100%;text-align:left}.nav-item:hover,.nav-item.active{background:var(--bg-card-hover);color:var(--text)}.nav-item.active{color:var(--accent);background:#6366f11a}.sidebar-footer{border-top:1px solid var(--border);padding-top:1rem;margin-top:1rem}.sidebar-paste{margin-top:auto;padding-top:.5rem}.paste-box{height:24px;width:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;color:var(--text-secondary);cursor:pointer;outline:none;opacity:.5;transition:opacity .15s,background .15s}.paste-box:focus,.paste-box:hover{opacity:1;background:#6366f11a;color:var(--accent)}.paste-box.ok{color:#16a34a;opacity:1}.paste-box.err{color:#dc2626;opacity:1}.paste-box.loading{color:var(--accent);opacity:1}.paste-preview{width:18px;height:18px;object-fit:cover;border-radius:3px;opacity:.85}.user-info{display:flex;align-items:center;gap:.75rem;padding:.5rem}.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#a855f7);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:#fff}.user-details{flex:1;min-width:0}.user-name{font-weight:600;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:var(--text-muted)}.main-content{flex:1;margin-left:260px;padding:2rem;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.page-title{font-size:1.75rem;font-weight:800;letter-spacing:-.5px}.page-subtitle{color:var(--text-secondary);font-size:.9rem;margin-top:.25rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius-sm);font-weight:600;font-size:.85rem;transition:all var(--transition)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text)}.btn-danger{background:#ef44441a;color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-success{background:#22c55e26;color:var(--success)}.btn-success:hover{background:var(--success);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #22c55e66}.btn-warning{background:#f59e0b26;color:var(--warning)}.btn-warning:hover{background:var(--warning);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b66}.btn-sm{padding:.375rem .75rem;font-size:.8rem}.btn-icon{padding:.5rem;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--bg-card-hover);color:var(--text)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;transition:all var(--transition)}.card:hover{border-color:#6366f14d}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;display:flex;align-items:center;gap:1rem}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-value{font-size:1.75rem;font-weight:800;line-height:1}.stat-label{font-size:.8rem;color:var(--text-secondary);margin-top:.25rem}.dash-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.dash-section-title{font-size:1.1rem;font-weight:700;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.dash-section-count{font-size:.75rem;font-weight:700;background:#6366f11f;color:var(--accent);padding:.1rem .5rem;border-radius:100px}.dash-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto}.dash-list-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition)}.dash-list-item:hover{border-color:#6366f133}.dash-list-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dash-list-info{flex:1;min-width:0;display:flex;flex-direction:column}.dash-list-name{font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-list-sub{font-size:.75rem;color:var(--text-muted)}.dash-list-badges{display:flex;gap:.35rem;flex-shrink:0}.dash-progress{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--text-secondary);flex-shrink:0;min-width:70px}.dash-progress .progress-bar{width:50px}.dash-client-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition)}.dash-client-item:hover{border-color:#6366f133}.dash-client-item .dash-list-item{background:transparent;border:none;border-radius:0}.dash-client-projects{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 .75rem .625rem}.dash-project-tag{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:100px}@media (max-width: 768px){.dash-columns{grid-template-columns:1fr}}.projects-overview{position:relative;margin:0 0 1.75rem;padding:1.25rem 1.25rem 1.1rem;border-radius:18px;border:1px solid var(--border);background:var(--bg-card);overflow:hidden;isolation:isolate}.projects-overview-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(60% 80% at 0% 0%,rgba(99,102,241,.14),transparent 60%),radial-gradient(55% 90% at 100% 0%,rgba(168,85,247,.12),transparent 60%),radial-gradient(40% 70% at 50% 120%,rgba(236,72,153,.08),transparent 60%);pointer-events:none}.projects-overview:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(99,102,241,.5),rgba(168,85,247,.3) 40%,transparent 75%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:1}.projects-overview-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:.85rem;align-items:stretch}.overview-card{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:.9rem 1rem;display:flex;align-items:center;gap:.8rem;transition:transform var(--transition),border-color var(--transition),box-shadow var(--transition)}.overview-card:hover{transform:translateY(-2px);border-color:#6366f166;box-shadow:0 10px 24px -16px #6366f173}.overview-card-icon{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.overview-card[data-tone=indigo] .overview-card-icon{background:#6366f126;color:#818cf8}.overview-card[data-tone=violet] .overview-card-icon{background:#a855f726;color:#c084fc}.overview-card[data-tone=amber] .overview-card-icon{background:#f59e0b26;color:#fbbf24}.overview-card[data-tone=emerald] .overview-card-icon{background:#10b98126;color:#34d399}.overview-card-body{display:flex;flex-direction:column;min-width:0}.overview-card-value{font-size:1.5rem;font-weight:800;line-height:1;letter-spacing:-.5px;color:var(--text)}.overview-card-label-sm{font-size:.78rem;color:var(--text-secondary);margin-top:.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.overview-card-hero{background:linear-gradient(135deg,#6366f12e,#a855f724 60%,#ec48991a);border-color:#6366f159;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1rem 1.1rem}.overview-card-hero:hover{border-color:#a855f78c}.overview-card-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:#6366f11f;padding:.25rem .55rem;border-radius:999px}.overview-hero-value{font-size:2.4rem;font-weight:800;letter-spacing:-1.5px;line-height:1;background:linear-gradient(135deg,var(--accent),#a855f7 60%,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:flex;align-items:baseline;gap:.5rem}.overview-hero-suffix{font-size:.85rem;font-weight:600;letter-spacing:0;color:var(--text-secondary);-webkit-text-fill-color:var(--text-secondary)}.overview-hero-meta{font-size:.8rem;color:var(--text-secondary);line-height:1.4}.overview-hero-meta strong{color:var(--text);font-weight:700}@media (max-width: 1100px){.projects-overview-grid{grid-template-columns:1fr 1fr}.overview-card-hero{grid-column:1 / -1}}@media (max-width: 560px){.projects-overview-grid{grid-template-columns:1fr}}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:15px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--accent),#a855f7,transparent)}.timeline-item{position:relative;margin-bottom:1rem}.timeline-dot{position:absolute;left:-2rem;top:1.25rem;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg);z-index:1}.client-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:visible;transition:all var(--transition)}.client-card:hover{border-color:#6366f14d;box-shadow:var(--shadow)}.client-header{padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:background var(--transition)}.client-header:hover{background:var(--bg-card-hover)}.client-color{width:4px;height:40px;border-radius:4px;flex-shrink:0}.client-info{flex:1;min-width:0}.client-name{font-weight:700;font-size:1.05rem}.client-meta{font-size:.8rem;color:var(--text-secondary);display:flex;gap:1rem;margin-top:.15rem}.client-stats{display:flex;gap:.75rem;align-items:center}.client-stat-badge{font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:100px;background:#6366f11a;color:var(--accent)}.client-actions{display:flex;gap:.25rem}.chevron{transition:transform .3s ease;color:var(--text-muted)}.chevron.open{transform:rotate(180deg)}.client-projects{border-top:1px solid var(--border);padding:1rem 1.5rem 1.5rem 3rem;display:flex;flex-direction:column;gap:.75rem;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.project-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:visible;transition:all var(--transition)}.project-card:hover{border-color:#6366f133}.project-header{padding:1rem 1.25rem;display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:background var(--transition)}.project-header:hover{background:#ffffff05}.project-name{flex:1;font-weight:600;font-size:.95rem}.project-counters{display:flex;align-items:center;gap:.5rem}.project-counter{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:100px;background:#6366f11a;color:var(--accent);white-space:nowrap}.project-counter.counter-success{background:#22c55e1f;color:var(--success)}.project-counter.counter-danger{background:#ef44441f;color:var(--danger)}.project-counter.counter-muted{background:#9ca3af1a;color:var(--text-muted)}.project-progress{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-secondary)}.progress-bar{width:80px;height:4px;background:var(--border);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .5s ease}.status-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;padding:.2rem .6rem;border-radius:100px;text-transform:uppercase;letter-spacing:.5px}.status-active,.status-in_progress{background:#6366f126;color:#818cf8}.status-completed{background:#22c55e26;color:var(--success)}.status-pending{background:#f59e0b26;color:var(--warning)}.status-on_hold{background:#9ca3af26;color:#9ca3af}.status-cancelled{background:#ef444426;color:var(--danger)}.status-blocked{background:#ef444433;color:#f87171}.priority-badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:4px}.priority-low{background:#22c55e1a;color:var(--success)}.priority-medium{background:#f59e0b1a;color:var(--warning)}.priority-high{background:#ef44441a;color:var(--danger)}.priority-urgent{background:#f43f5e33;color:var(--urgent)}.project-activities{border-top:1px solid var(--border);padding:.75rem 1.25rem 1.25rem 2.5rem;display:flex;flex-direction:column;gap:.5rem;animation:slideDown .3s ease}.activity-row{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;transition:all var(--transition)}.activity-row:hover{border-color:#6366f133}.activity-check{width:20px;height:20px;border:2px solid var(--border);border-radius:50%;flex-shrink:0;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;justify-content:center;background:none;color:transparent}.activity-check:hover{border-color:var(--accent)}.activity-check.checked{background:var(--success);border-color:var(--success);color:#fff}.activity-title{flex:1;min-width:0;font-weight:500}.activity-title.completed{text-decoration:line-through;color:var(--text-muted)}.activity-meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.activity-responsible,.activity-date{font-size:.75rem;color:var(--text-secondary);display:flex;align-items:center;gap:.35rem}.activity-date.overdue{color:var(--danger)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease;padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top,0px));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal-title{font-size:1.25rem;font-weight:700;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.5px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1rem}.login-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem;box-shadow:var(--shadow)}.login-logo{font-size:1.5rem;font-weight:800;display:flex;align-items:center;justify-content:center;gap:.6rem;margin-bottom:.5rem;letter-spacing:-.5px}.login-logo span{background:linear-gradient(135deg,var(--accent),#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-logo-icon{filter:drop-shadow(0 4px 12px rgba(99,102,241,.35))}.login-subtitle{text-align:center;color:var(--text-secondary);font-size:.9rem;margin-bottom:2rem}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:var(--danger);padding:.75rem;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:1rem;text-align:center}.login-btn{width:100%;padding:.75rem;margin-top:.5rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state svg{margin-bottom:1rem;opacity:.5}.empty-state p{margin-bottom:1rem}.mobile-toggle{display:none;position:fixed;top:calc(.75rem + env(safe-area-inset-top,0px));left:calc(.75rem + env(safe-area-inset-left,0px));z-index:60;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.625rem;color:var(--text)}.sidebar-overlay{display:none}.color-options{display:flex;gap:.5rem;flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all var(--transition)}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--bg)}.add-activity-row{display:flex;gap:.5rem;padding:.5rem 0}.add-activity-row input{flex:1}.toast{position:fixed;bottom:2rem;right:2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1.25rem;font-size:.85rem;z-index:200;animation:slideUp .3s ease;box-shadow:var(--shadow)}@media (max-width: 768px){.mobile-toggle{display:flex}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:40}.main-content{margin-left:0;padding:1rem;padding-top:calc(3.5rem + env(safe-area-inset-top,0px));padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}.page-header{flex-direction:column;align-items:flex-start}.todo-header{flex-direction:row;align-items:center}.stats-grid{grid-template-columns:repeat(2,1fr)}.activity-meta{flex-direction:column;align-items:flex-end;gap:.25rem}.form-row{grid-template-columns:1fr}.client-meta{flex-direction:column;gap:.25rem}.client-stats{flex-wrap:wrap}.timeline,.client-projects{padding-left:1.5rem}.project-activities{padding-left:1rem}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}}.activity-card-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition);overflow:visible;position:relative}.activity-card-wrapper:hover{border-color:#6366f133}.activity-card-wrapper .activity-row{border:none;border-radius:0;background:transparent}.activity-card-wrapper .activity-row:hover{border-color:transparent}.comment-badge{position:absolute;top:-4px;right:-4px;background:var(--accent);color:#fff;font-size:.6rem;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1}.comment-section{border-top:1px solid var(--border);padding:1rem 1.25rem;animation:slideDown .25s ease}.comment-timeline{position:relative;padding-left:1.25rem;margin-bottom:.75rem;max-height:300px;overflow-y:auto}.comment-timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--border)}.comment-item{position:relative;padding:.5rem 0}.comment-dot{position:absolute;left:-1.25rem;top:.75rem;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);z-index:1}.comment-content{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .75rem}.comment-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}.comment-author{font-size:.75rem;font-weight:600;color:var(--accent)}.comment-date{font-size:.7rem;color:var(--text-muted)}.comment-text{font-size:.825rem;color:var(--text);line-height:1.5;white-space:pre-wrap;word-break:break-word}.comment-image{margin-top:.4rem}.comment-image img{max-width:100%;max-height:200px;border-radius:6px;border:1px solid var(--border);cursor:pointer;transition:opacity var(--transition)}.comment-image img:hover{opacity:.85}.comment-input-wrapper{border-top:1px solid var(--border);padding-top:.75rem}.comment-image-preview{position:relative;display:inline-block;margin-bottom:.5rem}.comment-image-preview img{max-height:80px;border-radius:6px;border:1px solid var(--border)}.comment-image-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--danger);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:0}.comment-input-row{display:flex;align-items:flex-end;gap:.4rem}.comment-input{flex:1;resize:none;min-height:36px;max-height:100px;padding:.5rem .75rem;font-size:.825rem;border-radius:20px;background:var(--bg-input);border:1px solid var(--border);color:var(--text);outline:none;transition:border-color var(--transition);line-height:1.4}.comment-input:focus{border-color:var(--accent)}.comment-img-btn{cursor:pointer;flex-shrink:0;color:var(--text-muted);padding:.45rem}.comment-img-btn:hover{color:var(--accent)}.comment-send-btn{flex-shrink:0;color:var(--accent);padding:.45rem}.comment-send-btn:disabled{color:var(--text-muted);opacity:.5;cursor:default}.comment-send-btn:not(:disabled):hover{color:var(--accent-hover)}.todo-worklog-badge{display:inline-flex;align-items:center;gap:3px;font-size:.7rem;color:var(--text-muted);background:var(--bg);padding:.1rem .4rem;border-radius:10px;border:1px solid var(--border)}.worklog-section{border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:.75rem;margin-bottom:.75rem;overflow:hidden}.worklog-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:var(--bg);border-bottom:1px solid var(--border);font-size:.8rem;font-weight:600;color:var(--text-secondary)}.worklog-count{background:var(--accent);color:#fff;font-size:.6rem;padding:.1rem .4rem;border-radius:10px;font-weight:700;margin-left:auto}.worklog-search-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition)}.worklog-search-toggle:hover{color:var(--accent);background:#3b82f614}.worklog-search-toggle.active{color:var(--accent);background:#3b82f61f;border-color:#3b82f640}.worklog-search-row{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg);border-bottom:1px solid var(--border);color:var(--text-muted);animation:slideDown .18s ease}.worklog-search-input{flex:1;border:none;background:transparent;outline:none;font-size:.825rem;color:var(--text);padding:.15rem 0}.worklog-search-input::placeholder{color:var(--text-muted)}.worklog-search-clear{padding:.2rem!important;color:var(--text-muted)}.worklog-search-clear:hover{color:var(--danger)}.worklog-status-badge{font-size:.7rem;font-weight:600;padding:.15rem .6rem;border-radius:100px;white-space:nowrap}.worklog-status-badge.active{background:#3b82f61f;color:var(--accent)}.worklog-status-badge.completed{background:#22c55e1f;color:var(--success)}.todo-detail-identity{background:var(--bg-card-hover);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:10px;padding:.7rem .85rem;margin-bottom:.85rem}.todo-detail-title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--text);letter-spacing:-.2px;word-break:break-word}.todo-detail-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.todo-detail-meta-pill{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;border:1px solid transparent}.todo-detail-notes{margin-top:.55rem;padding-top:.55rem;border-top:1px dashed var(--border);font-size:.8rem;color:var(--text-secondary);line-height:1.45;white-space:pre-wrap;word-break:break-word}.worklog-progress-bar-wrapper{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.worklog-progress-bar{flex:1;height:6px;background:var(--border);border-radius:100px;overflow:hidden}.worklog-progress-fill{height:100%;border-radius:100px;transition:width .4s ease,background .4s ease}.worklog-progress-label{font-size:.75rem;font-weight:700;min-width:32px;text-align:right}.todo-item-progress{height:6px;background:var(--border);border-radius:100px;overflow:hidden;margin-top:.35rem}.todo-item-progress-fill{height:100%;border-radius:100px;transition:width .3s ease}.worklog-progress-slider{display:flex;align-items:center;gap:.5rem;padding-bottom:.5rem;margin-bottom:.5rem;border-bottom:1px solid var(--border)}.worklog-progress-slider-label{font-size:.72rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.worklog-progress-value{font-size:.78rem;font-weight:700;min-width:32px;text-align:right}.worklog-range{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:100px;background:var(--border);outline:none;cursor:pointer}.worklog-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--range-color, var(--accent));border:2px solid white;box-shadow:0 1px 4px #0003;cursor:pointer;transition:transform .15s ease}.worklog-range::-webkit-slider-thumb:hover{transform:scale(1.15)}.worklog-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--range-color, var(--accent));border:2px solid white;box-shadow:0 1px 4px #0003;cursor:pointer}.worklog-details-toggle{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted);background:none;border:none;padding:.35rem 0;cursor:pointer;transition:color var(--transition)}.worklog-details-toggle:hover{color:var(--accent)}.worklog-details-panel{padding:.5rem 0;margin-bottom:.25rem;animation:slideDown .2s ease}.worklog-timeline{max-height:380px;overflow-y:auto;overflow-x:hidden;padding:.75rem;scroll-behavior:smooth}.worklog-timeline::-webkit-scrollbar{width:6px}.worklog-timeline::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.worklog-timeline::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.worklog-empty{text-align:center;padding:1.5rem .75rem;color:var(--text-muted)}.worklog-empty p{margin:.25rem 0;font-size:.825rem}.worklog-date-group{margin-bottom:.5rem}.worklog-date-label{display:flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;padding:.3rem 0 .4rem 1.5rem;position:relative}.worklog-date-label:before{content:"";position:absolute;left:6px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--border);transform:translateY(-50%)}.worklog-entry{position:relative;padding-left:1.5rem;padding-bottom:.5rem}.worklog-dot{position:absolute;left:3px;top:.5rem;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);z-index:2}.worklog-line{position:absolute;left:8px;top:1.2rem;bottom:0;width:2px;background:var(--border);z-index:1}.worklog-entry:last-child .worklog-line{display:none}.worklog-entry-content{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .65rem}.worklog-entry-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.worklog-time{display:flex;align-items:center;gap:3px;font-size:.72rem;font-weight:600;color:var(--accent)}.worklog-relative{font-size:.68rem;color:var(--text-muted)}.worklog-delete-btn{margin-left:auto;padding:.15rem!important;opacity:0;transition:opacity var(--transition)}.worklog-entry-content:hover .worklog-delete-btn{opacity:.6}.worklog-delete-btn:hover{opacity:1!important;color:var(--danger)!important}.worklog-text{font-size:.825rem;color:var(--text);line-height:1.5;white-space:pre-wrap;word-break:break-word;margin:0}.worklog-image{margin-top:.4rem}.worklog-image img{max-width:100%;max-height:200px;border-radius:6px;border:1px solid var(--border);cursor:pointer;transition:opacity var(--transition)}.worklog-image img:hover{opacity:.85}.worklog-input-area{padding:.6rem .75rem;border-top:1px solid var(--border);background:var(--bg)}.worklog-input-area.worklog-input-top{border-top:none;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--bg-card) 0%,var(--bg) 100%)}.worklog-entry-latest .worklog-entry-content{border-color:#3b82f659;box-shadow:0 0 0 3px #3b82f614}.worklog-entry-latest .worklog-dot{background:var(--accent);box-shadow:0 0 0 4px #3b82f62e}.worklog-latest-badge{font-size:.62rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--accent);background:#3b82f61f;padding:.1rem .45rem;border-radius:100px;white-space:nowrap}.worklog-date-count{margin-left:auto;font-size:.65rem;font-weight:700;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);padding:.05rem .4rem;border-radius:10px;text-transform:none;letter-spacing:0}.todo-modal-footer{display:flex;align-items:center;gap:.75rem;padding-top:1rem;margin-top:.75rem;border-top:1px solid var(--border)}.btn-finalize{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:.85rem;padding:.55rem 1.2rem;border-radius:100px;background:linear-gradient(135deg,var(--success),#16a34a);color:#fff;border:none;cursor:pointer;box-shadow:0 2px 8px #22c55e4d;transition:all var(--transition)}.btn-finalize:hover{box-shadow:0 4px 14px #22c55e73;transform:translateY(-1px)}.worklog-confirm-finalize-inline{display:flex;align-items:center;gap:.6rem;width:100%;animation:slideDown .2s ease}.worklog-confirm-finalize-inline span{font-size:.825rem;color:var(--text-secondary);flex:1}.dropdown-menu-wrapper{position:relative;display:inline-flex}.dropdown-menu{position:absolute;top:100%;right:0;z-index:30;min-width:180px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #00000040;padding:.35rem;animation:dropdownIn .15s ease}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.dropdown-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .75rem;border-radius:6px;font-size:.825rem;font-weight:500;color:var(--text);background:none;border:none;cursor:pointer;transition:background var(--transition);text-align:left}.dropdown-item:hover{background:var(--bg-card-hover)}.dropdown-item-danger{color:var(--danger)}.dropdown-item-danger:hover{background:#ef44441a}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.admin-app-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;display:flex;align-items:flex-start;gap:1rem;transition:all var(--transition)}.admin-app-card:hover{border-color:#6366f14d;box-shadow:var(--shadow)}.admin-app-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-app-info{flex:1;min-width:0}.admin-app-name{font-weight:700;font-size:1rem;margin-bottom:.2rem}.admin-app-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.4;margin-bottom:.5rem}.admin-app-meta{font-size:.75rem;color:var(--text-muted);display:flex;align-items:center;gap:.35rem}.admin-app-actions{display:flex;gap:.25rem;flex-shrink:0}.admin-tabs{display:flex;gap:.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.25rem;margin-bottom:1.25rem}.admin-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border-radius:6px;font-size:.85rem;font-weight:600;color:var(--text-muted);background:none;transition:all var(--transition)}.admin-tab:hover{color:var(--text-secondary)}.admin-tab.active{background:var(--accent);color:#fff}.admin-tab-count{font-size:.7rem;opacity:.7}.app-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:600;padding:.15rem .55rem;border-radius:100px;white-space:nowrap}.theme-toggle{position:relative;width:52px;height:28px;border-radius:100px;background:var(--border);cursor:pointer;border:none;padding:0;transition:background .3s ease;flex-shrink:0}.theme-toggle.light{background:var(--accent)}.theme-toggle-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.theme-toggle.light .theme-toggle-knob{transform:translate(24px)}.theme-toggle-knob svg{width:14px;height:14px}.theme-row{display:flex;align-items:center;gap:.75rem;padding:.5rem;margin-bottom:.5rem}.theme-label{font-size:.75rem;color:var(--text-muted)}.todo-page{max-width:640px;margin:0 auto}.todo-layout-grid{max-width:1280px;display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:1.5rem;align-items:stretch;height:calc(100vh - 4rem);transition:grid-template-columns .25s ease}.todo-layout-grid.timeline-collapsed{grid-template-columns:44px minmax(0,1fr)}.todo-timeline-col.is-collapsed{padding:.5rem .3rem;align-items:center;gap:.5rem}.todo-timeline-col.is-collapsed .todo-timeline-header,.todo-timeline-col.is-collapsed .todo-timeline-hint,.todo-timeline-col.is-collapsed .day-calendar{display:none}.todo-timeline-col.is-collapsed .todo-timeline-collapsed-stack{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding-top:.2rem}.todo-timeline-col.is-collapsed .todo-timeline-collapsed-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.7rem;font-weight:700;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-top:.4rem}.todo-timeline-col.is-collapsed .todo-timeline-collapsed-count{background:var(--accent);color:#fff;font-size:.62rem;font-weight:800;padding:.1rem .4rem;border-radius:100px}.todo-timeline-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border-radius:6px;background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);flex-shrink:0}.todo-timeline-toggle:hover{color:var(--text);background:var(--bg);border-color:var(--border)}.todo-main-col{min-width:0;display:flex;flex-direction:column;min-height:0}.todo-main-col>*{flex-shrink:0}.todo-main-col .todo-groups{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;min-height:0;padding-right:.4rem;margin-right:-.4rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.todo-main-col .todo-groups::-webkit-scrollbar{width:8px}.todo-main-col .todo-groups::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.todo-main-col .todo-groups::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.todo-timeline-col{display:flex;flex-direction:column;gap:.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem;height:100%;min-height:0;overflow:hidden}.todo-timeline-header{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:700;color:var(--text)}.todo-timeline-count{margin-left:auto;background:var(--accent);color:#fff;font-size:.65rem;font-weight:800;padding:.1rem .45rem;border-radius:100px}.todo-timeline-clear{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .45rem .25rem .35rem;font-size:.7rem;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all var(--transition)}.todo-timeline-clear:hover{color:var(--text);background:var(--bg);border-color:var(--border)}.todo-timeline-clear-box{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:3px;border:1.5px solid var(--border);background:var(--bg-card);color:transparent;transition:all var(--transition)}.todo-timeline-clear:hover .todo-timeline-clear-box{border-color:var(--accent);background:var(--accent);color:#fff}.todo-timeline-header:has(.todo-timeline-clear) .todo-timeline-count{margin-left:0}.todo-timeline-hint{font-size:.72rem;color:var(--text-muted);margin:-.2rem 0 .4rem}.day-calendar{flex:1;display:flex;flex-direction:column;gap:.15rem;overflow-y:auto;padding:.25rem .1rem .4rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.day-calendar::-webkit-scrollbar{width:6px}.day-calendar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.day-calendar::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.day-row{position:relative;display:grid;grid-template-columns:60px 1fr;gap:.6rem;padding:.45rem 0 .45rem 14px;border-bottom:1px dashed var(--border)}.day-row:last-child{border-bottom:none}.day-label{position:sticky;top:0;align-self:start;display:flex;flex-direction:column;align-items:center;text-align:center;padding:.3rem .15rem;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none}.day-label-num{font-size:1.55rem;font-weight:800;line-height:1;color:var(--text);letter-spacing:-.02em}.day-label-month{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-top:.15rem}.day-label-dow{font-size:.62rem;font-weight:600;color:var(--text-muted);margin-top:.2rem}.day-label-pill{font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:.1rem .4rem;margin-top:.35rem;border-radius:100px}.day-pill-today{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.day-pill-tomorrow{background:#6366f11a;color:var(--accent);border:1px solid rgba(99,102,241,.25)}.day-row.state-today .day-label-num{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:50%;font-size:1.1rem;box-shadow:0 4px 12px #6366f152;margin-bottom:.1rem}.day-row.state-past{opacity:.62}.day-row.state-past .day-label-num{color:var(--text-muted)}.day-row.state-future .day-label-num{color:var(--text)}.day-row.is-weekend .day-label-dow{color:#ec4899}.day-row:before{content:"";position:absolute;left:4px;top:0;bottom:-1px;width:2px;background:var(--border);opacity:.5;border-radius:1px;z-index:0}.day-row:last-child:before{display:none}.day-row .day-label{position:relative;z-index:1}.day-stack{min-width:0}.day-drop{display:flex;flex-direction:column;gap:.35rem;min-height:36px;padding:.2rem;border:1.5px dashed transparent;border-radius:var(--radius-sm);transition:all .15s ease}.day-drop.is-empty{border-color:var(--border);background:linear-gradient(180deg,#00000003,#0000)}[data-theme=dark] .day-drop.is-empty{background:linear-gradient(180deg,#ffffff04,#0000)}.day-drop.is-over{border-color:var(--accent);background:#6366f114;box-shadow:0 0 0 3px #6366f114}.day-empty{display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.4rem .5rem;font-size:.7rem;font-weight:500;color:var(--text-muted);opacity:.6}.day-row.state-past .day-empty{display:none}.day-drop.is-over .day-empty{opacity:1;color:var(--accent);font-weight:600}.agenda-item{position:relative;display:flex;align-items:center;gap:.5rem;padding:.55rem .6rem .55rem .4rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition)}.agenda-item:hover{border-color:#6366f14d;box-shadow:0 2px 8px #0000000a}.agenda-item.dragging{z-index:100}.agenda-item.completed{opacity:.6}.agenda-rank{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--bg);color:var(--text-muted);border-radius:50%;font-size:.62rem;font-weight:700;border:1px solid var(--border)}.agenda-item:hover .agenda-rank{background:#6366f11a;color:var(--accent);border-color:#6366f140}.agenda-grip{display:flex;align-items:center;justify-content:center;width:18px;background:none;border:none;color:var(--text-muted);cursor:grab;padding:0;flex-shrink:0;touch-action:none}.agenda-grip:active{cursor:grabbing}.agenda-grip:hover{color:var(--accent)}.agenda-body{flex:1;min-width:0;cursor:pointer}.agenda-title{font-size:.825rem;font-weight:600;color:var(--text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.agenda-title.done{text-decoration:line-through;color:var(--text-muted)}.agenda-meta{display:flex;align-items:center;gap:.6rem;margin-top:.25rem;font-size:.68rem;font-weight:600;color:var(--text-muted)}.agenda-meta>span{display:inline-flex;align-items:center;gap:3px}.agenda-progress{flex:1;display:inline-flex;align-items:center;gap:.35rem;min-width:0}.agenda-progress-bar{flex:1;height:3px;background:var(--border);border-radius:3px;overflow:hidden;min-width:30px}.agenda-progress-fill{display:block;height:100%;border-radius:3px;transition:width .4s ease}.agenda-remove{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:none;border:none;color:var(--text-muted);border-radius:50%;flex-shrink:0;cursor:pointer;opacity:0;transition:all var(--transition)}.agenda-item:hover .agenda-remove{opacity:.7}.agenda-remove:hover{opacity:1;color:var(--danger);background:#ef44441a}.todo-drag-handle{display:flex;align-items:center;justify-content:center;width:18px;align-self:stretch;background:none;border:none;color:var(--text-muted);cursor:grab;padding:0;flex-shrink:0;opacity:.4;touch-action:none;transition:opacity var(--transition),color var(--transition)}.todo-drag-handle:hover{opacity:1;color:var(--accent)}.todo-drag-handle:active{cursor:grabbing}.todo-pin-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:none;border:1px solid transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;align-self:center;margin-right:.25rem;opacity:0;transition:all var(--transition)}.todo-item:hover .todo-pin-btn{opacity:1}.todo-pin-btn:hover{color:var(--accent);border-color:#6366f14d;background:#6366f114}.todo-item.dragging{opacity:.4}.todo-drag-overlay{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .85rem;background:var(--bg-card);border:1px solid var(--accent);border-radius:var(--radius-sm);box-shadow:0 12px 28px #0000002e;font-size:.85rem;font-weight:600;color:var(--text);pointer-events:none;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 900px){.todo-layout-grid{grid-template-columns:1fr;height:auto;align-items:start}.todo-layout-grid.timeline-collapsed{grid-template-columns:1fr}.todo-timeline-col{height:auto;overflow:visible;max-height:none}.day-calendar{max-height:360px}.todo-main-col{display:block}.todo-main-col .todo-groups{overflow:visible;flex:none}.todo-pin-btn{opacity:1}.todo-drag-handle{opacity:.6}}.todo-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem}.todo-refresh-btn{width:40px;height:40px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary)}.todo-refresh-btn:hover{border-color:var(--accent);color:var(--accent)}.todo-refresh-btn.spinning svg{animation:spin .6s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.todo-overdue-hint{color:var(--danger);font-weight:600}.todo-quick-add{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.875rem;margin-bottom:1rem}.todo-quick-input-row{display:flex;gap:.5rem;align-items:center}.todo-quick-input{flex:1;border:none;background:transparent;font-size:1rem;padding:.5rem 0;color:var(--text)}.todo-quick-input:focus{border:none;outline:none}.todo-quick-btn{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.todo-quick-btn:disabled{opacity:.4;cursor:default}.todo-quick-btn:not(:disabled):hover{background:var(--accent-hover);transform:scale(1.05)}.todo-quick-btn:not(:disabled):active{transform:scale(.95)}.todo-quick-options{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border);animation:slideDown .2s ease}.todo-quick-options-row{display:flex;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.todo-quick-field{display:flex;align-items:center;gap:.4rem;flex:1;min-width:0;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .6rem;color:var(--text-secondary)}.todo-quick-field input{border:none;background:transparent;padding:0;font-size:.8rem;min-width:0;flex:1}.todo-quick-field input:focus{border:none}.todo-date-input{color-scheme:dark}[data-theme=light] .todo-date-input{color-scheme:light}.todo-quick-collapse{display:flex;align-items:center;gap:.35rem;background:none;color:var(--text-muted);font-size:.75rem;padding:.25rem 0;margin-top:.25rem}.todo-quick-collapse:hover{color:var(--text-secondary)}.todo-pill-group{display:flex;gap:.35rem;flex-wrap:wrap}.todo-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .65rem;border-radius:100px;font-size:.75rem;font-weight:600;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border);transition:all var(--transition);white-space:nowrap}.todo-pill:hover{border-color:var(--accent);color:var(--text)}.todo-pill.active{background:#6366f11f;color:var(--accent);border-color:#6366f14d}.todo-tabs-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.todo-tabs{display:flex;gap:.25rem;flex:1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.25rem}.todo-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem;border-radius:6px;font-size:.8rem;font-weight:600;color:var(--text-muted);background:none;transition:all var(--transition);white-space:nowrap}.todo-tab:hover{color:var(--text-secondary)}.todo-tab.active{background:var(--accent);color:#fff}.todo-tab-count{font-size:.7rem;opacity:.7}.todo-filter-btn{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.todo-filter-btn:hover,.todo-filter-btn.active{color:var(--accent);border-color:var(--accent)}.todo-filters{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;margin-bottom:.75rem;animation:slideDown .2s ease}.todo-search-row{display:flex;align-items:center;gap:.5rem;color:var(--text-muted)}.todo-search-input{flex:1;border:none;background:transparent;padding:.35rem 0;font-size:.85rem}.todo-search-input:focus{border:none}.todo-category-filters{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--border)}.todo-stats-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:0 .25rem}.todo-stats-progress{flex:1;height:4px;background:var(--border);border-radius:4px;overflow:hidden}.todo-stats-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:4px;transition:width .5s ease}.todo-stats-text{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.todo-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem}.todo-stat-card{display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition);min-width:0}.todo-stat-card:hover{border-color:#6366f140;transform:translateY(-1px);box-shadow:0 4px 14px #0000000a}.todo-stat-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.todo-stat-body{flex:1;min-width:0}.todo-stat-value{font-size:1.15rem;font-weight:800;line-height:1.1;color:var(--text)}.todo-stat-label{font-size:.7rem;color:var(--text-muted);font-weight:600}.todo-stat-progress{height:3px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:.35rem}.todo-stat-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,var(--success));border-radius:3px;transition:width .6s ease}.todo-search-bar{display:flex;align-items:stretch;gap:.5rem;margin-bottom:.5rem}.todo-search-input-wrap{flex:1;display:flex;align-items:center;gap:.5rem;padding:0 .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition)}.todo-search-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #6366f11f}.todo-search-input-wrap .todo-search-input{flex:1;border:none;background:transparent;outline:none;padding:.55rem 0;font-size:.85rem;color:var(--text);min-width:0}.todo-search-input-wrap .todo-search-input::placeholder{color:var(--text-muted)}.todo-search-clear{padding:.2rem!important;color:var(--text-muted)}.todo-search-clear:hover{color:var(--danger)}.todo-sort-wrap{position:relative}.todo-sort-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;height:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all var(--transition)}.todo-sort-btn:hover{color:var(--accent);border-color:#6366f14d}.todo-sort-btn.active{color:var(--accent);background:#6366f114;border-color:#6366f14d}.todo-sort-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.todo-sort-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:50;min-width:180px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;padding:.3rem;animation:dropdownIn .15s ease}.todo-sort-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .6rem;border-radius:6px;font-size:.825rem;font-weight:500;color:var(--text);background:none;border:none;cursor:pointer;text-align:left;transition:background var(--transition)}.todo-sort-item:hover{background:var(--bg)}.todo-sort-item.active{color:var(--accent);background:#6366f114;font-weight:600}.todo-sort-item svg{color:var(--accent)}.todo-priority-filters{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;padding:0 .1rem}.todo-priority-filters-label{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-right:.2rem}.todo-priority-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border:1px solid var(--border);border-radius:100px;font-size:.74rem;font-weight:600;color:var(--text-secondary);background:var(--bg-card);cursor:pointer;transition:all var(--transition)}.todo-priority-chip:hover{color:var(--text);border-color:#6366f14d}.todo-priority-chip-dot{width:8px;height:8px;border-radius:50%}.todo-priority-chip-clear{color:var(--text-muted);border-style:dashed;margin-left:.25rem}.todo-priority-chip-clear:hover{color:var(--danger);border-color:#ef444466;background:#ef44440a}.todo-stakeholder-filters{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding:0 .1rem;min-width:0}.todo-stakeholder-filters .todo-priority-filters-label{flex-shrink:0;margin-right:0}.todo-stakeholder-scroll{flex:1;display:flex;align-items:center;gap:.35rem;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:2px 2px 8px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.todo-stakeholder-scroll::-webkit-scrollbar{height:7px}.todo-stakeholder-scroll::-webkit-scrollbar-track{background:var(--bg);border-radius:4px}.todo-stakeholder-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.todo-stakeholder-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.todo-stakeholder-scroll .todo-priority-chip{flex-shrink:0;white-space:nowrap;padding:.25rem .55rem;font-size:.72rem;gap:.3rem}.todo-stakeholder-scroll .todo-priority-chip-dot{width:7px;height:7px}.todo-priority-chip.dim{opacity:.45}.todo-priority-chip.dim:hover{opacity:.85}.todo-priority-chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;margin-left:.15rem;font-size:.62rem;font-weight:800;background:#0000000f;border-radius:100px;color:inherit}[data-theme=dark] .todo-priority-chip-count{background:#ffffff14}.todo-required-mark{color:var(--danger);font-weight:700;margin-left:.15rem}.todo-required-hint{display:inline-block;margin-left:.5rem;font-size:.7rem;font-weight:500;color:var(--danger);background:#ef444414;padding:.1rem .5rem;border-radius:100px;text-transform:none;letter-spacing:0;animation:pulseAttention 1.4s ease-in-out infinite}@keyframes pulseAttention{0%,to{opacity:1}50%{opacity:.55}}.todo-groups{display:flex;flex-direction:column;gap:1rem}.todo-group-header{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;width:100%;background:none;border:none;cursor:pointer;border-radius:6px;margin-bottom:.2rem;transition:background var(--transition);text-align:left}.todo-group-header:hover{background:#6366f10d}.todo-group-caret{color:var(--text-muted);transition:transform .2s ease;flex-shrink:0}.todo-group.collapsed .todo-group-header{opacity:.75}.todo-group-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.todo-group-name{font-size:.85rem;font-weight:700;color:var(--text)}.todo-group-count{font-size:.7rem;font-weight:700;background:#6366f11a;color:var(--accent);padding:.1rem .45rem;border-radius:100px}.todo-list{display:flex;flex-direction:column;gap:.375rem}.todo-item{position:relative;overflow:hidden;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);transition:all var(--transition)}.todo-item:hover{border-color:#6366f133}.todo-item.completed{opacity:.65}.todo-item-content{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;transition:transform .2s ease}.todo-item.swiped .todo-item-content{transform:translate(-110px)}.todo-check{width:22px;height:22px;border:2px solid var(--border);border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:none;color:transparent;transition:all var(--transition);margin-top:1px}.todo-check:hover{background:#6366f114}.todo-check.checked{background:var(--success);border-color:var(--success);color:#fff}.todo-check:active{transform:scale(.85)}.todo-info{flex:1;min-width:0;cursor:pointer}.todo-title{font-size:.9rem;font-weight:500;line-height:1.4;display:block;word-break:break-word}.todo-title.done{text-decoration:line-through;color:var(--text-muted)}.todo-meta{display:flex;align-items:center;gap:.6rem;margin-top:.3rem;flex-wrap:wrap}.todo-priority-indicator{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;font-weight:600}.todo-stakeholders-inline{display:inline-flex;gap:.25rem;flex-wrap:wrap}.todo-sh-chip{font-size:.65rem;font-weight:600;padding:.1rem .4rem;border-radius:100px;white-space:nowrap}.todo-stakeholder-select{width:100%}.todo-stakeholder-label{display:flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.todo-swipe-actions{position:absolute;top:0;right:0;bottom:0;width:110px;display:flex;transform:translate(100%);transition:transform .2s ease}.todo-item.swiped .todo-swipe-actions{transform:translate(0)}.todo-swipe-edit,.todo-swipe-delete{flex:1;display:flex;align-items:center;justify-content:center;color:#fff;border:none}.todo-swipe-edit{background:var(--accent)}.todo-swipe-delete{background:var(--danger)}.todo-modal{max-width:480px}@media (max-width: 768px){.todo-page{max-width:100%}.todo-modal{max-width:100%;margin:0;border-radius:var(--radius) var(--radius) 0 0;position:fixed;bottom:0;left:0;right:0;max-height:85vh;padding-bottom:calc(2rem + env(safe-area-inset-bottom,0px));animation:slideFromBottom .3s ease}@keyframes slideFromBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.todo-quick-add{padding:.75rem}.todo-quick-options-row{gap:.35rem}.todo-pill{padding:.25rem .5rem;font-size:.7rem}.todo-tab{padding:.45rem .35rem;font-size:.75rem;gap:.25rem}.todo-tab span{display:none}.todo-tab.active span{display:inline}.todo-item-content{padding:.75rem;gap:.6rem}.todo-title{font-size:.85rem}.todo-quick-field{min-width:calc(50% - .2rem)}.todo-stats-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.todo-stat-card{padding:.6rem}.todo-stat-icon{width:30px;height:30px}.todo-stat-value{font-size:1rem}.todo-sort-label,.todo-priority-filters-label{display:none}}@media (max-width: 390px){.todo-pill{padding:.2rem .4rem;font-size:.65rem}.todo-pill svg{display:none}.page-title{font-size:1.4rem}.todo-stat-label{font-size:.65rem}}@media (max-width: 768px){.worklog-timeline{max-height:42vh;padding:.6rem}.worklog-input-area{padding:.5rem .6rem}.worklog-progress-slider{gap:.4rem}.worklog-progress-slider-label{font-size:.68rem}.worklog-entry{padding-left:1.25rem}.worklog-latest-badge{font-size:.55rem;padding:.08rem .35rem}.worklog-search-row{padding:.45rem .6rem}.worklog-search-input{font-size:.8rem}.worklog-delete-btn{opacity:.5}}@media (max-width: 480px){.worklog-entry-header{flex-wrap:wrap;gap:.35rem}.worklog-relative{font-size:.65rem}}.flows-page{display:grid;grid-template-columns:280px 1fr;gap:1rem;height:calc(100vh - 4rem);margin:-2rem;padding:1rem}.flows-rail{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.flows-rail-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border)}.flows-rail-header h2{font-size:.95rem;font-weight:700;display:flex;align-items:center;gap:.5rem;color:var(--text)}.flows-list{flex:1;overflow-y:auto;padding:.5rem}.flows-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.75rem;color:var(--text-muted);padding:2rem 1rem;font-size:.85rem}.flows-list-item{display:flex;align-items:center;gap:.6rem;padding:.625rem .75rem;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);position:relative}.flows-list-item:hover{background:var(--bg-card-hover)}.flows-list-item.active{background:var(--bg-card-hover);box-shadow:inset 3px 0 0 var(--accent)}.flows-list-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.flows-list-title{flex:1;font-size:.88rem;color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flows-list-count{font-size:.7rem;color:var(--text-muted);background:var(--bg-input);padding:.1rem .45rem;border-radius:999px;border:1px solid var(--border)}.flows-list-actions{display:none;gap:.25rem;margin-left:.25rem}.flows-list-item:hover .flows-list-actions{display:flex}.btn-icon-sm{background:transparent;border:none;color:var(--text-muted);padding:.25rem;cursor:pointer;border-radius:4px;display:inline-flex}.btn-icon-sm:hover{color:var(--text);background:var(--bg-input)}.btn-icon-sm.danger:hover{color:var(--danger)}.flows-canvas-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;position:relative}.flows-canvas-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--text-muted);font-size:.9rem}.flows-canvas-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--border)}.flows-canvas-title{display:flex;align-items:center;gap:.6rem;min-width:0}.flows-canvas-title h2{font-size:1rem;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flows-canvas-actions{display:flex;gap:.5rem}.btn-secondary{background:var(--bg-input);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--accent)}.btn-secondary:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn.btn-sm{padding:.35rem .65rem;font-size:.78rem}.flow-btn-root{background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff;border:none;position:relative;box-shadow:0 4px 14px #8b5cf659}.flow-btn-root:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,#ffffff80,#fff0);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.flow-btn-root:hover{transform:translateY(-1px);box-shadow:0 8px 22px #8b5cf680;filter:brightness(1.05)}.flow-btn-root:active{transform:translateY(0)}.flow-btn-root svg{filter:drop-shadow(0 0 3px rgba(255,255,255,.5))}.flows-canvas{flex:1;min-height:0;background:radial-gradient(circle at 1px 1px,var(--border) 1px,transparent 0) 0 0 / 20px 20px,var(--bg)}.flows-canvas .react-flow__edge-path{stroke:var(--text-muted);stroke-width:2}.flows-canvas .react-flow__controls,.flows-canvas .react-flow__minimap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 4px 12px #00000026}.flows-canvas .react-flow__controls-button{background:var(--bg-card);border-bottom:1px solid var(--border);color:var(--text);fill:var(--text)}.flows-canvas .react-flow__controls-button:hover{background:var(--bg-card-hover)}.flows-canvas .react-flow__minimap-mask{fill:#0006}.flow-pill{min-width:140px;max-width:240px;padding:.65rem 1rem;border-radius:14px;color:#1a1a2e;font-weight:600;font-size:.85rem;text-align:center;box-shadow:0 2px 8px #0000002e;border:2px solid transparent;transition:border-color var(--transition),transform var(--transition);position:relative}.flow-pill.selected{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 18px #6366f14d}.flow-pill-label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-pill-progress{height:4px;background:#00000026;border-radius:999px;margin-top:.4rem;overflow:hidden}.flow-pill-progress-fill{height:100%;border-radius:999px;transition:width var(--transition)}.flow-handle{width:8px;height:8px;background:#ffffffd9;border:2px solid rgba(0,0,0,.25)}.flow-node-panel{position:absolute;top:5.25rem;right:1rem;bottom:1rem;width:360px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;box-shadow:0 12px 32px #0000004d;z-index:10}.flow-node-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.flow-node-panel-header h3{font-size:.95rem;font-weight:700}.flow-node-panel-body{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.flow-node-panel-body textarea{resize:vertical;font-family:inherit;line-height:1.5}.flow-node-panel-footer{display:flex;justify-content:space-between;gap:.5rem;padding:.85rem 1rem;border-top:1px solid var(--border)}.btn-ghost.danger{color:var(--danger);border-color:#ef444440}.btn-ghost.danger:hover{background:#ef44441f;color:var(--danger)}.flow-color-grid{display:flex;gap:.5rem;flex-wrap:wrap}.flow-color-swatch{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform var(--transition),border-color var(--transition)}.flow-color-swatch:hover{transform:scale(1.1)}.flow-color-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--bg-card),0 0 0 4px var(--accent)}.flow-color-custom{position:relative;display:inline-flex;align-items:center;justify-content:center;color:#ffffffd9;font-weight:700;font-size:1.1rem;border:1px dashed var(--border);text-shadow:0 1px 2px rgba(0,0,0,.4)}.flow-color-custom input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;border:none;padding:0;background:transparent}.flow-reset-btn{margin-left:auto;background:transparent;border:1px solid var(--border);color:var(--text-secondary);font-size:.7rem;padding:.2rem .5rem;border-radius:6px;cursor:pointer;font-weight:500}.flow-reset-btn:hover{background:var(--bg-input);color:var(--text)}.flow-node-panel .form-field label,.flow-node-panel-body .form-field label{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.flow-thread{display:flex;flex-direction:column;gap:.6rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:.85rem 0;margin:-.25rem 0}.flow-thread-header{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.flow-thread-count{font-size:.7rem;background:var(--bg-input);border:1px solid var(--border);padding:.1rem .45rem;border-radius:999px;color:var(--text-muted)}.flow-thread-composer{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem;display:flex;flex-direction:column;gap:.5rem}.flow-thread-composer textarea{background:transparent;border:none;resize:vertical;outline:none;color:var(--text);font-family:inherit;font-size:.85rem;line-height:1.4;padding:0;min-height:2.5rem}.flow-thread-pending{display:flex;flex-wrap:wrap;gap:.5rem}.flow-thread-pending-item{position:relative;border-radius:6px;overflow:hidden;border:1px solid var(--border)}.flow-thread-pending-item img{display:block;max-width:90px;max-height:90px;object-fit:cover}.flow-thread-pending-item.file{display:flex;align-items:center;gap:.4rem;padding:.4rem .6rem;background:var(--bg-card);font-size:.78rem;color:var(--text);max-width:100%}.flow-thread-pending-name{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-thread-pending-item button{position:absolute;top:2px;right:2px;background:#0009;color:#fff;border:none;border-radius:50%;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.flow-thread-pending-item.file button{position:static;background:transparent;color:var(--text-muted);width:auto;height:auto}.flow-thread-pending-item.file button:hover{color:var(--danger)}.flow-thread-actions{display:flex;align-items:center;gap:.4rem;justify-content:flex-end}.flow-thread-actions .btn-icon{cursor:pointer;color:var(--text-secondary);width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px}.flow-thread-actions .btn-icon:hover{background:var(--bg-card);color:var(--text)}.flow-thread-list{display:flex;flex-direction:column;gap:.6rem;max-height:320px;overflow-y:auto}.flow-thread-empty{text-align:center;color:var(--text-muted);font-size:.8rem;padding:.75rem}.flow-thread-item{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.4rem;position:relative}.flow-thread-item-meta{display:flex;align-items:center;gap:.5rem;font-size:.7rem;color:var(--text-muted)}.flow-thread-item-author{font-weight:600;color:var(--text-secondary)}.flow-thread-item-date{flex:1}.flow-thread-item-text{white-space:pre-wrap;font-size:.85rem;line-height:1.45;color:var(--text);word-break:break-word}.flow-thread-item-image img{display:block;max-width:100%;border-radius:6px;border:1px solid var(--border)}.flow-thread-item-file{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .65rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.8rem;text-decoration:none}.flow-thread-item-file:hover{border-color:var(--accent);color:var(--accent)}.flow-thread-item-file span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}@media (max-width: 900px){.flows-page{grid-template-columns:1fr;height:auto}.flows-rail{max-height:220px}.flow-node-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;height:70vh;border-radius:var(--radius) var(--radius) 0 0}}.wf-tooltip{--wf-tt-bg-top: color-mix(in srgb, var(--bg-card) 86%, var(--accent) 6%);--wf-tt-bg-bot: color-mix(in srgb, var(--bg-card) 96%, #000 4%);--wf-tt-border: color-mix(in srgb, var(--border) 55%, var(--accent) 35%);--wf-tt-highlight: color-mix(in srgb, var(--text) 10%, transparent);--wf-tt-halo: color-mix(in srgb, var(--accent) 38%, transparent);position:fixed;z-index:9999;pointer-events:none;font-size:.78rem;font-weight:500;letter-spacing:-.005em;line-height:1.45;color:var(--text);padding:.55rem .75rem;border-radius:10px;background:linear-gradient(180deg,var(--wf-tt-bg-top) 0%,var(--wf-tt-bg-bot) 100%);border:1px solid var(--wf-tt-border);box-shadow:inset 0 1px 0 var(--wf-tt-highlight),inset 0 -1px #00000026,0 1px 2px #0000001f,0 10px 28px -8px #00000059,0 14px 40px -20px var(--wf-tt-halo);backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);animation:wf-tooltip-in .18s cubic-bezier(.22,1,.36,1);word-wrap:break-word;overflow-wrap:anywhere;isolation:isolate}[data-theme=light] .wf-tooltip{--wf-tt-bg-top: color-mix(in srgb, var(--bg-card) 92%, var(--accent) 4%);--wf-tt-bg-bot: var(--bg-card);--wf-tt-border: color-mix(in srgb, var(--border) 60%, var(--accent) 25%);--wf-tt-highlight: rgba(255, 255, 255, .9);--wf-tt-halo: color-mix(in srgb, var(--accent) 22%, transparent);box-shadow:inset 0 1px 0 var(--wf-tt-highlight),0 1px 1px #0f0f1e0f,0 8px 24px -10px #0f0f1e2e,0 12px 36px -18px var(--wf-tt-halo)}.wf-tooltip-content{display:block;position:relative}.wf-tooltip-arrow{position:absolute;width:10px;height:10px;border-radius:2px 0 0;transform:rotate(45deg)}.wf-tooltip-top .wf-tooltip-arrow{bottom:-5px;left:50%;margin-left:-5px;background:var(--wf-tt-bg-bot);border-right:1px solid var(--wf-tt-border);border-bottom:1px solid var(--wf-tt-border);border-radius:0 0 2px}.wf-tooltip-bottom .wf-tooltip-arrow{top:-5px;left:50%;margin-left:-5px;background:var(--wf-tt-bg-top);border-top:1px solid var(--wf-tt-border);border-left:1px solid var(--wf-tt-border);border-radius:2px 0 0}.wf-tooltip-left .wf-tooltip-arrow{right:-5px;top:50%;margin-top:-5px;background:linear-gradient(180deg,var(--wf-tt-bg-top),var(--wf-tt-bg-bot));border-top:1px solid var(--wf-tt-border);border-right:1px solid var(--wf-tt-border);border-radius:0 2px 0 0}.wf-tooltip-right .wf-tooltip-arrow{left:-5px;top:50%;margin-top:-5px;background:linear-gradient(180deg,var(--wf-tt-bg-top),var(--wf-tt-bg-bot));border-bottom:1px solid var(--wf-tt-border);border-left:1px solid var(--wf-tt-border);border-radius:0 0 0 2px}.wf-tooltip-top{--wf-tt-from: translateY(4px)}.wf-tooltip-bottom{--wf-tt-from: translateY(-4px)}.wf-tooltip-left{--wf-tt-from: translateX(4px)}.wf-tooltip-right{--wf-tt-from: translateX(-4px)}@keyframes wf-tooltip-in{0%{opacity:0;transform:var(--wf-tt-from, translateY(4px)) scale(.96);filter:blur(.5px)}to{opacity:1;transform:translate(0) scale(1);filter:blur(0)}}@media (prefers-reduced-motion: reduce){.wf-tooltip{animation:none}}.gestion-page{padding:1.5rem 2rem 3rem;max-width:1400px;margin:0 auto}.gestion-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.gestion-stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;display:flex;align-items:center;gap:.9rem;transition:all var(--transition);position:relative;overflow:hidden}.gestion-stat-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 100% 0%,rgba(99,102,241,.08),transparent 60%);opacity:0;transition:opacity var(--transition)}.gestion-stat-card:hover{border-color:#6366f159;transform:translateY(-2px)}.gestion-stat-card:hover:before{opacity:1}.gestion-stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gestion-stat-value{font-size:1.6rem;font-weight:800;line-height:1;letter-spacing:-.5px}.gestion-stat-label{font-size:.8rem;color:var(--text-secondary);margin-top:.3rem}.timeline-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem 1.25rem;margin-bottom:1.5rem}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.85rem}.timeline-header-left{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-weight:600;font-size:.85rem}.timeline-controls{display:flex;gap:.25rem}.btn-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .65rem;border-radius:999px;background:#6366f11f;color:var(--accent);font-size:.75rem;font-weight:600;border:1px solid rgba(99,102,241,.25);cursor:pointer;transition:all var(--transition)}.btn-chip:hover{background:#6366f138;transform:translateY(-1px)}.timeline-scroll{display:flex;gap:.55rem;overflow-x:auto;padding:.5rem .25rem .75rem;scroll-behavior:smooth;scrollbar-width:thin}.timeline-scroll::-webkit-scrollbar{height:6px}.timeline-scroll::-webkit-scrollbar-track{background:transparent}.timeline-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.timeline-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.timeline-day{position:relative;flex:0 0 auto;width:64px;padding:.65rem .4rem .7rem;border-radius:14px;background:var(--bg-input);border:1.5px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:.1rem;cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);color:var(--text)}.timeline-day:hover{border-color:#6366f180;transform:translateY(-2px);box-shadow:0 4px 12px #6366f126}.timeline-day-dow{font-size:.65rem;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.timeline-day-num{font-size:1.4rem;font-weight:800;line-height:1;margin:.1rem 0;letter-spacing:-1px}.timeline-day-month{font-size:.65rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.timeline-day.weekend .timeline-day-dow,.timeline-day.weekend .timeline-day-month{color:#ef4444b3}.timeline-day.weekend .timeline-day-num{color:#ef4444d9}.timeline-day.today{border-color:var(--accent)}.timeline-day.today .timeline-day-num{color:var(--accent)}.timeline-day.has-logs{background:linear-gradient(180deg,rgba(99,102,241,.05),var(--bg-input))}.timeline-day.selected{background:linear-gradient(135deg,var(--accent),#a855f7);border-color:var(--accent);color:#fff;transform:translateY(-3px);box-shadow:0 8px 20px #6366f173}.timeline-day.selected .timeline-day-dow,.timeline-day.selected .timeline-day-num,.timeline-day.selected .timeline-day-month{color:#fff}.timeline-day-badge{position:absolute;top:-7px;right:-8px;min-width:24px;height:20px;padding:0 7px;border-radius:999px;background:var(--success);color:#fff;font-size:.65rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-card);box-shadow:0 2px 6px #0003;white-space:nowrap}.timeline-day.selected .timeline-day-badge{background:#fff;color:var(--accent)}.timeline-day-pin{position:absolute;bottom:-7px;left:50%;transform:translate(-50%);font-size:.55rem;font-weight:800;letter-spacing:.6px;background:var(--accent);color:#fff;padding:1px 6px;border-radius:999px;border:2px solid var(--bg-card)}.timeline-day.selected .timeline-day-pin{background:#fff;color:var(--accent)}.day-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.day-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border)}.day-title{font-size:1.25rem;font-weight:800;letter-spacing:-.3px;text-transform:capitalize}.day-subtitle{color:var(--text-secondary);font-size:.85rem;margin-top:.3rem}.day-search{display:flex;align-items:center;gap:.5rem;background:var(--bg-input);border:1px solid var(--border);border-radius:999px;padding:.4rem .85rem;width:240px;max-width:100%;color:var(--text-muted);transition:all var(--transition)}.day-search:focus-within{border-color:var(--accent);color:var(--accent)}.day-search input{border:0;background:transparent;padding:0;font-size:.85rem;width:100%}.day-empty{padding:3.5rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.day-empty-icon{width:80px;height:80px;border-radius:50%;background:#6366f11a;color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.day-empty h3{font-size:1.05rem;font-weight:700;margin:0}.day-empty p{color:var(--text-secondary);font-size:.88rem;margin:0 0 .75rem}.day-logs{display:flex;flex-direction:column;gap:.6rem}.log-card{background:var(--bg-input);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius-sm);padding:.95rem 1rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;transition:all var(--transition)}.log-card:hover{background:var(--bg-card-hover);border-color:#6366f159;transform:translate(2px)}.log-card-main{flex:1;min-width:0}.log-card-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;flex-wrap:wrap}.log-project{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.85rem;color:var(--text)}.log-project.muted{color:var(--text-muted);font-style:italic}.log-project-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.log-client{color:var(--text-muted);font-weight:500;margin-left:.15rem}.log-hours{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:700;color:var(--warning);background:#f59e0b1f;padding:.2rem .55rem;border-radius:999px}.log-description{font-size:.9rem;color:var(--text);white-space:pre-wrap;line-height:1.5;word-break:break-word}.log-actions{display:flex;gap:.25rem;flex-shrink:0}.download-info{display:flex;align-items:flex-start;gap:.5rem;background:linear-gradient(135deg,#6366f114,#a855f714);border:1px solid rgba(99,102,241,.25);border-radius:var(--radius-sm);padding:.7rem .85rem;font-size:.8rem;color:var(--text-secondary);margin-bottom:1.25rem;line-height:1.4}.download-info svg{color:var(--accent);flex-shrink:0;margin-top:1px}.format-grid{display:grid;grid-template-columns:1fr;gap:.5rem}.format-option{display:flex;align-items:center;gap:.85rem;padding:.8rem .95rem;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg-input);cursor:pointer;transition:all var(--transition);text-align:left;position:relative}.format-option:hover{border-color:#6366f166;background:var(--bg-card-hover)}.format-option.active{border-color:var(--accent);background:#6366f10f;box-shadow:0 0 0 3px #6366f11a}.format-option-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.format-option-text{flex:1;min-width:0}.format-option-title{font-weight:700;font-size:.9rem}.format-option-desc{font-size:.75rem;color:var(--text-muted);margin-top:.1rem}.format-option-check{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}@media (max-width: 768px){.gestion-page{padding:1rem}.day-search{width:100%}.timeline-day{width:56px}.timeline-day-num{font-size:1.2rem}}.log-tags{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.log-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.2px;border:1px solid var(--border);background:var(--bg-input);color:var(--text);white-space:nowrap}.log-tag-app{background:#a855f71f;color:#a855f7;border-color:#a855f74d}.log-tag-project{background:#6366f11a;color:var(--accent);border-color:#6366f14d}.log-tag-category{background:#f59e0b1f;color:var(--warning);border-color:#f59e0b4d}.log-tag-empty{background:transparent;color:var(--text-muted);border-style:dashed;font-style:italic;font-weight:600}.log-subtag{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:600;color:var(--text-muted);margin:.1rem 0 .4rem}.log-subtag svg{color:var(--warning)}.mode-toggle{display:flex;gap:.4rem;background:var(--bg-input);padding:.3rem;border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:1.25rem}.mode-toggle-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem .75rem;border-radius:6px;background:transparent;border:0;color:var(--text-secondary);font-weight:600;font-size:.82rem;cursor:pointer;transition:all var(--transition)}.mode-toggle-btn:hover{color:var(--text)}.mode-toggle-btn.active{background:var(--bg-card);color:var(--accent);box-shadow:0 1px 3px #00000014,0 0 0 1px #6366f140}.field-hint{font-size:.72rem;color:var(--text-muted);margin-top:.4rem;font-style:italic}.form-label-opt{font-weight:500;text-transform:none;color:var(--text-muted);letter-spacing:0;font-style:italic;margin-left:.3rem}select optgroup{font-weight:700;color:var(--accent);background:var(--bg-card)}select optgroup option{color:var(--text);font-weight:500;padding-left:1rem}
