.task-timer-widget{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);unicode-bidi:isolate;justify-content:flex-end}.task-timer-display{display:flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums;font-size:12px}.task-timer-display .material-icons-round{font-size:14px}.task-timer-live{font-variant-numeric:tabular-nums;font-weight:600;color:var(--color-warning,#f59e0b);letter-spacing:.5px}.task-timer-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:50%;cursor:pointer;transition:transform .15s,box-shadow .15s;padding:0;flex-shrink:0}.task-timer-btn:hover{transform:scale(1.15)}.task-timer-btn .material-icons-round{font-size:18px}.task-timer-btn.start{background:var(--color-success-light,#d1fae5);color:var(--color-success,#10b981)}.task-timer-btn.start:hover{background:var(--color-success,#10b981);color:#fff;box-shadow:0 2px 8px rgba(16,185,129,.4)}.task-timer-btn.stop{background:var(--color-danger-light,#fee2e2);color:var(--color-danger,#ef4444);animation:1.5s ease-in-out infinite timer-pulse}.task-timer-btn.stop:hover{background:var(--color-danger,#ef4444);color:#fff;animation:none}@keyframes timer-pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 5px rgba(239,68,68,0)}}.kanban-card.timer-active{border-right:3px solid var(--color-warning,#f59e0b)!important;background:linear-gradient(to left,var(--color-warning-ultra-light,rgba(245,158,11,.05)),transparent)}.tasks-row.timer-active td:first-child{border-right:3px solid var(--color-warning,#f59e0b)}.tasks-time-cell{min-width:110px;white-space:nowrap}.tasks-time-cell .task-timer-widget{margin-top:0;padding-top:0;border-top:none}.task-time-summary-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface-alt,#f8fafc);border-radius:var(--radius-md);border:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary);margin-top:var(--space-3)}.task-time-summary-row .material-icons-round{font-size:16px;color:var(--color-primary)}.task-timer-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;margin-right:auto}.task-timer-badge.running{background:var(--color-warning-light,#fef3c7);color:var(--color-warning-dark,#92400e);animation:1.5s ease-in-out infinite timer-pulse-text}@keyframes timer-pulse-text{0%,100%{opacity:1}50%{opacity:.6}}.time-report-modal .modal-content{max-width:680px;width:95vw}.time-report-loading{display:flex;align-items:center;gap:var(--space-3);justify-content:center;padding:var(--space-8);color:var(--color-text-muted)}.time-report-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8);color:var(--color-text-muted);text-align:center}.time-report-empty .material-icons-round{font-size:48px}.time-report-rate-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--color-surface-alt);border-radius:var(--radius-md);border:1px solid var(--color-border)}.time-report-rate-row .form-label{margin-bottom:0;white-space:nowrap;font-weight:600}.time-report-rate-input{width:130px!important;flex-shrink:0;text-align:center}.time-report-body{display:flex;flex-direction:column;gap:var(--space-4)}.time-report-group{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.time-report-group-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);font-weight:600;font-size:14px}.time-report-tx-label{display:flex;align-items:center;gap:var(--space-2)}.time-report-tx-label .material-icons-round{font-size:16px;color:var(--color-primary)}.time-report-group-total{display:flex;align-items:center;gap:var(--space-2);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.time-report-cost{color:var(--color-success,#10b981);font-weight:700}.time-report-table{width:100%;border-collapse:collapse;font-size:13px}.time-report-table td,.time-report-table th{padding:var(--space-2) var(--space-3);text-align:right;border-bottom:1px solid var(--color-border-light,#f1f5f9)}.time-report-table th{font-weight:600;color:var(--color-text-muted);font-size:12px;background:var(--color-surface-alt)}.time-report-table tr:last-child td{border-bottom:none}.time-report-table tr:hover td{background:var(--color-surface-hover,#f8fafc)}.time-report-grand-total{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);background:var(--color-primary-ultra-light,rgba(59,130,246,.06));border:2px solid var(--color-primary-light,rgba(59,130,246,.2));border-radius:var(--radius-lg);font-weight:700;font-size:16px}.time-report-grand-amount{color:var(--color-primary);font-size:20px;font-weight:800;direction:ltr}.tgantt-wrapper{margin-bottom:var(--space-4);overflow:hidden}.tgantt-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:var(--space-2)}.tgantt-title{display:flex;align-items:center;gap:var(--space-2);font-weight:700;font-size:14px}.tgantt-title .material-icons-round{font-size:18px;color:var(--color-primary)}.tgantt-legend{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.tgantt-legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-text-muted)}.tgantt-legend-dot{width:12px;height:12px;border-radius:3px}.tgantt-scroll{overflow-x:auto;padding-bottom:var(--space-2)}.tgantt-chart{min-width:500px}.tgantt-tick-row{display:flex;align-items:stretch;height:24px;border-bottom:1px solid var(--color-border)}.tgantt-tick-track{flex:1;position:relative;height:100%}.tgantt-tick{position:absolute;top:3px;font-size:10px;color:var(--color-text-muted);transform:translateX(-50%);white-space:nowrap;padding:0 2px}.tgantt-tick-today{font-weight:700;color:var(--color-primary)}.tgantt-row{display:flex;align-items:center;height:32px;border-bottom:1px solid var(--color-border-light,#f1f5f9);cursor:pointer;transition:background .15s}.tgantt-row:hover{background:var(--color-surface-hover,#f8fafc)}.tgantt-row.done{opacity:.5}.tgantt-row.overdue{background:rgba(239,68,68,.03)}.tgantt-label{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3) 0 var(--space-2);overflow:hidden;border-left:1px solid var(--color-border);height:100%}.tgantt-label-text{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-secondary)}.tgantt-label.done .tgantt-label-text{text-decoration:line-through;color:var(--color-text-muted)}.tgantt-label.active .tgantt-label-text{color:var(--color-primary);font-weight:600}.tgantt-label-spacer{border-left:1px solid var(--color-border)}.tgantt-bar-area{flex:1;height:100%;overflow:hidden}.tgantt-svg{display:block;height:32px}.tgantt-bar{transition:opacity .15s}.tgantt-row:hover .tgantt-bar{opacity:.85}.tgantt-bar-todo{fill:var(--color-primary-light,#bfdbfe);stroke:var(--color-primary,#3b82f6);stroke-width:1}.tgantt-bar-active{fill:var(--color-warning-light,#fef3c7);stroke:var(--color-warning,#f59e0b);stroke-width:1}.tgantt-bar-review{fill:var(--color-info-light,#e0f2fe);stroke:var(--color-info,#0ea5e9);stroke-width:1}.tgantt-bar-done{fill:var(--color-success-light,#d1fae5);stroke:var(--color-success,#10b981);stroke-width:1}.tgantt-bar-overdue{fill:var(--color-danger-light,#fee2e2);stroke:var(--color-danger,#ef4444);stroke-width:1;stroke-dasharray:4 2}.tgantt-bar-due{font-size:10px;fill:var(--color-text-muted);font-family:Assistant,sans-serif}.tgantt-bar-due.overdue{fill:var(--color-danger,#ef4444);font-weight:700}.tgantt-noduedate-dot{fill:var(--color-border,#e2e8f0);stroke:var(--color-text-muted,#94a3b8);stroke-width:1}.tgantt-today-line{stroke:var(--color-primary,#3b82f6);stroke-width:1.5;stroke-dasharray:3 3;opacity:.6}.tgantt-timer-icon{fill:var(--color-warning,#f59e0b);animation:1.5s ease-in-out infinite timer-pulse-text}.tgantt-footer{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap}.tgantt-footer-note{display:flex;align-items:center;gap:var(--space-1);font-size:11px;color:var(--color-text-muted)}.tgantt-footer-note .material-icons-round{font-size:13px}@keyframes tgantt-flash{0%{background:var(--color-primary-ultra-light,rgba(59,130,246,.15))}100%{background:0 0}}.tgantt-highlight{animation:1.5s ease-out forwards tgantt-flash;border-radius:var(--radius-md)}.tgantt-legend-dot.tgantt-bar-todo{background:var(--color-primary,#3b82f6)}.tgantt-legend-dot.tgantt-bar-active{background:var(--color-warning,#f59e0b)}.tgantt-legend-dot.tgantt-bar-review{background:var(--color-info,#0ea5e9)}.tgantt-legend-dot.tgantt-bar-done{background:var(--color-success,#10b981)}.txd-task-time{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--color-text-muted);font-variant-numeric:tabular-nums;direction:ltr}.txd-task-time.running{color:var(--color-warning,#f59e0b);font-weight:600}.txd-task-time .material-icons-round{font-size:13px}.txd-task-time-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--color-primary);font-weight:600;padding:2px 8px;background:var(--color-primary-ultra-light,rgba(59,130,246,.08));border-radius:99px;direction:ltr}.txd-task-time-chip .material-icons-round{font-size:14px}.txd-task-item.timer-active{border-right:3px solid var(--color-warning,#f59e0b);background:rgba(245,158,11,.03)}