*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f0f2f5;--card:#fff;--primary:#2563eb;--primary-hover:#1d4ed8;--green:#16a34a;--green-light:#dcfce7;--green-dark:#15803d;--red:#dc2626;--red-light:#fee2e2;--red-dark:#b91c1c;--amber:#d97706;--amber-light:#fef3c7;--text:#111827;--text-muted:#6b7280;--border:#e5e7eb;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--radius:12px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}#root{min-height:100vh}button{cursor:pointer;border:none;font-family:inherit;transition:all .15s}input,textarea,select{outline:none;font-family:inherit;font-size:1rem}input:focus,textarea:focus,select:focus{box-shadow:0 0 0 3px #2563eb1a;border-color:var(--primary)!important}.app-header{border-bottom:1px solid var(--border);height:64px;box-shadow:var(--shadow);z-index:100;background:#fff;justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:sticky;top:0}.app-header h1{color:var(--primary);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.app-nav{gap:4px;display:flex}.nav-btn{color:var(--text-muted);background:0 0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:8px 16px;font-size:.95rem;font-weight:500}.nav-btn:hover{color:var(--text);background:0 0}.nav-btn.active{color:var(--primary);border-bottom-color:var(--primary);background:0 0;font-weight:600}.app-body{width:100%;max-width:1200px;margin:0 auto;padding:32px 24px}.tracker-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.tracker-header h2{color:var(--text);font-size:1.5rem;font-weight:700}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.project-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:24px;transition:box-shadow .2s;display:flex}.project-card:hover{box-shadow:var(--shadow-lg)}.project-card.running{border-color:var(--green);border-width:2px}.card-header{justify-content:space-between;align-items:flex-start;display:flex}.card-title{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.project-company{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}.project-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1.1rem;font-weight:600;overflow:hidden}.card-menu{flex-shrink:0;position:relative}.menu-btn{color:var(--text-muted);letter-spacing:1px;background:0 0;border-radius:6px;padding:4px 8px;font-size:1.25rem;line-height:1}.menu-btn:hover{background:var(--bg);color:var(--text)}.menu-dropdown{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:200;border-radius:8px;min-width:140px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.menu-item{text-align:left;width:100%;color:var(--text);background:0 0;border-radius:0;padding:10px 16px;font-size:.9rem;display:block}.menu-item:hover{background:var(--bg)}.menu-item:disabled{color:var(--text-muted);cursor:not-allowed}.menu-item:disabled:hover{background:0 0}.menu-item-danger{color:var(--red)}.menu-item-danger:hover{background:var(--red-light)}.menu-divider{background:var(--border);height:1px;margin:4px 0}.card-edit-form{flex-direction:column;gap:8px;display:flex}.card-edit-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.timer-section{flex-direction:column;align-items:center;gap:12px;display:flex}.timer-display{text-align:center}.timer-elapsed{font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--text);font-size:2.5rem;font-weight:700;line-height:1}.timer-elapsed.running{color:var(--green)}.timer-billed{color:var(--text-muted);margin-top:4px;font-size:.85rem;font-weight:500}.timer-billed span{color:var(--primary);font-weight:700}.timer-btn{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;font-size:1.5rem;display:flex;box-shadow:0 4px 12px #00000026}.timer-btn.start{background:var(--green);color:#fff}.timer-btn.start:hover{background:var(--green-dark);transform:scale(1.05)}.timer-btn.stop{background:var(--red);color:#fff}.timer-btn.stop:hover{background:var(--red-dark);transform:scale(1.05)}.session-desc-input{border:1px solid var(--border);text-align:center;background:var(--bg);border-radius:8px;width:100%;padding:8px 12px;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.last-session{border-top:1px solid var(--border);padding-top:12px}.last-session-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:.75rem;font-weight:600}.last-session-info{color:var(--text);flex-direction:column;gap:2px;font-size:.875rem;display:flex}.session-time{justify-content:space-between;align-items:center;display:flex}.session-duration{color:var(--primary);font-weight:600}.session-desc{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:.8125rem;font-style:italic;overflow:hidden}.session-desc-row{align-items:center;gap:6px;margin-top:4px;display:flex}.edit-desc-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.edit-desc-btn:hover{color:var(--primary)}.add-desc-btn{color:var(--primary);background:0 0;margin-top:2px;padding:2px 0;font-size:.8125rem;text-decoration:underline}.add-desc-btn:hover{color:var(--primary-hover)}.add-project-card{background:var(--card);border-radius:var(--radius);border:2px dashed var(--border);flex-direction:column;justify-content:center;align-items:center;gap:12px;min-width:0;min-height:200px;padding:24px;transition:border-color .2s;display:flex;overflow:hidden}.add-project-card:hover{border-color:var(--primary)}.add-project-form{gap:8px;width:100%;display:flex}.add-project-input{border:1px solid var(--border);border-radius:8px;flex:1;min-width:0;padding:10px 14px;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.add-project-submit{background:var(--primary);color:#fff;white-space:nowrap;border-radius:8px;padding:10px 18px;font-size:.95rem;font-weight:600}.add-project-submit:hover{background:var(--primary-hover)}.add-project-placeholder{color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;display:flex}.plus-icon{background:var(--bg);border:2px dashed var(--border);width:48px;height:48px;color:var(--text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;transition:all .2s;display:flex}.plus-icon:hover{border-color:var(--primary);color:var(--primary)}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:var(--radius);width:100%;max-width:480px;box-shadow:var(--shadow-lg);padding:28px}.modal h3{margin-bottom:4px;font-size:1.15rem;font-weight:700}.modal-session-info{color:var(--text-muted);margin-bottom:20px;font-size:.875rem}.modal-textarea{border:1px solid var(--border);resize:vertical;border-radius:8px;width:100%;min-height:100px;padding:12px;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 18px;font-size:.95rem;font-weight:500}.btn-secondary:hover{background:var(--border)}.btn-primary{background:var(--primary);color:#fff;border-radius:8px;padding:10px 18px;font-size:.95rem;font-weight:600}.btn-primary:hover{background:var(--primary-hover)}.report-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:24px;display:flex}.period-btn{color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:8px;padding:7px 14px;font-size:.9rem;font-weight:500}.period-btn:hover{color:var(--text);background:var(--card);border-color:var(--border)}.period-btn.active{color:var(--primary);background:#2563eb12;border-color:#2563eb33;font-weight:600}.report-filters{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.filter-divider{background:var(--border);flex-shrink:0;align-self:center;width:1px;height:28px;margin:0 4px}.filter-select{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;min-width:160px;padding:8px 12px;font-size:.9rem;transition:border-color .15s}.filter-select:hover,.filter-select:focus{border-color:var(--primary);outline:none}.report-project-company{color:var(--text-muted);margin-top:2px;font-size:.75rem}.date-range-inputs{align-items:center;gap:8px;display:flex}.date-input{border:1px solid var(--border);background:var(--card);border-radius:8px;padding:8px 12px;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.report-table{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden}.report-header-row{background:var(--bg);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);grid-template-columns:1fr 140px 110px 120px 50px;padding:12px 20px;font-size:.75rem;font-weight:600;display:grid}.report-project-row{border-bottom:1px solid var(--border)}.report-project-row:last-child{border-bottom:none}.report-project-summary{cursor:pointer;grid-template-columns:1fr 140px 110px 120px 50px;align-items:center;padding:16px 20px;transition:background .1s;display:grid}.report-project-summary:hover{background:var(--bg)}.sort-header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);cursor:pointer;white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:2px;padding:0;font-size:.75rem;font-weight:600;display:flex}.sort-header:hover{color:var(--text)}.sort-header.active{color:var(--primary)}.sort-arrow{font-size:.7rem}.report-date{color:var(--text-muted);font-size:.875rem}.report-project-name{font-size:.95rem;font-weight:600}.report-hours{color:var(--text);font-size:.95rem}.report-billed{color:var(--primary);font-size:.95rem;font-weight:700}.expand-btn{color:var(--text-muted);background:0 0;border-radius:6px;justify-self:center;padding:4px 8px;font-size:1rem}.expand-btn:hover{background:var(--bg);color:var(--text)}.report-entries{border-top:1px solid var(--border);background:#f9fafb}.report-project-subgroup{border-bottom:1px solid var(--border)}.report-project-subgroup:last-child{border-bottom:none}.report-project-subheader-row{background:#f4f6f9;grid-template-columns:1fr 180px 120px;align-items:center;padding:10px 28px;font-size:.875rem;display:grid}.report-subrow-name{color:var(--text);font-weight:600}.report-entry-row{border-top:1px solid var(--border);background:#f9fafb;grid-template-columns:1fr 120px 1fr;align-items:center;padding:7px 28px 7px 44px;font-size:.8rem;display:grid}.report-entry-timestamps{color:var(--text-muted);flex-direction:column;gap:2px;font-size:.8rem;display:flex}.report-entry-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-right:5px;font-size:.68rem;font-weight:700}.report-entry-duration{color:var(--text);font-weight:600}.report-entry{border-bottom:1px solid var(--border);grid-template-columns:160px 160px 1fr;align-items:start;gap:12px;padding:12px 28px;font-size:.875rem;display:grid}.report-entry:last-child{border-bottom:none}.entry-time{color:var(--text-muted)}.entry-duration{color:var(--text);font-weight:600}.entry-desc{color:var(--text)}.entry-desc-empty{color:var(--text-muted);font-style:italic}.report-empty{text-align:center;color:var(--text-muted);padding:60px 24px;font-size:1rem}.report-total-row{border-top:2px solid var(--border);color:var(--primary);background:#eff6ff;grid-template-columns:1fr 140px 110px 120px 50px;padding:14px 20px;font-size:.95rem;font-weight:700;display:grid}.archived-section{margin-top:40px}.archived-toggle{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-muted);cursor:pointer;justify-content:space-between;align-items:center;padding:10px 16px;font-size:.9rem;font-weight:600;display:flex}.archived-toggle:hover{border-color:var(--primary);color:var(--primary)}.archived-card{opacity:.75}.archived-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:4px;align-self:flex-start;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.error-msg{color:var(--red);padding:4px 0;font-size:.875rem}.loading{text-align:center;color:var(--text-muted);padding:40px}.reports-divider{border:none;border-top:1px solid var(--border);margin:36px 0}.dashboard{flex-direction:column;gap:32px;display:flex}.dashboard-stats{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;font-size:.75rem;font-weight:600}.stat-value{color:var(--primary);margin-bottom:4px;font-size:2rem;font-weight:700;line-height:1}.stat-sub{color:var(--text-muted);font-size:.8rem}.dashboard-section-title{color:var(--text);margin-bottom:16px;font-size:1rem;font-weight:700}.company-breakdown{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.company-row{border-bottom:1px solid var(--border);padding:16px 20px}.company-row:last-child{border-bottom:none}.company-row-header{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.company-row-name{color:var(--text);font-size:.95rem;font-weight:600}.company-row-none{color:var(--text-muted);font-style:italic;font-weight:400}.company-row-time{color:var(--text);align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex}.company-row-billed{color:var(--primary);font-size:.8rem;font-weight:500}.company-bar-track{background:var(--bg);border-radius:3px;height:6px;overflow:hidden}.company-bar-fill{background:var(--primary);border-radius:3px;height:100%;transition:width .4s}.multiselect{position:relative}.multiselect-btn{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-width:160px;padding:8px 12px;font-size:.9rem;transition:border-color .15s;display:flex}.multiselect-btn:hover{border-color:var(--primary)}.multiselect-arrow{color:var(--text-muted);font-size:.75rem}.multiselect-dropdown{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:200;border-radius:8px;min-width:180px;padding:4px 0;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.multiselect-clear{text-align:left;width:100%;color:var(--primary);border-bottom:1px solid var(--border);background:0 0;border-radius:0;margin-bottom:4px;padding:8px 14px;font-size:.8rem;font-weight:600;display:block}.multiselect-clear:hover{background:var(--bg)}.multiselect-option{color:var(--text);cursor:pointer;align-items:center;gap:10px;padding:8px 14px;font-size:.9rem;display:flex}.multiselect-option:hover{background:var(--bg)}.multiselect-option input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.company-group{margin-bottom:32px}.company-group-header{align-items:center;margin-bottom:12px;padding:0 4px;display:flex}.company-group-name{color:var(--text);font-size:1.05rem;font-weight:700}.company-billing-badge{color:var(--primary);background:#2563eb12;border:1px solid #2563eb33;border-radius:20px;padding:3px 10px;font-size:.78rem;font-weight:600}.settings-page{max-width:600px}.settings-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.settings-section-title{color:var(--text);margin-bottom:6px;font-size:1.1rem;font-weight:700}.settings-section-desc{color:var(--text-muted);margin-bottom:20px;font-size:.875rem}.settings-company-list{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.settings-empty{color:var(--text-muted);padding:8px 0;font-size:.9rem}.settings-company-row{background:var(--bg);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.settings-company-edit{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.settings-company-name{color:var(--text);flex:1;min-width:0;font-size:.95rem;font-weight:500}.settings-company-actions{flex-shrink:0;gap:6px;display:flex}.settings-add-form{gap:8px;display:flex}.settings-notif-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.settings-notif-label{color:var(--text);margin-bottom:4px;font-size:.95rem;font-weight:500}.settings-notif-status{color:var(--text-muted);font-size:.8rem}.settings-notif-status.warn{color:var(--red)}.settings-toggle{background:var(--border);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;width:44px;height:24px;padding:2px;transition:background .2s;position:relative}.settings-toggle.on{background:var(--primary)}.settings-toggle:disabled{opacity:.4;cursor:not-allowed}.settings-toggle-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;display:block;transform:translate(0);box-shadow:0 1px 3px #0003}.settings-toggle.on .settings-toggle-knob{transform:translate(20px)}
