:root{--nav-bg:#2e3440;--nav-text:#d8dee9;--nav-active:#88c0d0;--border-color:#e5e5e5;--text-primary:#2e3440;--text-secondary:#6b7280;--text-muted:#9ca3af;--bg-page:#f9fafb;--bg-card:#fff;--accent:#5e81ac;--accent-hover:#4c6e91;--bg-secondary:#f3f4f6;--bg-dark:#1f2937}*{box-sizing:border-box}body{background-color:var(--bg-page);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.875rem;line-height:1.5;margin:0}.top-nav{background-color:var(--nav-bg);border-bottom:1px solid hsla(0,0%,100%,.1);position:-webkit-sticky;position:sticky;top:0;z-index:1000}.top-nav-brand{font-size:1.0625rem;font-weight:500;color:var(--nav-text);text-decoration:none;padding:.75rem 1.25rem;display:flex;align-items:center;letter-spacing:.02em}.top-nav-brand:hover{color:#fff}.top-nav-menu{display:flex;list-style:none;padding:0;margin:0 0 0 3rem}.top-nav-item{position:relative}.top-nav-link{display:block;padding:1.25rem 1rem .75rem;color:var(--nav-text);text-decoration:none;font-weight:400;font-size:.9375rem;transition:color .15s ease;border-bottom:2px solid transparent;margin-bottom:-1px}.top-nav-link:hover{color:#fff}.top-nav-link.active{color:#fff;border-bottom-color:var(--nav-active)}.nav-dropdown{position:relative}.dropdown-toggle{background:none;padding:1.25rem 1rem .75rem;color:var(--nav-text);text-decoration:none;font-weight:400;font-size:.8125rem;transition:color .15s ease;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;display:block;font-family:inherit}.dropdown-toggle:after{display:none!important}.dropdown-toggle:hover{color:#fff}.dropdown-toggle.active{color:#fff;border-bottom-color:var(--nav-active)}.dropdown-menu{position:absolute;top:100%;left:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;min-width:160px;list-style:none;margin:.5rem 0 0;padding:.5rem 0;z-index:1000;box-shadow:0 2px 8px rgba(0,0,0,.15)}.dropdown-item{display:block;padding:.75rem 1rem;color:var(--text-primary);text-decoration:none;font-weight:400;font-size:.8125rem;transition:background-color .15s ease,color .15s ease;border-left:3px solid transparent}.dropdown-item:hover{background-color:var(--bg-page);color:var(--text-primary)}.dropdown-item.active{background-color:transparent;border-left-color:transparent;color:var(--text-primary)}.main-content{padding:2rem 2rem 1.5rem;min-height:calc(100vh - 44px);max-width:1280px;margin:0 auto}.page-header{margin-top:.5rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.page-header h1{font-size:1.25rem;font-weight:500;color:var(--text-primary);margin:0 0 .25rem}.page-header p{color:var(--text-secondary);margin:0;font-size:.8125rem}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;box-shadow:none}.card-header{background:transparent;border-bottom:1px solid var(--border-color);padding:.75rem 1rem;font-size:.8125rem;font-weight:500;color:var(--text-primary)}.card-header:last-child{border-bottom:none}.card-body{padding:1rem}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;transition:border-color .15s ease}.stat-card:hover{border-color:var(--border-color);opacity:.9}.stat-card .stat-label{color:var(--text-secondary);font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;font-weight:500;margin-bottom:.5rem}.stat-card .stat-value{font-size:1.5rem;font-weight:500;color:var(--text-primary);line-height:1.2;margin-bottom:.25rem}.stat-card .stat-subtitle{color:var(--text-muted);font-size:.75rem}.table{font-size:.8125rem;margin-bottom:0;border-collapse:collapse}.table>:not(caption)>*>*{border-bottom-color:var(--border-color)}.table>thead{border-bottom:1px solid var(--border-color)}.table>tbody{border-top:none!important}.table th{font-weight:500;font-size:.8125rem;color:var(--text-secondary);border-bottom:1px solid var(--border-color);padding:.625rem .75rem;background:transparent}.table th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.table th.sortable:hover{color:var(--text-primary)}.sort-header-inner{gap:3px}.sort-header-inner,.sort-indicator{display:inline-flex;align-items:center}.sort-indicator{opacity:.3;transition:opacity .15s ease}.sort-indicator svg{width:12px;height:12px;stroke:currentColor;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.sort-indicator.active{opacity:.8}.table th.sortable:hover .sort-indicator{opacity:.6}.table th.sortable:hover .sort-indicator.active{opacity:1}.table td{padding:.625rem .75rem;vertical-align:middle;border-bottom:1px solid var(--border-color);opacity:.6;color:var(--text-primary)}.table tbody tr:last-child td{border-bottom:none}.table-hover tbody tr:hover{background-color:var(--bg-page)}.badge{display:inline-block!important;font-size:.6875rem;padding:.25rem .5rem;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;min-width:3.5rem;text-align:center!important}.badge,.btn{font-weight:500}.btn{font-size:.8125rem;padding:.5rem 1rem;border-radius:4px;transition:all .15s ease}.btn-primary{background-color:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-hover);border-color:var(--accent-hover)}.btn-outline-secondary{color:var(--text-secondary);border-color:var(--border-color);background:transparent}.btn-outline-secondary:hover{background-color:var(--bg-page)}.btn-outline-dark,.btn-outline-secondary:hover{border-color:var(--border-color);color:var(--text-primary)}.btn-outline-dark{background:transparent}.btn-outline-dark:hover{background-color:var(--bg-page);border-color:var(--border-color);color:var(--text-primary)}.btn-sm{font-size:.8125rem;padding:.5rem .75rem}.form-label{font-weight:500;margin-bottom:.375rem}.form-control,.form-label,.form-select{font-size:.8125rem;color:var(--text-primary)}.form-control,.form-select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-card)}.form-control:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(94,129,172,.15);outline:none}.form-control::placeholder{color:var(--text-muted)}.form-text{font-size:.75rem;color:var(--text-muted)}.text-muted{color:var(--text-muted)!important}.text-secondary{color:var(--text-secondary)!important}.fw-semibold{font-weight:500!important}.fw-bold{font-weight:600!important}.invoice-preview{background-color:var(--bg-card);padding:1.5rem}.invoice-preview,.line-item-row{border:1px solid var(--border-color);border-radius:4px}.line-item-row{background-color:#f9fafb;padding:.75rem;margin-bottom:.5rem}.summary-card{position:-webkit-sticky;position:sticky;top:1.5rem}.quick-action-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.8125rem;font-weight:400;text-decoration:none;transition:all .15s ease;width:100%;text-align:left}.quick-action-btn:hover{background-color:var(--bg-page);border-color:var(--border-color);color:var(--text-primary)}.quick-action-btn svg{color:var(--text-muted)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.empty-state svg{margin-bottom:.75rem;color:var(--text-muted)}.empty-state p{margin:0;font-size:.8125rem}.loading-spinner{display:flex;justify-content:center;align-items:center;padding:3rem}.modal-content{border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.modal-header{border-bottom:1px solid var(--border-color);padding:.75rem 1rem}.modal-title{font-size:.9375rem;font-weight:500}.modal-body{padding:1rem;font-size:.8125rem}.modal-footer{border-top:1px solid var(--border-color);padding:.75rem 1rem}.summary-table td{padding:.5rem 0;font-size:.875rem}.required-asterisk{color:#ef4444;margin-left:2px}.custom-select-container{position:relative;width:100%}.custom-select-container.disabled{opacity:.6;pointer-events:none}.custom-select-trigger{display:flex;justify-content:space-between;align-items:center;cursor:pointer;text-align:left;background:var(--bg-card);font-size:.8125rem;padding:.5rem .75rem}.custom-select-trigger:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(94,129,172,.15)}.custom-select-arrow{color:var(--text-muted);transition:transform .2s}.custom-select-trigger.open .custom-select-arrow{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);margin-top:4px;z-index:1000;max-height:200px;overflow-y:auto}.custom-select-custom-input{padding:.5rem;border-bottom:1px solid var(--border-color)}.custom-select-custom-input input{font-size:.8125rem}.custom-select-option{padding:.5rem .75rem;cursor:pointer;font-size:.8125rem;display:flex;align-items:center;gap:.5rem}.custom-select-option:hover{background:var(--bg-secondary)}.custom-select-option.selected{background:#e5e7eb}.custom-select-check{color:var(--accent);font-size:.75rem}.datepicker-container{position:relative;width:100%}.datepicker-trigger{display:flex;align-items:center;cursor:pointer;text-align:left;background:var(--bg-card)}.datepicker-sm .datepicker-trigger{font-size:.75rem;padding:.375rem .75rem}.datepicker-trigger:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(94,129,172,.15)}.datepicker-dropdown{position:absolute;top:100%;left:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);margin-top:4px;z-index:1000;padding:.75rem;min-width:280px}.datepicker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.datepicker-month-year{font-weight:500;font-size:.875rem}.datepicker-nav{background:none;border:none;padding:.25rem;cursor:pointer;color:var(--text-secondary);border-radius:4px}.datepicker-nav:hover{background:var(--bg-secondary)}.datepicker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px;margin-bottom:.5rem}.datepicker-weekday{text-align:center;font-size:.6875rem;font-weight:500;color:var(--text-muted);padding:.25rem}.datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.datepicker-day{background:none;border:none;padding:.375rem;cursor:pointer;border-radius:4px;font-size:.8125rem;color:var(--text-primary);text-align:center}.datepicker-day:hover:not(:disabled){background:var(--bg-secondary)}.datepicker-day.other-month{color:var(--text-muted)}.datepicker-day.today{font-weight:600;color:var(--accent)}.datepicker-day.selected{background:var(--accent);color:#fff}.datepicker-day.selected:hover{background:var(--accent-hover)}@media (max-width:768px){.main-content{padding:1rem}.top-nav-menu{margin-left:0}.top-nav-link{padding:.75rem;font-size:.75rem}}input[type=file].form-control{padding:.375rem .75rem;line-height:1.5}input[type=file].form-control::-webkit-file-upload-button{margin-right:.75rem;padding:.375rem .75rem;border-radius:4px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:.8125rem;cursor:pointer;-webkit-transition:all .15s ease;transition:all .15s ease}input[type=file].form-control::file-selector-button{margin-right:.75rem;padding:.375rem .75rem;border-radius:4px;background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);font-size:.8125rem;cursor:pointer;transition:all .15s ease}input[type=file].form-control::-webkit-file-upload-button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}input[type=file].form-control::file-selector-button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.client-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);margin-top:4px;z-index:1000;max-height:200px;overflow-y:auto}.client-suggestion-item{padding:.5rem .75rem;cursor:pointer;font-size:.875rem;border-bottom:1px solid var(--border-color)}.client-suggestion-item:last-child{border-bottom:none}.client-suggestion-item:hover{background:var(--bg-secondary)}.file-input-wrapper{position:relative}.file-input-label{display:flex;align-items:center;gap:0;padding:.375rem 0;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-card);cursor:pointer;transition:all .15s ease}.file-input-label:hover{border-color:var(--accent);background:#f9f9f9}.file-button{display:inline-block;padding:.375rem .75rem;background:var(--bg-secondary);border-radius:3px 0 0 3px;font-size:.875rem;font-weight:500;color:var(--text-primary);-webkit-user-select:none;-moz-user-select:none;user-select:none}.file-divider{display:inline-block;width:1px;height:1.5rem;background:var(--border-color);margin:0 .5rem}.file-text{display:inline-block;padding:.375rem .75rem;border-radius:0 3px 3px 0;font-size:.875rem;color:var(--text-muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;flex:1 1}@media print{.no-print,.top-nav{display:none!important}.main-content{padding:0!important;max-width:none}.card{border:1px solid #e5e5e5!important;box-shadow:none!important}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background-color:var(--bg-page)}.auth-card{background-color:var(--bg-card);border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:2rem;width:100%;max-width:400px}.auth-header{text-align:center;margin-bottom:1.5rem}.auth-header h1{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.auth-header p{color:var(--text-secondary);margin:0;font-size:.875rem}.auth-form .form-label{font-weight:500;font-size:.8125rem;color:var(--text-primary)}.auth-form .form-control{font-size:.875rem;padding:.625rem .75rem}.auth-form .form-text{font-size:.75rem;margin-top:.375rem}.auth-divider{display:flex;align-items:center;margin:1.25rem 0}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background-color:var(--border-color)}.auth-divider span{padding:0 .75rem;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.google-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;padding:.625rem 1rem}.google-icon{flex-shrink:0}.auth-footer{text-align:center;margin-top:1.5rem;font-size:.875rem;color:var(--text-secondary)}.auth-footer a{color:var(--accent);text-decoration:none;font-weight:500}.auth-footer a:hover{text-decoration:underline}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-secondary)}.user-menu{position:relative;margin-left:auto;margin-right:3rem}.user-menu-trigger{background:none;border:none;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;color:var(--nav-text);cursor:pointer;border-radius:4px;transition:background-color .15s ease}.user-menu-trigger:hover{background-color:hsla(0,0%,100%,.1)}.user-avatar{width:32px;height:32px;border-radius:50%;background-color:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:500;text-transform:uppercase}.user-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.user-menu-dropdown{position:absolute;right:0;top:100%;background-color:var(--bg-card);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);min-width:200px;padding:.5rem 0;z-index:1000;margin-top:.5rem}.user-menu-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.user-menu-name{font-weight:500;font-size:.875rem;color:var(--text-primary);margin:0}.user-menu-email{font-size:.75rem;color:var(--text-secondary);margin:0}.user-menu-item{display:block;width:100%;padding:.625rem 1rem;background:none;border:none;text-align:left;font-size:.8125rem;color:var(--text-primary);cursor:pointer;transition:background-color .15s ease;text-decoration:none}.user-menu-item:hover{background-color:var(--bg-page)}.user-menu-item.logout{color:#dc3545}.file-upload-minimal{display:flex;align-items:center;gap:10px;padding:6px 0;transition:all .15s ease}.file-upload-minimal-active{background:rgba(94,129,172,.06);border-radius:6px;padding:6px 10px}.file-upload-minimal-disabled{opacity:.5}.file-upload-minimal-btn{font-size:.8125rem;font-weight:500;color:var(--accent);background:none;border:1px solid var(--border-color);border-radius:4px;padding:.3rem .75rem;cursor:pointer;transition:all .15s ease}.file-upload-minimal-btn:hover{background:var(--bg-page);border-color:var(--accent)}.file-upload-minimal-btn:disabled{cursor:not-allowed;opacity:.5}.file-upload-minimal-hint{font-size:.75rem;color:var(--text-muted)}.bulk-import-dropzone{border:1.5px dashed var(--border-color);border-radius:8px;padding:24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.bulk-import-dropzone:hover{border-color:var(--accent);background:rgba(94,129,172,.04)}.bulk-import-dropzone-active{border-color:var(--accent);background:rgba(94,129,172,.08)}.file-upload-attached{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card)}.file-upload-attached-icon{flex-shrink:0;color:var(--text-muted);display:flex;align-items:center}.file-upload-attached-details{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px}.file-upload-attached-name{font-size:.8125rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-upload-attached-size{font-size:.7rem;color:var(--text-muted)}.file-upload-parsing{font-size:.8125rem;white-space:nowrap}.file-upload-parsing,.file-upload-remove{flex-shrink:0;color:var(--text-muted);display:flex;align-items:center}.file-upload-remove{justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;cursor:pointer;transition:all .15s ease}.file-upload-remove:hover{background:#fee2e2;color:#ef4444}.file-upload-remove:disabled{opacity:.4;cursor:not-allowed}@keyframes aiFieldFlash{0%{box-shadow:0 0 0 0 rgba(40,167,69,.4);border-color:#28a745}50%{box-shadow:0 0 0 3px rgba(40,167,69,.15);border-color:#28a745}to{box-shadow:0 0 0 0 rgba(40,167,69,0);border-color:var(--border-color)}}.ai-populated,.ai-populated-wrapper .custom-select-trigger,.ai-populated-wrapper .datepicker-trigger,.ai-populated-wrapper .form-control{animation:aiFieldFlash 1.5s ease-out}