:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}:root:not([data-theme=light]) #social .button-icon{filter:invert()brightness(2)}}:root[data-theme=dark]{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}:root[data-theme=dark] #social .button-icon{filter:invert()brightness(2)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}#root{box-sizing:border-box;flex-direction:column;width:100%;min-height:100svh;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] body{color:#e5e7eb;background:#0f172a}[data-theme=dark] .app-error{color:#cbd5e1;background-color:#0f172a}[data-theme=dark] .dashboard{background-color:#0f172a}[data-theme=dark] .dashboard-top{background:#1e293b;box-shadow:0 2px 6px #0006}[data-theme=dark] .dashboard-header,[data-theme=dark] .dashboard-controls{background:#1e293b;border-bottom-color:#334155}[data-theme=dark] .dashboard-header h1{color:#f1f5f9}[data-theme=dark] .user-info,[data-theme=dark] .date-range label{color:#cbd5e1}[data-theme=dark] .task-summary-badge{background:linear-gradient(135deg,#3b82f6 0%,#818cf8 100%);box-shadow:0 4px 18px #3b82f673}[data-theme=dark] .chart-section,[data-theme=dark] .table-section{background:#1e293b;box-shadow:0 2px 8px #00000059}[data-theme=dark] .chart-section h2,[data-theme=dark] .table-section h2,[data-theme=dark] .chart-legend h3,[data-theme=dark] .legend-total{color:#f1f5f9}[data-theme=dark] .chart-legend,[data-theme=dark] .legend-total{border-top-color:#334155}[data-theme=dark] .legend-item{color:#e2e8f0}[data-theme=dark] .pie-empty-state{color:#64748b}[data-theme=dark] .pie-copy-button{color:#e5e7eb;background:#0f172ad9;border-color:#334155}[data-theme=dark] .pie-copy-button:hover{color:#fff;background:#2563eb;border-color:#2563eb}[data-theme=dark] .task-card{background:#0f172a;border-color:#334155}[data-theme=dark] .task-card:hover{border-color:#475569;box-shadow:0 1px 4px #0006}[data-theme=dark] .task-field-label{color:#94a3b8}[data-theme=dark] .pane-divider-handle{background-color:#334155}[data-theme=dark] .pane-divider:hover .pane-divider-handle,[data-theme=dark] .dashboard-content.dragging .pane-divider-handle{background-color:#60a5fa}[data-theme=dark] .chart-section.drag-over{background-color:#1e3a8a33}[data-theme=dark] .date-range input,[data-theme=dark] .cell-input,[data-theme=dark] .cell-select,[data-theme=dark] .modal-select,[data-theme=dark] .modal-card textarea{color:#e5e7eb;background:#0f172a;border-color:#334155}[data-theme=dark] .cell-input::placeholder,[data-theme=dark] .modal-card textarea::placeholder{color:#64748b}[data-theme=dark] .cell-select:disabled,[data-theme=dark] .cell-input:disabled{color:#64748b;background-color:#1e293b}[data-theme=dark] .cell-select:focus,[data-theme=dark] .cell-input:focus{background-color:#1e293b;border-color:#60a5fa;box-shadow:0 0 0 2px #60a5fa40}[data-theme=dark] .refresh-button,[data-theme=dark] .logout-button,[data-theme=dark] .theme-toggle,[data-theme=dark] .modal-cancel{color:#e5e7eb;background:#334155;border:1px solid #475569}[data-theme=dark] .refresh-button:hover:not(:disabled),[data-theme=dark] .logout-button:hover,[data-theme=dark] .theme-toggle:hover,[data-theme=dark] .modal-cancel:hover{background:#475569}[data-theme=dark] .add-task-button{background-color:#2563eb}[data-theme=dark] .add-task-button:hover:not(:disabled){background-color:#1d4ed8}[data-theme=dark] .staff-picker-label{color:#94a3b8}[data-theme=dark] .staff-picker{color:#e5e7eb;background:#334155;border-color:#475569}[data-theme=dark] .staff-picker:hover{background:#475569}[data-theme=dark] .staff-picker.viewing-as-other{color:#fef3c7;background-color:#78350f;border-color:#f59e0b}[data-theme=dark] .staff-picker.viewing-as-other:hover{background-color:#92400e}[data-theme=dark] .viewing-as-banner{color:#fef3c7;background-color:#78350f;border-color:#f59e0b}[data-theme=dark] .viewing-as-banner-exit{color:#fef3c7;border-color:#f59e0b}[data-theme=dark] .viewing-as-banner-exit:hover{background-color:#92400e}[data-theme=dark] .quick-select,[data-theme=dark] .group-by-toggle,[data-theme=dark] .span-select-buttons{border-color:#334155}[data-theme=dark] .quick-select button,[data-theme=dark] .group-by-toggle button,[data-theme=dark] .span-select-buttons button{color:#cbd5e1;background:#0f172a;border-left-color:#334155}[data-theme=dark] .quick-select button:hover,[data-theme=dark] .group-by-toggle button:hover,[data-theme=dark] .span-select-buttons button:hover{background:#1e293b}[data-theme=dark] .group-by-toggle button.active,[data-theme=dark] .span-select-buttons button.active{color:#fff;background-color:#2563eb}[data-theme=dark] .span-select-label{color:#94a3b8}[data-theme=dark] .action-button{color:#cbd5e1;background-color:#0f172a;border-color:#334155}[data-theme=dark] .action-button:hover:not(:disabled){background-color:#1e293b;border-color:#475569}[data-theme=dark] .icon-button:hover:not(:disabled){color:#60a5fa;border-color:#60a5fa}[data-theme=dark] .icon-button.active{color:#60a5fa;background-color:#1e3a8a33;border-color:#60a5fa}[data-theme=dark] .duplicate-popover{background:#1e293b;border-color:#334155;box-shadow:0 8px 22px #0009}[data-theme=dark] .duplicate-popover-day{color:#e5e7eb;background:#0f172a;border-color:#334155}[data-theme=dark] .duplicate-popover-day:hover{background:#1e293b;border-color:#475569}[data-theme=dark] .duplicate-popover-day.active{color:#fff;background:#2563eb;border-color:#2563eb}[data-theme=dark] .duplicate-popover-day.today:after{background:#60a5fa}[data-theme=dark] .duplicate-popover-day.today.active:after{background:#fff}[data-theme=dark] .duplicate-popover-current{color:#60a5fa;background:#0f172a;border-color:#60a5fa}[data-theme=dark] .duplicate-popover-current:hover{color:#fff;background:#2563eb;border-color:#2563eb}[data-theme=dark] .delete-button{color:#f87171;border-color:#b91c1c}[data-theme=dark] .delete-button:hover:not(:disabled){background-color:#450a0a;border-color:#dc2626}[data-theme=dark] .empty-state,[data-theme=dark] .common-games-header{color:#94a3b8}[data-theme=dark] .error-banner{color:#fecaca;background-color:#7f1d1d;border-bottom-color:#991b1b}[data-theme=dark] .success-banner{color:#bbf7d0;background-color:#14532d;border-bottom-color:#166534}[data-theme=dark] .common-games{border-top-color:#334155}[data-theme=dark] .game-chip{color:#dbeafe;background-color:#1e3a8a;border-color:#1e40af}[data-theme=dark] .date-strip{background-color:#1e293b;border-bottom-color:#334155}[data-theme=dark] .date-strip-nav{color:#cbd5e1;background-color:#0f172a;border-color:#334155}[data-theme=dark] .date-strip-nav:hover{color:#f1f5f9;background-color:#1e293b}[data-theme=dark] .date-strip-day{background-color:#0f172a;border-color:#334155}[data-theme=dark] .date-strip-day:hover{background-color:#1e293b;border-color:#475569}[data-theme=dark] .date-strip-day-name{color:#94a3b8}[data-theme=dark] .date-strip-day-num{color:#e5e7eb}[data-theme=dark] .date-strip-month-label{color:#94a3b8}[data-theme=dark] .date-strip-day.month-start{border-left-color:#475569}[data-theme=dark] .date-strip-day.weekend .date-strip-day-name,[data-theme=dark] .date-strip-day.weekend .date-strip-day-num{color:#64748b}[data-theme=dark] .date-strip-day-hours{color:#94a3b8}[data-theme=dark] .date-strip-day.has-hours .date-strip-day-hours{color:#34d399}[data-theme=dark] .date-strip-day.missing{background:#450a0a;border-color:#b91c1c}[data-theme=dark] .date-strip-day.missing .date-strip-day-name,[data-theme=dark] .date-strip-day.missing .date-strip-day-num,[data-theme=dark] .date-strip-day.missing .date-strip-day-hours{color:#fca5a5}[data-theme=dark] .date-strip-day.missing:hover{background:#7f1d1d;border-color:#dc2626}[data-theme=dark] .date-strip-day.today{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b66}[data-theme=dark] .date-strip-day.today.range-start,[data-theme=dark] .date-strip-day.today.range-end{background-color:#422006;border-color:#f59e0b}[data-theme=dark] .date-strip-day.today.range-start .date-strip-day-num,[data-theme=dark] .date-strip-day.today.range-end .date-strip-day-num{color:#fde68a}[data-theme=dark] .date-strip-day.today.range-start .date-strip-day-name,[data-theme=dark] .date-strip-day.today.range-end .date-strip-day-name,[data-theme=dark] .date-strip-day.today.range-start .date-strip-day-hours,[data-theme=dark] .date-strip-day.today.range-end .date-strip-day-hours{color:#fcd34d}[data-theme=dark] .date-strip-day.in-range{background-color:#1e3a8a55;border-color:#3b82f6}[data-theme=dark] .date-strip-day.in-range .date-strip-day-name,[data-theme=dark] .date-strip-day.in-range .date-strip-day-num{color:#dbeafe}[data-theme=dark] .date-strip-day.range-start,[data-theme=dark] .date-strip-day.range-end{background-color:#2563eb;border-color:#3b82f6}[data-theme=dark] .date-strip-day.range-start .date-strip-day-name,[data-theme=dark] .date-strip-day.range-end .date-strip-day-name,[data-theme=dark] .date-strip-day.range-start .date-strip-day-num,[data-theme=dark] .date-strip-day.range-end .date-strip-day-num{color:#fff}[data-theme=dark] .game-filter-bar{background-color:#1e293b;border-bottom-color:#334155}[data-theme=dark] .game-filter-label{color:#94a3b8}[data-theme=dark] .game-filter-chip.active{color:#fff;background-color:#6366f1;border-color:#818cf8}[data-theme=dark] .game-filter-clear{color:#94a3b8}[data-theme=dark] .game-filter-clear:hover{color:#e2e8f0}[data-theme=dark] .modal-overlay{background:#000000b3}[data-theme=dark] .modal-card{background:#1e293b;box-shadow:0 20px 40px #0009}[data-theme=dark] .modal-card h3{color:#f1f5f9}[data-theme=dark] .modal-game-name,[data-theme=dark] .modal-label{color:#94a3b8}[data-theme=dark] .modal-submit{background:#2563eb}[data-theme=dark] .modal-submit:hover:not(:disabled){background:#1d4ed8}[data-theme=dark] .game-picker-dropdown{background:#0f172a;border-color:#334155;box-shadow:0 8px 20px #0009}[data-theme=dark] .game-picker-section-label{color:#94a3b8}[data-theme=dark] .game-picker-item{color:#e5e7eb}[data-theme=dark] .game-picker-item.highlighted{background-color:#1e293b}[data-theme=dark] .game-picker-star{color:#475569}[data-theme=dark] .game-picker-star.active,[data-theme=dark] .game-picker-star:hover{color:#fbbf24}[data-theme=dark] .game-picker-empty{color:#94a3b8}[data-theme=dark] .project-picker-chip{color:#c7d2fe;background:#1e1b4b;border-color:#4338ca}[data-theme=dark] .project-picker-chip-remove{color:#c7d2fe}[data-theme=dark] .project-picker-chip-remove:hover{color:#fff;background:#c7d2fe33}[data-theme=dark] .slice-tooltip{background:#1e293b;border-color:#334155}[data-theme=dark] .slice-tooltip-primary{color:#f1f5f9}[data-theme=dark] .slice-tooltip-secondary,[data-theme=dark] .slice-tooltip-hours{color:#cbd5e1}[data-theme=dark] .login-container{background:#0f172a}[data-theme=dark] .login-card{color:#e5e7eb;background:#1e293b}[data-theme=dark] .login-card h1{color:#f1f5f9}[data-theme=dark] .login-card input{color:#e5e7eb;background:#0f172a;border-color:#334155}[data-theme=dark] .login-card label{color:#cbd5e1}[data-theme=dark] .login-button{background-color:#2563eb}[data-theme=dark] .login-button:hover:not(:disabled){background-color:#1d4ed8}.login-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;display:flex}.login-card{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:40px;box-shadow:0 20px 60px #0000004d}.login-card h1{color:#333;text-align:center;margin:0 0 30px;font-size:28px}.form-group{margin-bottom:20px}.form-group label{color:#555;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group input{box-sizing:border-box;border:1px solid #ddd;border-radius:6px;width:100%;padding:10px 12px;font-size:14px;transition:border-color .2s}.form-group input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{cursor:not-allowed;background-color:#f5f5f5}.error-message{color:#dc3545;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;margin-bottom:15px;padding:10px 12px;font-size:13px}.login-button{color:#fff;cursor:pointer;background-color:#667eea;border:none;border-radius:6px;width:100%;padding:12px;font-size:16px;font-weight:600;transition:background-color .2s}.login-button:hover:not(:disabled){background-color:#5568d3}.login-button:disabled{cursor:not-allowed;background-color:#aaa}.google-button{box-sizing:border-box;justify-content:center;align-items:center;gap:10px;text-decoration:none;display:flex}.google-button.is-busy{pointer-events:none;background-color:#aaa}.piecharts-container{flex-direction:column;gap:20px;width:100%;display:flex}.pie-chart-wrapper{aspect-ratio:1;flex:none;justify-content:center;align-items:stretch;width:100%;max-height:360px;display:flex;position:relative}.pie-copy-button{color:#374151;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2;background:#ffffffeb;border:1px solid #d1d5db;border-radius:4px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:background .15s,color .15s,border-color .15s;position:absolute;bottom:6px;right:6px}.pie-copy-button:hover{color:#fff;background:#2563eb;border-color:#2563eb}.pie-copy-button.copied{color:#fff;background:#16a34a;border-color:#16a34a}.pie-copy-button.error{color:#fff;background:#dc2626;border-color:#dc2626}.pie-empty-state{color:#999;text-align:center;padding:40px 10px;font-size:14px}.slice-tooltip{background:#fff;border:1px solid #e5e7eb;border-radius:6px;max-width:260px;padding:10px 12px;box-shadow:0 4px 12px #00000014}.slice-tooltip-primary{color:#111827;font-size:15px;font-weight:600;line-height:1.2}.slice-tooltip-secondary{color:#6b7280;word-break:break-word;margin-top:3px;font-size:12px;line-height:1.3}.slice-tooltip-hours{color:#374151;margin-top:6px;font-size:12px;font-weight:500}.chart-legend{border-top:1px solid #f0f0f0;padding-top:14px}.chart-legend h3{color:#555;text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:13px;font-weight:600}.empty-state{color:#999;padding:6px 0;font-size:13px}.legend-items{flex-wrap:wrap;gap:6px 12px;margin:0;padding:0;list-style:none;display:flex}.legend-item{color:#333;align-items:center;gap:6px;max-width:100%;font-size:13px;display:inline-flex}.legend-swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.legend-label{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.legend-game-chips{flex-wrap:wrap;gap:6px;display:flex}.legend-items+.legend-game-chips{margin-top:10px}.legend-total{color:#333;border-top:1px solid #e0e0e0;margin-top:12px;padding-top:10px;font-size:14px}.table-container{flex-direction:column;gap:15px;height:100%;min-height:0;display:flex}.add-task-button{color:#fff;cursor:pointer;background-color:#007bff;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .2s}.add-task-button:hover:not(:disabled){background-color:#0056b3}.add-task-button:disabled{opacity:.5;cursor:not-allowed}.task-card-list{flex-direction:column;flex:auto;gap:10px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.task-card{--task-color:#d1d5db;background:#fff;border:1px solid #e5e7eb;border-radius:6px;transition:box-shadow .15s,border-color .15s,transform .18s,opacity .18s;display:flex;position:relative;overflow:hidden}.task-card[draggable=true] .task-card-edge{cursor:grab}.task-card[draggable=true]:active .task-card-edge{cursor:grabbing}.task-card.dragging{opacity:.35;filter:saturate(.6);transform:scale(.95)}.task-card.thud{animation:.48s cubic-bezier(.16,1.4,.4,1) task-thud}.task-card.thud:after{content:"";border-radius:inherit;pointer-events:none;animation:.52s ease-out task-ripple;position:absolute;inset:0;box-shadow:0 0 #2563eb8c}@keyframes task-thud{0%{transform:scale(.85)translateY(-6px)}35%{transform:scale(1.06)translateY(2px)}60%{transform:scale(.97)translateY(0)}80%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes task-ripple{0%{box-shadow:0 0 #2563eb99}to{box-shadow:0 0 0 18px #2563eb00}}.task-card.slide-out-left,.task-card.slide-out-right{pointer-events:none;overflow:hidden}.task-card.slide-out-left{animation:.42s cubic-bezier(.55,0,.85,.5) forwards task-slide-out-left}.task-card.slide-out-right{animation:.42s cubic-bezier(.55,0,.85,.5) forwards task-slide-out-right}@keyframes task-slide-out-left{0%{opacity:1;max-height:240px;transform:translate(0)scale(1)}60%{opacity:0;max-height:240px;transform:translate(-110%)scale(.92)}to{opacity:0;border-width:0;max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;transform:translate(-110%)scale(.9)}}@keyframes task-slide-out-right{0%{opacity:1;max-height:240px;transform:translate(0)scale(1)}60%{opacity:0;max-height:240px;transform:translate(110%)scale(.92)}to{opacity:0;border-width:0;max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;transform:translate(110%)scale(.9)}}.table-section.shake{animation:.36s cubic-bezier(.36,.07,.19,.97) table-shake}@keyframes table-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px,-1px)}30%,50%,70%{transform:translate(-3px,1px)}40%,60%{transform:translate(3px,-1px)}}.task-card:hover{border-color:#d1d5db;box-shadow:0 1px 4px #0000000d}.task-card-edge{background-color:var(--task-color);flex:0 0 6px}.task-card-body{flex-direction:column;flex:auto;gap:8px;min-width:0;padding:10px 14px;display:flex}.task-card-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.task-card-row-main{align-items:flex-end}.task-card-row-notes{align-items:stretch}.task-field{flex-direction:column;gap:3px;min-width:0;display:flex}.task-field-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:600}.task-field-date{flex:0 0 140px}.task-field-game{flex:140px;min-width:120px}.task-field-project{flex:160px;min-width:120px}.task-field-hours{flex:0 0 80px}.task-field-actions{flex:none;margin-left:auto}.task-field-description{flex:220px;min-width:180px}.task-field-notes{flex:2 300px;min-width:200px}.cell-select,.cell-input{box-sizing:border-box;background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:6px 8px;font-family:inherit;font-size:13px}.cell-select:focus,.cell-input:focus{background-color:#f0f4ff;border-color:#667eea;outline:none;box-shadow:0 0 0 2px #667eea1a}.cell-select:disabled,.cell-input:disabled{cursor:not-allowed;color:#666;background-color:#f5f5f5}.hours-input{text-align:center}.description-input{resize:vertical;min-height:42px;font-family:inherit;line-height:1.35}.action-buttons{flex-wrap:wrap;gap:6px;display:flex}.action-button{cursor:pointer;background-color:#f9f9f9;border:1px solid #ddd;border-radius:4px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s}.action-button:hover:not(:disabled){background-color:#f0f0f0;border-color:#bbb}.edit-button{color:#007bff;border-color:#007bff}.edit-button:hover:not(:disabled){background-color:#e7f1ff}.done-button{color:#28a745;border-color:#28a745}.done-button:hover:not(:disabled){background-color:#e8f5e9}.delete-button{color:#dc3545;border-color:#dc3545}.delete-button:hover:not(:disabled){background-color:#ffe8e8}.icon-button{color:#555;justify-content:center;align-items:center;padding:6px 8px;line-height:0;display:inline-flex}.icon-button:hover:not(:disabled){color:#2563eb;border-color:#2563eb}.icon-button.active{color:#2563eb;background-color:#eff6ff;border-color:#2563eb}.action-button:disabled{opacity:.5;cursor:not-allowed}.duplicate-popover{z-index:1000;background:#fff;border:1px solid #d1d5db;border-radius:8px;flex-direction:column;gap:8px;min-width:200px;padding:10px;display:flex;box-shadow:0 8px 22px #0f172a38}.duplicate-popover-days{gap:4px;display:flex}.duplicate-popover-day{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;flex:1 1 0;min-width:0;padding:6px 0;font-family:inherit;font-size:12px;font-weight:600;transition:background .1s,border-color .1s,color .1s;position:relative}.duplicate-popover-day:hover{background:#f3f4f6;border-color:#9ca3af}.duplicate-popover-day.active{color:#fff;background:#2563eb;border-color:#2563eb}.duplicate-popover-day.today:after{content:"";background:#2563eb;border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.duplicate-popover-day.today.active:after{background:#fff}.duplicate-popover-current{color:#2563eb;cursor:pointer;background:#fff;border:1px solid #2563eb;border-radius:4px;padding:7px 10px;font-family:inherit;font-size:13px;font-weight:500;transition:background .1s,color .1s}.duplicate-popover-current:hover{color:#fff;background:#2563eb}.duplicate-popover-clone{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:4px;padding:7px 12px;font-family:inherit;font-size:13px;font-weight:500}.duplicate-popover-clone:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.duplicate-popover-clone:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.task-field-date,.task-field-game,.task-field-project,.task-field-hours,.task-field-actions{flex:45%}.action-buttons{flex-direction:row}.action-button{padding:4px 8px;font-size:11px}}.dashboard{background-color:#f5f7fa;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.dashboard-top{z-index:50;background:#fff;position:sticky;top:0;box-shadow:0 2px 6px #0000000f}.dashboard-header{background:#fff;border-bottom:1px solid #e0e0e0;justify-content:space-between;align-items:center;padding:20px 30px;display:flex;box-shadow:0 2px 4px #0000000d}.dashboard-header h1{color:#333;margin:0;font-size:24px}.header-right{align-items:center;gap:20px;display:flex}.user-info{color:#666;font-size:14px;font-weight:500}.logout-button,.theme-toggle{color:#333;cursor:pointer;background-color:#f0f0f0;border:1px solid #ddd;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .2s}.logout-button:hover,.theme-toggle:hover{background-color:#e0e0e0}.staff-picker-wrap{align-items:center;gap:6px;display:inline-flex}.staff-picker-label{color:#666;text-transform:uppercase;letter-spacing:.04em;font-size:12px}.staff-picker{color:#333;cursor:pointer;background-color:#f0f0f0;border:1px solid #ddd;border-radius:6px;padding:7px 10px;font-family:inherit;font-size:13px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s}.staff-picker:hover{background-color:#e0e0e0}.staff-picker.viewing-as-other{color:#92400e;background-color:#fef3c7;border-color:#f59e0b}.staff-picker.viewing-as-other:hover{background-color:#fde68a}.viewing-as-banner{color:#92400e;background-color:#fef3c7;border:1px solid #f59e0b;border-radius:6px;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;font-size:13px;display:flex}.viewing-as-banner-icon{font-size:16px}.viewing-as-banner-exit{color:#92400e;cursor:pointer;background-color:#0000;border:1px solid #f59e0b;border-radius:4px;margin-left:auto;padding:5px 10px;font-family:inherit;font-size:12px;font-weight:500}.viewing-as-banner-exit:hover{background-color:#fde68a}.dashboard-controls{background:#fff;border-bottom:1px solid #e0e0e0;align-items:center;gap:20px;padding:20px 30px;display:flex}.date-range{align-items:center;gap:8px;display:flex}.date-range label{color:#555;font-size:14px;font-weight:500}.date-range input{border:1px solid #ddd;border-radius:6px;padding:8px 12px;font-size:14px}.quick-select{border:1px solid #ddd;border-radius:6px;display:inline-flex;overflow:hidden}.quick-select button{cursor:pointer;color:#333;background:#fff;border:none;border-left:1px solid #ddd;padding:8px 14px;font-size:13px;font-weight:500;transition:background-color .15s}.quick-select button:first-child{border-left:none}.quick-select button:hover{background-color:#f0f0f0}.span-select{align-items:center;gap:8px;display:inline-flex}.span-select-label{color:#666;text-transform:uppercase;letter-spacing:.04em;font-size:12px}.span-select-buttons{border:1px solid #ddd;border-radius:6px;display:inline-flex;overflow:hidden}.span-select-buttons button{cursor:pointer;color:#333;background:#fff;border:none;border-left:1px solid #ddd;padding:8px 12px;font-size:13px;font-weight:500;transition:background-color .15s,color .15s}.span-select-buttons button:first-child{border-left:none}.span-select-buttons button:hover{background-color:#f0f0f0}.span-select-buttons button.active{color:#fff;background-color:#2563eb}.table-section-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.table-section-header h2{margin:0}.table-section-header-right{align-items:center;gap:10px;display:flex}.task-summary-badge{color:#fff;letter-spacing:.02em;white-space:nowrap;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#2563eb 0%,#6366f1 100%);border-radius:999px;align-items:center;gap:10px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 4px 14px #2563eb59}.task-summary-count{font-variant-numeric:tabular-nums}.task-summary-count:after{content:" tasks";opacity:.85;text-transform:uppercase;letter-spacing:.06em;margin-left:3px;font-size:11px;font-weight:500}.task-summary-divider{background:#fff6;width:1px;height:14px}.task-summary-hours{font-variant-numeric:tabular-nums;letter-spacing:.01em}.refresh-button{cursor:pointer;color:#333;background-color:#f0f0f0;border:none;border-radius:6px;margin-left:auto;padding:8px 16px;font-size:14px;font-weight:500;transition:background-color .2s}.refresh-button:hover:not(:disabled){background-color:#e0e0e0}.refresh-button:disabled{opacity:.5;cursor:not-allowed}.error-banner{color:#721c24;background-color:#f8d7da;border-bottom:1px solid #f5c6cb;padding:12px 30px;font-size:14px}.success-banner{color:#155724;background-color:#d4edda;border-bottom:1px solid #c3e6cb;padding:12px 30px;font-size:14px}.dashboard-content{align-items:stretch;gap:0;min-height:calc(100vh - 220px);padding:30px;display:flex}.dashboard-content.dragging{cursor:col-resize}.dashboard-content.dragging *{pointer-events:none;-webkit-user-select:none;user-select:none}.chart-section,.table-section{background:#fff;border-radius:8px;flex-direction:column;min-width:0;min-height:0;padding:25px;display:flex;box-shadow:0 2px 8px #0000000d}.chart-section{flex:none;min-width:260px}.chart-section-sticky{top:calc(var(--sticky-top-height,200px) + 20px);min-height:0;max-height:calc(100vh - var(--sticky-top-height,200px) - 40px);flex-direction:column;flex:auto;display:flex;position:sticky;overflow-y:auto}.table-section{flex:auto;min-width:320px}.chart-section-body{flex-direction:column;flex:none;min-height:0;display:flex}.pane-divider{cursor:col-resize;pointer-events:auto;flex:0 0 14px;justify-content:center;align-items:stretch;display:flex;position:relative}.pane-divider-handle{background-color:#d1d5db;border-radius:2px;width:3px;margin:20px 0;transition:background-color .15s,width .15s}.pane-divider:hover .pane-divider-handle,.dashboard-content.dragging .pane-divider-handle{background-color:#2563eb;width:4px}.chart-section h2,.table-section h2{color:#333;margin-top:0;margin-bottom:20px;font-size:18px}.chart-section-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.chart-section-header h2{margin:0}.group-by-toggle{border:1px solid #ddd;border-radius:6px;display:inline-flex;overflow:hidden}.group-by-toggle button{cursor:pointer;color:#555;background:#fff;border:none;border-left:1px solid #ddd;padding:6px 14px;font-size:13px;transition:background-color .15s,color .15s}.group-by-toggle button:first-child{border-left:none}.group-by-toggle button:hover{background-color:#f5f5f5}.group-by-toggle button.active{color:#fff;background-color:#2563eb}.chart-section{outline-offset:-6px;outline:2px dashed #0000;transition:outline-color .15s,background-color .15s;position:relative}.chart-section.drag-over{background-color:#eff6ff;outline-color:#2563eb}.common-games{border-top:1px dashed #ddd;margin-top:20px;padding-top:16px}.common-games-header{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:12px;font-weight:500}.common-games-chips{flex-wrap:wrap;gap:6px;display:flex}.game-chip{cursor:grab;color:#3730a3;-webkit-user-select:none;user-select:none;background-color:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:6px 12px;font-size:13px;transition:transform .1s,box-shadow .1s}.game-chip:hover{box-shadow:0 1px 4px #3730a333}.game-chip:active{cursor:grabbing;transform:scale(.97)}.date-strip{background:#fff;border-bottom:1px solid #e0e0e0;align-items:stretch;gap:6px;padding:8px 16px;display:flex}.date-strip-nav{cursor:pointer;color:#4b5563;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex:none;padding:0 10px;font-family:inherit;font-size:18px;line-height:1}.date-strip-nav:hover{color:#111827;background:#f3f4f6;border-color:#9ca3af}.date-strip-scroller{scroll-behavior:smooth;scrollbar-width:thin;flex:auto;gap:4px;padding-bottom:2px;display:flex;overflow-x:auto}.date-strip-scroller::-webkit-scrollbar{height:6px}.date-strip-scroller::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.date-strip-day{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex-direction:column;flex:0 0 56px;justify-content:center;align-items:center;gap:1px;padding:6px 0 4px;font-family:inherit;transition:background .1s,border-color .1s,color .1s;display:flex;position:relative}.date-strip-day-hours{color:#6b7280;letter-spacing:.02em;margin-top:2px;font-size:10px;font-weight:600}.date-strip-day.has-hours .date-strip-day-hours{color:#047857}.date-strip-day.missing{background:#fef2f2;border-color:#fca5a5}.date-strip-day.missing .date-strip-day-name,.date-strip-day.missing .date-strip-day-num{color:#b91c1c}.date-strip-day.missing .date-strip-day-hours{color:#dc2626}.date-strip-day.missing:hover{background:#fee2e2;border-color:#f87171}.date-strip-day:hover{background:#f3f4f6;border-color:#9ca3af}.date-strip-day-name{text-transform:uppercase;letter-spacing:.04em;color:#6b7280;font-size:10px;font-weight:600}.date-strip-day-num{color:#111827;font-size:14px;font-weight:600}.date-strip-month-label{letter-spacing:.06em;color:#6b7280;text-transform:uppercase;pointer-events:none;font-size:9px;font-weight:700;position:absolute;top:-14px;left:0}.date-strip-day.month-start{border-left:2px solid #cbd5e1;margin-left:6px}.date-strip-day.weekend .date-strip-day-name,.date-strip-day.weekend .date-strip-day-num{color:#9ca3af}.date-strip-day.today{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b59}.date-strip-day.today.range-start,.date-strip-day.today.range-end{background:#fef3c7;border-color:#f59e0b}.date-strip-day.today.range-start .date-strip-day-num,.date-strip-day.today.range-end .date-strip-day-num{color:#b45309}.date-strip-day.today.range-start .date-strip-day-name,.date-strip-day.today.range-end .date-strip-day-name{color:#92400e}.date-strip-day.today.range-start .date-strip-day-hours,.date-strip-day.today.range-end .date-strip-day-hours{color:#b45309}.date-strip-day.in-range{background:#dbeafe;border-color:#93c5fd}.date-strip-day.in-range .date-strip-day-num,.date-strip-day.in-range .date-strip-day-name{color:#1e3a8a}.date-strip-day.range-start,.date-strip-day.range-end{background:#2563eb;border-color:#2563eb}.date-strip-day.range-start .date-strip-day-name,.date-strip-day.range-end .date-strip-day-name,.date-strip-day.range-start .date-strip-day-num,.date-strip-day.range-end .date-strip-day-num{color:#fff}.game-filter-bar{background:#fff;border-bottom:1px solid #e0e0e0;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 30px 14px;display:flex}.game-filter-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}.game-filter-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.game-filter-chip{cursor:pointer;opacity:.75;font-family:inherit}.game-filter-chip:hover{opacity:1}.game-filter-chip.active{opacity:1;color:#eef2ff;background-color:#3730a3;border-color:#3730a3;box-shadow:0 1px 4px #3730a34d}.game-filter-clear{color:#6b7280;cursor:pointer;background:0 0;border:none;margin-left:4px;padding:4px 10px;font-family:inherit;font-size:12px;text-decoration:underline}.game-filter-clear:hover{color:#374151}.modal-overlay{z-index:1000;background:#0f172a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:10px;width:min(440px,92vw);padding:24px;box-shadow:0 20px 40px #0000004d}.modal-card h3{color:#111827;margin:0 0 4px;font-size:18px}.modal-game-name{color:#6b7280;margin:0 0 14px;font-size:13px}.modal-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin:12px 0 4px;font-size:12px;font-weight:500;display:block}.modal-select{box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:14px}.modal-select:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.modal-card textarea{resize:vertical;box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.modal-card textarea:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal-cancel,.modal-submit{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500}.modal-cancel{color:#374151;background:#fff;border-color:#d1d5db}.modal-cancel:hover{background:#f3f4f6}.modal-submit{color:#fff;background:#2563eb}.modal-submit:hover:not(:disabled){background:#1d4ed8}.modal-submit:disabled{opacity:.5;cursor:not-allowed}.modal-duration-input{width:120px}body.task-dragging,body.task-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.task-drag-preview{pointer-events:none;z-index:5000;color:#111827;transform-origin:50%;background:#fff;border:2px solid #2563eb;border-radius:10px;max-width:220px;padding:8px 12px;font-size:12px;animation:.16s ease-out drag-pop-in,1.4s ease-in-out .16s infinite drag-wiggle;position:fixed;box-shadow:0 12px 32px #2563eb66}.task-drag-preview-name{white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:13px;font-weight:700;overflow:hidden}.task-drag-preview-meta{color:#4b5563;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}@keyframes drag-pop-in{0%{opacity:.4;transform:translate(-50%,-50%)scale(1.2)rotate(0)}60%{opacity:1;transform:translate(-50%,-50%)scale(.85)rotate(-3deg)}to{opacity:1;transform:translate(-50%,-50%)scale(.92)rotate(-2deg)}}@keyframes drag-wiggle{0%{transform:translate(-50%,-50%)scale(.92)rotate(-2deg)}50%{transform:translate(-50%,-50%)scale(.96)rotate(2deg)}to{transform:translate(-50%,-50%)scale(.92)rotate(-2deg)}}.task-fly-card{z-index:5001;pointer-events:none;background:#2563eb;border-radius:8px;width:80px;height:30px;margin-top:-15px;margin-left:-40px;animation:.52s cubic-bezier(.5,0,.6,1) forwards task-fly;position:fixed;box-shadow:0 8px 24px #2563eb8c}@keyframes task-fly{0%{opacity:1;transform:translate(0)scale(1)rotate(0)}60%{transform:translate(calc(var(--fly-dx) * .85), calc(var(--fly-dy) * .85)) scale(.4) rotate(140deg);opacity:1}to{transform:translate(var(--fly-dx), var(--fly-dy)) scale(.05) rotate(220deg);opacity:0}}.date-strip-day.drop-receptive{border-style:dashed}.date-strip-day.drop-target{z-index:5;transform:translateY(-2px)scale(1.06);background:#fde68a!important;border-style:solid!important;border-color:#d97706!important;box-shadow:0 0 0 3px #d9770673,0 6px 20px #d977064d!important}.date-strip-day.drop-target .date-strip-day-name,.date-strip-day.drop-target .date-strip-day-num,.date-strip-day.drop-target .date-strip-day-hours{color:#78350f!important}.game-picker{width:100%;position:relative}.game-picker-input{cursor:text}.game-picker-dropdown{z-index:1000;background:#fff;border:1px solid #d1d5db;border-radius:6px;overflow-y:auto;box-shadow:0 8px 20px #0f172a2e}.game-picker-list{margin:0;padding:4px 0;list-style:none}.game-picker-section-label{text-transform:uppercase;letter-spacing:.06em;color:#6b7280;padding:6px 10px 4px;font-size:10px;font-weight:600}.game-picker-item{cursor:pointer;color:#111827;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:flex}.game-picker-item.highlighted{background-color:#eef2ff}.game-picker-item.selected{font-weight:600}.game-picker-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.game-picker-star{cursor:pointer;color:#cbd5e1;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.game-picker-star-spacer{width:18px;display:inline-block}.game-picker-item-empty .game-picker-item-name{color:#6b7280;font-style:italic}.game-picker-star.active,.game-picker-star:hover{color:#f59e0b}.game-picker-empty{color:#6b7280;text-align:center;padding:12px;font-size:13px}.project-picker{cursor:text;align-items:center;width:100%;min-height:30px;padding:3px 6px;display:flex;position:relative}.project-picker-chips{flex-wrap:wrap;flex:auto;align-items:center;gap:4px;min-width:0;display:flex}.project-picker-chip{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;align-items:center;gap:4px;max-width:100%;padding:2px 6px 2px 8px;font-size:12px;line-height:1.4;display:inline-flex}.project-picker-chip-label{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.project-picker-chip-remove{color:#4338ca;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:0 2px;font-size:14px;line-height:1}.project-picker-chip-remove:hover{color:#1e1b4b;background:#4338ca26}.project-picker-input{min-width:60px;font:inherit;color:inherit;background:0 0;border:none;outline:none;flex:80px;padding:2px 4px}@media (width<=900px){.dashboard-content{flex-direction:column;min-height:0}.chart-section,.table-section{flex:auto;min-width:0}.chart-section{flex-basis:auto!important}.pane-divider{display:none}}@media (width<=768px){.dashboard-header{flex-direction:column;gap:15px}.header-right{justify-content:space-between;width:100%}.dashboard-controls{flex-wrap:wrap}.dashboard-content{gap:20px;padding:20px}.chart-section,.table-section{padding:15px}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app{min-height:100vh}.app-error{color:#666;background-color:#f5f7fa;justify-content:center;align-items:center;min-height:100vh;font-size:18px;display:flex}
