@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--primary:#6366f1;--primary-hover:#4f46e5;--primary-light:var(--lightningcss-light,#6366f114)var(--lightningcss-dark,#6366f126);--secondary:#ec4899;--secondary-hover:#db2777;--bg-main:var(--lightningcss-light,#f8fafc)var(--lightningcss-dark,#0f172a);--bg-card:var(--lightningcss-light,#fffc)var(--lightningcss-dark,#1e293bb3);--bg-input:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1e293b);--text-main:var(--lightningcss-light,#0f172a)var(--lightningcss-dark,#f8fafc);--text-muted:var(--lightningcss-light,#64748b)var(--lightningcss-dark,#94a3b8);--text-inv:var(--lightningcss-light,#f8fafc)var(--lightningcss-dark,#0f172a);--border:var(--lightningcss-light,#00000014)var(--lightningcss-dark,#ffffff1a);--border-focus:#6366f180;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--glass-bg:var(--lightningcss-light,#ffffffbf)var(--lightningcss-dark,#1e293bb3);--glass-border:var(--lightningcss-light,#00000014)var(--lightningcss-dark,#ffffff1a);--glass-shadow:var(--lightningcss-light,0 8px 32px 0 #1f26870f)var(--lightningcss-dark,0 8px 32px 0 #0000005e);--glass-blur:blur(12px);--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-heading:"Outfit", sans-serif;--transition:all .3s cubic-bezier(.4, 0, .2, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-main);background-image:var(--lightningcss-light,radial-gradient(at 0% 0%, #6366f10f 0px, transparent 50%))var(--lightningcss-dark,radial-gradient(at 0% 0%, #6366f126 0px, transparent 50%)), var(--lightningcss-light,radial-gradient(at 100% 0%, #ec48990a 0px, transparent 50%))var(--lightningcss-dark,radial-gradient(at 100% 0%, #ec48991a 0px, transparent 50%));color:var(--text-main);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5;transition:background-color .3s,color .3s;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text-main);font-weight:600}a{color:inherit;transition:var(--transition);text-decoration:none}button{cursor:pointer;font-family:var(--font-sans);transition:var(--transition);border:none;outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input,textarea,select{font-family:var(--font-sans);background:var(--bg-input);border:1px solid var(--border);color:var(--text-main);transition:var(--transition);border-radius:8px;padding:.75rem 1rem}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);outline:none}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px;padding:2rem;transition:background-color .3s,border-color .3s,box-shadow .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.5s forwards fadeIn}@keyframes pulse-ring{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2.2)}}@keyframes pulse-core{0%,to{opacity:1}50%{opacity:.5}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{grid-template-columns:280px 1fr;gap:1.5rem;min-height:100vh;padding:1.5rem;display:grid}.side-nav{flex-direction:column;gap:2rem;height:calc(100vh - 3rem);padding:2rem 1.5rem;display:flex;position:sticky;top:1.5rem}.logo{font-family:var(--font-heading);color:var(--text-main);align-items:center;gap:.75rem;padding-left:.5rem;font-size:1.5rem;font-weight:700;display:flex}.nav-links{flex-direction:column;gap:.5rem;display:flex}.nav-item{color:var(--text-muted);transition:var(--transition);border-radius:12px;align-items:center;gap:1rem;padding:.875rem 1rem;font-weight:500;display:flex}.nav-item:hover{background:var(--primary-light);color:var(--primary)}.nav-item.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px #6366f14d}.nav-theme-toggle{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;margin-top:auto;padding-top:1.5rem;display:flex}.nav-theme-toggle span{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding-left:.5rem;font-size:.75rem;font-weight:600}.theme-btns{background:var(--bg-input);border:1px solid var(--border);border-radius:10px;gap:.25rem;padding:.25rem;display:flex}.theme-btn{color:var(--text-muted);transition:var(--transition);background:0 0;border-radius:8px;flex:1;justify-content:center;align-items:center;padding:.5rem;display:flex}.theme-btn:hover{color:var(--text-main)}.theme-btn.active{background:var(--bg-card);color:var(--primary);box-shadow:0 2px 8px #0000001a}.main-content{width:100%;max-width:1200px;margin:0 auto;padding:1rem}.page-header{margin-bottom:2rem}.page-header h1{margin-bottom:.25rem;font-size:2.25rem;font-weight:800}@media (width<=1024px){.app-container{grid-template-rows:auto 1fr;grid-template-columns:1fr}.side-nav{flex-direction:row;justify-content:space-between;align-items:center;height:auto;padding:1rem;position:static}.nav-links{flex-direction:row}.nav-item span,.nav-theme-toggle{display:none}}.dashboard-page{flex-direction:column;gap:2.5rem;display:flex}.stats-row{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.stat-card{transition:var(--transition);border-radius:16px;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.stat-card:hover{box-shadow:var(--glass-shadow), 0 8px 24px #6366f114;transform:translateY(-2px)}.stat-card-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.stat-card-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.stat-card-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem;font-weight:600}.stat-card-value{color:var(--text-main);font-size:1.25rem;font-weight:700;font-family:var(--font-heading);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (width<=900px){.stats-row{grid-template-columns:repeat(2,1fr)}}@media (width<=500px){.stats-row{grid-template-columns:1fr}}.timer-badge{align-items:center;gap:.5rem;display:inline-flex}.pulse-dot{background:var(--danger);border-radius:50%;width:8px;height:8px;animation:1.5s ease-in-out infinite pulse-core;position:relative}.pulse-dot:before{content:"";background:var(--danger);border-radius:50%;animation:1.5s ease-out infinite pulse-ring;position:absolute;inset:0}.timer-card{justify-content:center;align-items:center;padding:3rem;display:flex}.active-timer-content{text-align:center;flex-direction:column;align-items:center;gap:2rem;width:100%;display:flex}.timer-badge-wrapper{background:var(--primary-light);color:var(--primary);border-radius:99px;margin-bottom:.5rem;padding:.25rem .75rem;font-size:.875rem;font-weight:600}.timer-client{color:var(--text-muted);justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.timer-display{font-family:var(--font-heading);color:var(--text-main);letter-spacing:-.02em;text-shadow:var(--lightningcss-light,none)var(--lightningcss-dark,0 0 40px #6366f133);font-size:5rem;font-weight:800}.timer-setup{flex-direction:column;gap:2rem;width:100%;display:flex}.inputs-group{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.input-field{flex-direction:column;gap:.5rem;display:flex}.input-field label{color:var(--text-muted);font-size:.875rem;font-weight:500}.input-with-icon{position:relative}.input-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.input-with-icon input{width:100%;padding-left:3rem}.start-btn,.stop-btn{border-radius:12px;justify-content:center;align-items:center;gap:.75rem;width:100%;max-width:300px;margin:0 auto;padding:1rem 2rem;font-size:1.125rem;font-weight:600;display:flex}.start-btn{background:var(--primary);color:#fff;box-shadow:0 4px 20px #6366f140}.start-btn:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 6px 24px #6366f159}.stop-btn{background:var(--danger);color:#fff;box-shadow:0 4px 20px #ef444440}.stop-btn:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 6px 24px #ef444459}.recent-entries{flex-direction:column;gap:1rem;display:flex}.section-header{justify-content:space-between;align-items:center;display:flex}.section-header h3{font-size:1.25rem;font-weight:700}.entries-list{flex-direction:column;gap:1rem;display:flex}.entry-item{border-radius:16px;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.entry-item h4{color:var(--text-main);margin-bottom:.25rem;font-size:1.125rem}.entry-main{flex:1}.entry-details{text-align:right;flex-direction:column;gap:.5rem;display:flex}.entry-time{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.entry-duration{color:var(--primary);font-size:1.125rem;font-weight:700}.no-entries{text-align:center;color:var(--text-muted);border:2px dashed var(--border);border-radius:24px;padding:3rem}.validation-error-banner{color:var(--danger);background:#ef44441a;border:1px solid #ef444433;border-radius:12px;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem;font-weight:500;display:flex}@media (width<=768px){.inputs-group{grid-template-columns:1fr}.timer-display{font-size:3.5rem}}.timesheet-page{flex-direction:column;gap:2rem;display:flex}.timesheet-page .page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:0;display:flex}.header-actions{align-items:center;gap:1.5rem;display:flex}.add-btn{background:var(--primary);color:#fff;border-radius:12px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;display:flex}.add-btn:hover{background:var(--primary-hover)}.total-card{flex-direction:column;align-items:flex-end;min-width:180px;padding:.75rem 1.5rem;display:flex}.total-card .label{color:var(--text-muted);font-size:.875rem;font-weight:500}.total-card .value{color:var(--primary);font-size:1.75rem;font-weight:700;font-family:var(--font-heading)}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.manual-modal{flex-direction:column;gap:1.5rem;width:100%;max-width:500px;padding:2.5rem;display:flex}.manual-modal h3{font-size:1.5rem;font-weight:700}.form-grid{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.form-grid .full{grid-column:span 2}.form-actions{justify-content:flex-end;gap:1rem;margin-top:1rem;display:flex}.cancel-btn{color:var(--text-muted);background:0 0;border-radius:10px;padding:.75rem 1.25rem;font-weight:500}.cancel-btn:hover{background:var(--border);color:var(--text-main)}.save-btn{background:var(--primary);color:#fff;border-radius:10px;padding:.75rem 1.5rem;font-weight:600}.save-btn:hover{background:var(--primary-hover)}.table-container{padding:0;overflow:hidden}.table-wrapper{overflow-x:auto}.entries-table{border-collapse:collapse;text-align:left;width:100%}.entries-table th{color:var(--text-muted);border-bottom:1px solid var(--border);background:#ffffff03;padding:1.25rem 1.5rem;font-size:.875rem;font-weight:600}.entries-table td{border-bottom:1px solid var(--border);padding:1.25rem 1.5rem;font-size:.9375rem}.cell-content{align-items:center;gap:.75rem;display:flex}.cell-content.bold{color:var(--text-main);font-weight:600}.cell-content.muted{color:var(--text-muted);font-size:.875rem}.duration-cell{color:var(--primary);font-weight:700}.actions-cell{text-align:right}.action-buttons{justify-content:flex-end;gap:.5rem;display:flex}.edit-btn,.delete-btn{color:var(--text-muted);background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:.5rem;display:inline-flex}.edit-btn:hover{color:var(--primary);background:#6366f11a}.delete-btn:hover{color:var(--danger);background:#ef44441a}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:4rem;display:flex}@media (width<=768px){.entries-table th:nth-child(4),.entries-table td:nth-child(4),.entries-table th:nth-child(5),.entries-table td:nth-child(5){display:none}}.invoices-page{flex-direction:column;gap:2rem;display:flex}.selection-card{flex-direction:column;gap:2rem;padding:3rem;display:flex}.card-info{text-align:center;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.card-info h3{font-size:1.5rem}.client-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;display:grid}.client-btn{text-align:left;border:1px solid var(--border);background:var(--bg-card);align-items:center;gap:1rem;width:100%;padding:1.5rem;display:flex}.client-btn.active{border-color:var(--primary);background:var(--primary-light)}.client-name{flex:1;font-size:1.125rem;font-weight:600}.client-stats{color:var(--text-muted);font-size:.875rem}.empty-clients{text-align:center;color:var(--text-muted);border:2px dashed var(--border);border-radius:24px;flex-direction:column;grid-column:1/-1;align-items:center;gap:1rem;padding:3rem;display:flex}.selection-actions{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;padding-top:2rem;display:flex}.summary-info{gap:3rem;display:flex}.stat{flex-direction:column;display:flex}.stat .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8125rem}.stat .value{color:var(--text-main);font-size:1.5rem;font-weight:700}.preview-btn,.print-btn{background:var(--primary);color:#fff;border-radius:12px;align-items:center;gap:.75rem;padding:.875rem 1.5rem;font-weight:600;display:flex}.preview-btn:hover:not(:disabled){background:var(--primary-hover)}.preview-btn:disabled{opacity:.45;cursor:not-allowed}.date-filter{border-radius:16px;flex-direction:column;gap:1rem;padding:1.25rem 1.5rem;display:flex}.date-filter-header{align-items:center;gap:.625rem;font-size:.9375rem;font-weight:600;display:flex}.date-filter-header em{color:var(--text-muted);font-size:.8125rem;font-style:normal;font-weight:400}.date-filter-inputs{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.date-filter-inputs .input-field{flex:1;min-width:140px}.clear-dates-btn{border:1px solid var(--border);color:var(--text-muted);background:0 0;border-radius:8px;align-self:flex-end;height:fit-content;margin-bottom:0;padding:.625rem 1rem;font-size:.875rem;font-weight:500}.clear-dates-btn:hover{background:var(--border);color:var(--text-main)}.invoice-preview-container{flex-direction:column;gap:1.5rem;display:flex}.invoice-paper{color:#1a1a1a;background:#fff;border-radius:4px;flex-direction:column;gap:3rem;width:210mm;min-height:297mm;margin:0 auto;padding:4rem;display:flex;box-shadow:0 0 40px #0003}.invoice-paper h2,.invoice-paper td,.invoice-paper th,.invoice-paper span{color:#1a1a1a}.invoice-letterhead{object-fit:contain;width:100%;height:auto;max-height:100px;margin-bottom:1rem}.invoice-letterhead-badge{color:#666;background:#f3f4f6;border:1px dashed #d1d5db;border-radius:6px;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.8125rem;display:flex}.client-details-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.client-details-grid .full{grid-column:span 2}.client-detail-line{color:#555;margin:0;font-size:.9rem;line-height:1.6}.invoice-header{justify-content:space-between;align-items:flex-start;display:flex}.bill-to .label,.invoice-meta .label{color:#666;letter-spacing:.1em;margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:block}.bill-to h2{color:#1a1a1a;font-size:2rem;font-weight:700}.invoice-meta{text-align:right;gap:3rem;display:flex}.meta-item{flex-direction:column;display:flex}.meta-item span:not(.label){font-weight:600}.invoice-table{border-collapse:collapse;width:100%}.invoice-table th{text-align:left;color:#666;border-bottom:2px solid #1a1a1a;padding:1rem;font-size:.8125rem;font-weight:700}.invoice-table td{color:#333;border-bottom:1px solid #eee;padding:1rem;font-size:.9375rem}.invoice-table tfoot td{border:none;padding-top:2rem}.total-label{text-align:right;color:#1a1a1a;font-size:1.125rem;font-weight:800}.total-value{color:#000;font-size:1.5rem;font-weight:800}.invoice-footer{color:#666;border-top:1px solid #eee;justify-content:space-between;align-items:center;margin-top:auto;padding-top:3rem;font-size:.875rem;display:flex}.footer-details{gap:2rem;display:flex}.preview-toolbar{justify-content:space-between;align-items:center;width:100%;max-width:210mm;margin:0 auto;display:flex}.back-btn{color:var(--text-main);border:1px solid var(--border);background:0 0;border-radius:8px;padding:.5rem 1rem;font-weight:500}.back-btn:hover{background:var(--border)}@media print{.no-print,nav,.side-nav,.preview-toolbar{display:none!important}.app-container{padding:0!important;display:block!important}.main-content{max-width:none!important;margin:0!important;padding:0!important}.invoice-paper{box-shadow:none!important;width:100%!important;margin:0!important;padding:2cm!important}body{color:#000!important;background:#fff!important}}@media (width<=1024px){.invoice-paper{width:100%;padding:2rem}}.clients-page{flex-direction:column;gap:1.5rem;display:flex}.clients-list{flex-direction:column;gap:.75rem;display:flex}.client-card{align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;display:flex}.client-card-icon{background:#6366f11f;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.client-card-info{flex:1;min-width:0}.client-card-name{margin:0 0 .35rem;font-size:1rem;font-weight:600}.client-card-details{color:var(--text-muted);flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.8125rem;display:flex}.client-card-details span{align-items:center;gap:.3rem;display:flex}.client-card-actions{flex-shrink:0;gap:.5rem;display:flex}.settings-page{flex-direction:column;gap:2rem;display:flex}.settings-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.settings-grid .settings-card:last-child{grid-column:span 2}.settings-card{flex-direction:column;gap:1.5rem;display:flex}.card-header{align-items:center;gap:1rem;display:flex}.card-header h3{font-size:1.25rem;font-weight:700}.settings-content{flex-direction:column;gap:1.5rem;display:flex}.hint{color:var(--text-muted);margin-top:.25rem;font-size:.8125rem}.upload-zone{border:2px dashed var(--border);transition:var(--transition);border-radius:12px;margin-top:.5rem;overflow:hidden}.upload-zone:hover{border-color:var(--primary);background:var(--primary-light)}.upload-placeholder{cursor:pointer;color:var(--text-muted);flex-direction:column;align-items:center;gap:.75rem;padding:3rem 2rem;display:flex}.preview-container{background:var(--lightningcss-light,#f1f5f9)var(--lightningcss-dark,#1e293b);justify-content:center;align-items:center;min-height:150px;display:flex;position:relative}.letterhead-preview{object-fit:contain;width:100%;height:auto;max-height:200px}.preview-overlay{opacity:0;transition:var(--transition);background:#00000080;justify-content:center;align-items:center;gap:1rem;display:flex;position:absolute;inset:0}.preview-container:hover .preview-overlay{opacity:1}.change-btn{color:#000;background:#fff;border-radius:8px;padding:.5rem 1rem;font-weight:600}.change-btn:hover{background:#f1f5f9}.delete-btn-brand{background:var(--danger);color:#fff;border-radius:8px;justify-content:center;align-items:center;padding:.5rem;display:inline-flex}.delete-btn-brand:hover{background:#dc2626}.save-toast{background:var(--success);color:#fff;z-index:1100;border-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.5rem;animation:.3s cubic-bezier(.16,1,.3,1) slideIn;display:flex;position:fixed;bottom:2rem;right:2rem;box-shadow:0 10px 25px #10b9814d}@keyframes slideIn{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.settings-grid{grid-template-columns:1fr}.settings-grid .settings-card:last-child{grid-column:span 1}}
