:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}body{place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.sidebar{width:var(--sidebar-width);background-color:var(--bg-primary);border-right:1px solid var(--border-color);height:100vh;z-index:var(--z-modal);transition:transform var(--transition-normal);flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar-overlay{display:none}.sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.logo{align-items:center;gap:var(--spacing-sm);color:var(--color-primary);display:flex}.logo-text{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.sidebar-nav{padding:var(--spacing-md);gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex;overflow-y:auto}.nav-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);text-align:left;background:0 0;width:100%;display:flex}.nav-item:hover{background-color:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background-color:var(--color-primary-light);color:var(--color-primary)}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--border-color)}.theme-toggle{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;width:100%;display:flex}.theme-toggle:hover{background-color:var(--bg-hover);color:var(--text-primary)}@media (max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{opacity:0;visibility:hidden;width:100%;height:100%;transition:all var(--transition-normal);z-index:calc(var(--z-modal) - 1);background-color:#00000080;display:block;position:fixed;top:0;left:0}.sidebar-overlay.visible{opacity:1;visibility:visible}}.header{height:var(--header-height);background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);padding:0 var(--spacing-lg);z-index:var(--z-dropdown);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:var(--spacing-md);display:flex}.menu-button{color:var(--text-primary);padding:var(--spacing-sm);border-radius:var(--radius-md);background:0 0;display:none}.menu-button:hover{background-color:var(--bg-hover)}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.header-right{align-items:center;gap:var(--spacing-md);display:flex}.user-avatar{border-radius:var(--radius-full);background-color:var(--color-primary);width:36px;height:36px;color:var(--text-inverse);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}@media (max-width:768px){.menu-button{display:flex}.page-title{font-size:var(--font-size-lg)}}.layout{min-height:100vh;display:flex}.main-wrapper{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.main-content{padding:var(--spacing-lg);flex:1;overflow-y:auto}@media (max-width:768px){.main-wrapper{margin-left:0}.main-content{padding:var(--spacing-md)}}.project-dropdown{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:250px;max-height:300px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);animation:slideIn var(--transition-fast);position:absolute;top:100%;left:0;overflow:hidden}.dropdown-header{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.dropdown-list{max-height:250px;overflow-y:auto}.dropdown-item{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);text-align:left;cursor:pointer;transition:background-color var(--transition-fast);background:0 0;border:none;display:flex}.dropdown-item:hover{background-color:var(--bg-hover)}.dropdown-item.selected{background-color:var(--color-primary-light)}.project-name{font-size:var(--font-size-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.project-client{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-left:auto}.dropdown-empty{padding:var(--spacing-lg);text-align:center;color:var(--text-tertiary);font-size:var(--font-size-sm)}.tag-selector{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:200px;max-height:300px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);animation:slideIn var(--transition-fast);position:absolute;top:100%;left:0;overflow:hidden}.tag-name{font-size:var(--font-size-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.manual-entry-container{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.manual-entry-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.manual-entry-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.close-btn{color:var(--text-tertiary);padding:var(--spacing-xs);border-radius:var(--radius-md);background:0 0}.close-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.manual-entry-form{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;display:flex}.form-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.form-group label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.form-row{gap:var(--spacing-md);display:flex}.form-row .form-group{flex:1}.form-row.selectors{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.form-row.selectors .selector-wrapper{position:relative}.form-actions{justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);display:flex}@media (max-width:640px){.form-row{flex-direction:column}}.timer-container{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:all var(--transition-normal);overflow:hidden}.timer-container.running{box-shadow:0 0 0 2px var(--color-success), var(--shadow-md)}.timer-main{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;display:flex}.timer-input-wrapper{flex:1}.timer-description{font-size:var(--font-size-lg);padding:var(--spacing-sm) 0;background:0 0;border:none;width:100%}.timer-description:focus{box-shadow:none;outline:none}.timer-controls{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.timer-selectors{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.selector-wrapper{position:relative}.selector-button{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all var(--transition-fast);border:2px solid #0000;display:flex}.selector-button:hover{background-color:var(--bg-hover);color:var(--text-primary)}.selector-button.has-value{background-color:var(--color-primary-light);color:var(--color-primary)}.selector-text{text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.billable-button{background-color:var(--bg-tertiary);width:32px;height:32px;color:var(--text-tertiary);border-radius:var(--radius-md);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.billable-button:hover{background-color:var(--bg-hover);color:var(--text-primary)}.billable-button.active{background-color:var(--color-success-light);color:var(--color-success)}.timer-display{flex:1;justify-content:flex-end;align-items:center;display:flex}.timer-time{font-family:var(--font-mono);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:2px}.timer-container.running .timer-time{color:var(--color-success)}.timer-toggle-btn{border-radius:var(--radius-full);width:56px;height:56px;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.timer-toggle-btn.start{background-color:var(--color-primary);color:var(--text-inverse)}.timer-toggle-btn.start:hover{background-color:var(--color-primary-hover);transform:scale(1.05)}.timer-toggle-btn.stop{background-color:var(--color-danger);color:var(--text-inverse)}.timer-toggle-btn.stop:hover{background-color:var(--color-danger-hover);transform:scale(1.05)}.timer-footer{padding:var(--spacing-sm) var(--spacing-lg);border-top:1px solid var(--border-color);align-items:center;gap:var(--spacing-md);background-color:var(--bg-secondary);display:flex}.manual-mode-btn{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background:0 0}.manual-mode-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.selected-tags{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.tag-badge{padding:2px var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);align-items:center;display:inline-flex}@media (max-width:640px){.timer-controls{flex-direction:column;align-items:stretch}.timer-selectors{order:2;justify-content:flex-start}.timer-display{margin-bottom:var(--spacing-sm);order:1;justify-content:center}.timer-toggle-btn{border-radius:var(--radius-md);order:3;width:100%;height:48px}.timer-time{font-size:var(--font-size-4xl)}}.edit-entry-modal{background-color:var(--bg-primary);border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:90vh;animation:slideIn var(--transition-fast);overflow-y:auto}.modal-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.modal-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal-body{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;display:flex}.modal-footer{justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-color);display:flex}.entry-item{border-bottom:1px solid var(--border-color);transition:background-color var(--transition-fast)}.entry-item:last-child{border-bottom:none}.entry-item:hover{background-color:var(--bg-secondary)}.entry-main{padding:var(--spacing-md) var(--spacing-lg);align-items:center;gap:var(--spacing-md);display:flex}.entry-info{flex:1;min-width:0}.entry-description{font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--spacing-xs);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.entry-meta{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.entry-project{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-items:center;gap:4px;display:inline-flex}.entry-tag{padding:2px var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);align-items:center;display:inline-flex}.entry-billable{color:var(--color-success);align-items:center;display:inline-flex}.entry-time{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.entry-time-range{font-size:var(--font-size-sm);color:var(--text-tertiary)}.entry-duration{font-family:var(--font-mono);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.entry-actions{align-items:center;gap:var(--spacing-xs);opacity:0;transition:opacity var(--transition-fast);display:flex}.entry-item:hover .entry-actions{opacity:1}.entry-action-btn{width:32px;height:32px;color:var(--text-tertiary);border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.entry-action-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.entry-action-btn.delete:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.modal-overlay{z-index:var(--z-modal-backdrop);animation:fadeIn var(--transition-fast);background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-modal{background-color:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);width:90%;max-width:400px;animation:slideIn var(--transition-fast)}.confirm-modal h4{margin-bottom:var(--spacing-sm)}.confirm-modal p{margin-bottom:var(--spacing-lg)}.confirm-actions{justify-content:flex-end;gap:var(--spacing-sm);display:flex}@media (max-width:640px){.entry-main{flex-wrap:wrap}.entry-info{order:1;width:100%}.entry-time{gap:var(--spacing-sm);flex-direction:row;order:2}.entry-actions{opacity:1;order:3}}.entry-list{gap:var(--spacing-lg);margin-top:var(--spacing-lg);flex-direction:column;display:flex}.entry-list-empty{text-align:center;padding:var(--spacing-2xl);background-color:var(--bg-primary);border-radius:var(--radius-lg);color:var(--text-secondary)}.entry-group{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.entry-group-header{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.entry-group-date{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.entry-group-total{font-weight:var(--font-weight-medium);color:var(--text-secondary);font-size:var(--font-size-sm)}.entry-group-list{flex-direction:column;display:flex}.timer-page{max-width:900px;margin:0 auto}.project-modal{background-color:var(--bg-primary);border-radius:var(--radius-lg);width:90%;max-width:450px;max-height:90vh;animation:slideIn var(--transition-fast);overflow-y:auto}.color-picker{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.color-option{border-radius:var(--radius-full);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);border:2px solid #0000;justify-content:center;align-items:center;display:flex}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--text-primary);box-shadow:var(--shadow-md)}.checkbox-label{align-items:center;gap:var(--spacing-sm);cursor:pointer;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.projects-page{max-width:1000px;margin:0 auto}.page-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.page-header-info h2{margin-bottom:var(--spacing-xs)}.empty-state{padding:var(--spacing-2xl);background-color:var(--bg-primary);border-radius:var(--radius-lg);text-align:center;justify-content:center;align-items:center;gap:var(--spacing-md);flex-direction:column;display:flex}.empty-state h3{color:var(--text-primary);margin:0}.empty-state p{color:var(--text-tertiary);margin:0}.projects-list{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.project-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);overflow:hidden}.project-card:hover{box-shadow:var(--shadow-md)}.project-card.archived{opacity:.7}.project-card-header{padding:var(--spacing-md);align-items:flex-start;gap:var(--spacing-md);display:flex}.project-color-bar{border-radius:var(--radius-full);flex-shrink:0;width:4px;height:40px}.project-info{flex:1;min-width:0}.project-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-client{font-size:var(--font-size-sm);color:var(--text-tertiary)}.project-actions{gap:var(--spacing-xs);opacity:0;transition:opacity var(--transition-fast);display:flex}.project-card:hover .project-actions{opacity:1}.action-btn{width:32px;height:32px;color:var(--text-tertiary);border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.action-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.action-btn.delete:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.project-stats{padding:var(--spacing-md);border-top:1px solid var(--border-color);background-color:var(--bg-secondary);gap:var(--spacing-lg);display:flex}.stat{flex-direction:column;display:flex}.archived-section{margin-top:var(--spacing-2xl)}.archived-section h3{margin-bottom:var(--spacing-md);color:var(--text-secondary)}@media (max-width:640px){.page-header{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.project-actions{opacity:1}}.tag-modal{background-color:var(--bg-primary);border-radius:var(--radius-lg);width:90%;max-width:400px;max-height:90vh;animation:slideIn var(--transition-fast);overflow-y:auto}.tags-page{max-width:800px;margin:0 auto}.tags-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.tag-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);overflow:hidden}.tag-card:hover{box-shadow:var(--shadow-md)}.tag-card-content{padding:var(--spacing-md) var(--spacing-lg);align-items:center;gap:var(--spacing-md);display:flex}.tag-color{border-radius:var(--radius-full);flex-shrink:0;width:16px;height:16px}.tag-info{flex:1;min-width:0}.tag-name{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:2px}.tag-stats{font-size:var(--font-size-sm);color:var(--text-tertiary);align-items:center;gap:var(--spacing-xs);display:flex}.separator{color:var(--border-color)}.tag-actions{gap:var(--spacing-xs);opacity:0;transition:opacity var(--transition-fast);display:flex}.tag-card:hover .tag-actions{opacity:1}@media (max-width:640px){.tag-actions{opacity:1}}.pie-chart-container{gap:var(--spacing-lg);align-items:center;display:flex}.pie-chart-svg{flex-shrink:0;width:180px;height:180px}.pie-chart-svg svg{width:100%;height:100%}.pie-chart-legend{gap:var(--spacing-sm);flex-direction:column;flex:1;display:flex}.legend-item{align-items:center;gap:var(--spacing-sm);display:flex}.legend-color{border-radius:var(--radius-sm);flex-shrink:0;width:12px;height:12px}.legend-info{flex-direction:column;display:flex}.legend-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.legend-value{font-size:var(--font-size-xs);color:var(--text-tertiary)}.pie-chart-empty{text-align:center;color:var(--text-tertiary);padding:var(--spacing-2xl)}@media (max-width:500px){.pie-chart-container{flex-direction:column}.pie-chart-svg{width:150px;height:150px}}.bar-chart-container{width:100%;overflow-x:auto}.bar-chart{align-items:flex-end;gap:var(--spacing-sm);min-height:200px;padding-bottom:var(--spacing-md);display:flex}.bar-item{align-items:center;gap:var(--spacing-xs);flex-direction:column;flex:1;min-width:40px;max-width:60px;display:flex}.bar-wrapper{align-items:flex-end;width:100%;height:180px;display:flex}.bar{background-color:var(--color-primary);border-radius:var(--radius-sm) var(--radius-sm) 0 0;width:100%;min-height:4px;transition:all var(--transition-fast);padding-top:var(--spacing-xs);justify-content:center;align-items:flex-start;display:flex}.bar:hover{background-color:var(--color-primary-hover)}.bar-value{font-size:var(--font-size-xs);color:var(--text-inverse);font-weight:var(--font-weight-medium);white-space:nowrap}.bar-label{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;text-align:center}.bar-chart-empty{text-align:center;color:var(--text-tertiary);padding:var(--spacing-2xl)}.reports-page{max-width:1200px;margin:0 auto}.header-actions{gap:var(--spacing-sm);display:flex}.date-range-selector{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap;display:flex}.range-buttons{background-color:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;overflow:hidden}.range-btn{padding:var(--spacing-sm) var(--spacing-md);color:var(--text-secondary);font-weight:var(--font-weight-medium);border-right:1px solid var(--border-color);background:0 0}.range-btn:last-child{border-right:none}.range-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.range-btn.active{background-color:var(--color-primary);color:var(--text-inverse)}.custom-date-inputs{align-items:center;gap:var(--spacing-sm);display:flex}.custom-date-inputs input{width:auto}.custom-date-inputs span{color:var(--text-tertiary)}.filters-panel{margin-bottom:var(--spacing-lg);padding:var(--spacing-lg);gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.filter-group label:first-child{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm);color:var(--text-primary);display:block}.filter-options{gap:var(--spacing-xs);flex-direction:column;display:flex}.filter-checkbox,.filter-radio{align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary);cursor:pointer;display:flex}.filter-checkbox input,.filter-radio input{width:auto;margin:0}.color-dot{border-radius:var(--radius-full);width:10px;height:10px}.summary-cards{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.summary-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);gap:var(--spacing-xs);flex-direction:column;display:flex}.summary-label{font-size:var(--font-size-sm);color:var(--text-tertiary)}.summary-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.charts-container{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));display:grid}.chart-card{min-height:350px}.chart-card .card-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}@media (max-width:768px){.page-header{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.header-actions{flex-wrap:wrap;width:100%}.date-range-selector{flex-direction:column;align-items:flex-start}.range-buttons{width:100%}.range-btn{text-align:center;flex:1}.charts-container{grid-template-columns:1fr}}.calendar-page{height:calc(100vh - var(--header-height) - var(--spacing-lg) * 2);flex-direction:column;display:flex}.calendar-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.calendar-nav{align-items:center;gap:var(--spacing-xs);display:flex}.calendar-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.calendar-container{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;flex:1;display:flex;overflow:hidden}.calendar-days-header{border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary);display:flex}.calendar-days-header .time-gutter{flex-shrink:0;width:60px}.day-header{padding:var(--spacing-sm);text-align:center;border-left:1px solid var(--border-color);flex:1}.day-header.today{background-color:var(--color-primary-light)}.day-name{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;display:block}.day-number{width:28px;height:28px;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:var(--spacing-xs) 0;justify-content:center;align-items:center;display:inline-flex}.day-number.today{background-color:var(--color-primary);color:#fff;border-radius:var(--radius-full)}.day-total{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:var(--font-weight-medium);display:block}.calendar-grid{flex:1;display:flex;position:relative;overflow-y:auto}.time-gutter{background-color:var(--bg-primary);z-index:1;flex-shrink:0;width:60px;position:sticky;left:0}.time-label{height:60px;padding:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--text-tertiary);text-align:right;padding-right:var(--spacing-sm)}.day-column{border-left:1px solid var(--border-color);flex:1;position:relative}.day-column.today{background-color:var(--color-primary-light)}.hour-cell{border-bottom:1px solid var(--border-color);cursor:pointer;height:60px;transition:background-color var(--transition-fast)}.hour-cell:hover{background-color:var(--color-primary-light)}.hour-cell:last-child{border-bottom:none}.calendar-entry{border-radius:var(--radius-sm);padding:var(--spacing-xs);cursor:pointer;color:#fff;font-size:var(--font-size-xs);transition:all var(--transition-fast);z-index:1;position:absolute;left:2px;right:2px;overflow:hidden}.calendar-entry:hover{opacity:.9;transform:translate(2px)}.entry-time{font-weight:var(--font-weight-medium);opacity:.9;display:block}.entry-title{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.week-summary{justify-content:flex-end;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--bg-primary);border-top:1px solid var(--border-color);border-radius:0 0 var(--radius-lg) var(--radius-lg);color:var(--text-secondary);display:flex}.week-summary strong{color:var(--text-primary);font-size:var(--font-size-lg)}@media (max-width:768px){.calendar-header{flex-direction:column;align-items:flex-start}.calendar-title{order:-1;width:100%}.day-header{padding:var(--spacing-xs)}.day-number{width:24px;height:24px;font-size:var(--font-size-sm)}.time-gutter{width:45px}.time-label{font-size:10px}}.dashboard-page{max-width:1200px;margin:0 auto}.stats-grid{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);align-items:center;gap:var(--spacing-md);box-shadow:var(--shadow-sm);display:flex}.stat-icon{border-radius:var(--radius-lg);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-icon.today{background-color:var(--color-primary-light);color:var(--color-primary)}.stat-icon.week{background-color:var(--color-success-light);color:var(--color-success)}.stat-icon.projects{background-color:var(--color-warning-light);color:var(--color-warning)}.stat-icon.entries{color:#9333ea;background-color:#f3e8ff}[data-theme=dark] .stat-icon.entries{color:#d8b4fe;background-color:#581c87}.stat-content{flex-direction:column;display:flex}.stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.stat-label{font-size:var(--font-size-sm);color:var(--text-tertiary)}.dashboard-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));display:grid}.dashboard-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.dashboard-card .card-header{justify-content:space-between;align-items:center;display:flex}.dashboard-card .card-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.active-timer-card{background:linear-gradient(135deg, var(--color-success) 0%, #059669 100%);grid-column:1/-1}.active-timer-card .card-header h3{color:#fff}.active-timer-info{align-items:center;gap:var(--spacing-md);display:flex}.timer-pulse{border-radius:var(--radius-full);background-color:#fff;width:12px;height:12px;animation:2s ease-in-out infinite pulse}.timer-details{flex:1;justify-content:space-between;align-items:center;display:flex}.timer-description{color:#fff;font-weight:var(--font-weight-medium);margin:0}.active-timer-card .btn-primary{color:var(--color-success);background-color:#fff}.active-timer-card .btn-primary:hover{background-color:#ffffffe6}.project-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.project-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;display:flex}.project-color{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px}.project-name{font-size:var(--font-size-sm);color:var(--text-primary);flex:1}.project-time{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.recent-entries-list{flex-direction:column;display:flex}.recent-entry{padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.recent-entry:last-child{border-bottom:none}.entry-left{align-items:center;gap:var(--spacing-sm);flex:1;min-width:0;display:flex}.entry-color{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.entry-info{flex-direction:column;min-width:0;display:flex}.entry-description{font-size:var(--font-size-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.entry-date{font-size:var(--font-size-xs);color:var(--text-tertiary)}.entry-duration{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);flex-shrink:0}.quick-actions{gap:var(--spacing-sm);grid-template-columns:repeat(2,1fr);display:grid}.quick-action-btn{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--bg-secondary);border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast);flex-direction:column;display:flex}.quick-action-btn:hover{background-color:var(--bg-hover);color:var(--color-primary)}.quick-action-btn span{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.empty-message{text-align:center;color:var(--text-tertiary);padding:var(--spacing-lg)}@media (max-width:768px){.dashboard-grid{grid-template-columns:1fr}.timer-details{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}}:root{--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#dbeafe;--color-success:#10b981;--color-success-hover:#059669;--color-success-light:#d1fae5;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-warning-light:#fef3c7;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-danger-light:#fee2e2;--bg-primary:#fff;--bg-secondary:#f9fafb;--bg-tertiary:#f3f4f6;--bg-hover:#e5e7eb;--text-primary:#111827;--text-secondary:#4b5563;--text-tertiary:#9ca3af;--text-inverse:#fff;--border-color:#e5e7eb;--border-color-dark:#d1d5db;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono", Monaco, "Courier New", monospace;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:30px;--font-size-4xl:36px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--sidebar-width:240px;--sidebar-collapsed-width:64px;--header-height:64px;--timer-bar-height:80px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--z-dropdown:100;--z-modal-backdrop:200;--z-modal:300;--z-tooltip:400;--z-notification:500}[data-theme=dark]{--color-primary:#60a5fa;--color-primary-hover:#3b82f6;--color-primary-light:#1e3a5f;--color-success:#34d399;--color-success-hover:#10b981;--color-success-light:#064e3b;--color-warning:#fbbf24;--color-warning-hover:#f59e0b;--color-warning-light:#78350f;--color-danger:#f87171;--color-danger-hover:#ef4444;--color-danger-light:#7f1d1d;--bg-primary:#111827;--bg-secondary:#1f2937;--bg-tertiary:#374151;--bg-hover:#4b5563;--text-primary:#f9fafb;--text-secondary:#d1d5db;--text-tertiary:#9ca3af;--text-inverse:#111827;--border-color:#374151;--border-color-dark:#4b5563;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006, 0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -2px #0000004d;--shadow-xl:0 20px 25px -5px #0006, 0 10px 10px -5px #0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-secondary);min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-primary)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-md)}h6{font-size:var(--font-size-sm)}p{color:var(--text-secondary)}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-hover)}input,textarea,select{font-family:inherit;font-size:var(--font-size-md);color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}input:disabled,textarea:disabled,select:disabled{background-color:var(--bg-tertiary);cursor:not-allowed;opacity:.7}button{font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-fast);justify-content:center;align-items:center;gap:var(--spacing-sm);border:none;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.5}.btn{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.btn-primary{background-color:var(--color-primary);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--bg-hover)}.btn-success{background-color:var(--color-success);color:var(--text-inverse)}.btn-success:hover:not(:disabled){background-color:var(--color-success-hover)}.btn-danger{background-color:var(--color-danger);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover)}.btn-ghost{color:var(--text-secondary);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-lg)}.btn-icon{padding:var(--spacing-sm);width:40px;height:40px}.btn-icon.btn-sm{width:32px;height:32px}.btn-icon.btn-lg{width:48px;height:48px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color-dark);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-lg{font-size:var(--font-size-lg)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color)}.card-body{padding:var(--spacing-lg)}.badge{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);background-color:var(--bg-tertiary);color:var(--text-secondary);align-items:center;display:inline-flex}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-spin{animation:1s linear infinite spin}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-fadeIn{animation:fadeIn var(--transition-normal)}.animate-slideIn{animation:slideIn var(--transition-normal)}.loading-screen{justify-content:center;align-items:center;gap:var(--spacing-md);min-height:100vh;color:var(--text-secondary);flex-direction:column;display:flex}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--color-primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}
