@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--color-bg-primary:#f5f6f8;--color-bg-secondary:#fff;--color-bg-card:#fff;--color-bg-card-hover:#fbfbfc;--color-bg-input:#fff;--color-brand:#35509e;--color-brand-light:#4d69bd;--color-brand-dark:#253a75;--color-brand-glow:#35509e24;--color-brand-tint:#eef1f9;--color-accent-green:#16794f;--color-accent-amber:#96660f;--color-accent-red:#b23a3a;--color-accent-purple:#6b4fa0;--color-text-primary:#1c2030;--color-text-secondary:#62687d;--color-text-muted:#9299ab;--color-text-inverse:#fff;--color-border:#e4e6ec;--color-border-strong:#cdd1dc;--color-border-focus:#35509e73;--shadow-sm:0 1px 2px #1418260f;--shadow-md:0 4px 12px #14182614;--shadow-lg:0 12px 28px #1418261f;--shadow-brand:0 4px 12px #14182614;--glass-bg:#fff;--glass-border:#e4e6ec;--glass-backdrop:none;--tint-green-bg:#16794f1a;--tint-amber-bg:#96660f1a;--tint-red-bg:#b23a3a14;--tint-red-bg-hover:#b23a3a24;--tint-red-border:#b23a3a40;--tint-purple-bg:#6b4fa01a;--tint-gray-bg:#eef0f3;--surface-subtle:#fafafb;--surface-hover:#fafbfd;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:11px;--font-size-sm:13px;--font-size-md:14.5px;--font-size-lg:17px;--font-size-xl:21px;--font-size-2xl:26px;--font-size-3xl:32px;--transition-fast:.15s ease;--transition-md:.22s ease;--transition-slow:.35s ease;--sidebar-width:236px;--sidebar-collapsed:64px;--topbar-height:60px;--z-sidebar:100;--z-header:90;--z-overlay:150;--z-modal:200;--z-tooltip:300}:root[data-theme=dark]{--color-bg-primary:#14161c;--color-bg-secondary:#1c1f27;--color-bg-card:#1c1f27;--color-bg-card-hover:#22252e;--color-bg-input:#1a1d24;--color-brand:#6d8bf5;--color-brand-light:#8ba3f8;--color-brand-dark:#5570d1;--color-brand-glow:#6d8bf52e;--color-brand-tint:#1e2740;--color-accent-green:#3ecf8e;--color-accent-amber:#eab34d;--color-accent-red:#ef6461;--color-accent-purple:#a78bfa;--color-text-primary:#e7e9ee;--color-text-secondary:#9aa0b4;--color-text-muted:#656b7e;--color-text-inverse:#0e1116;--color-border:#262a35;--color-border-strong:#363b48;--color-border-focus:#6d8bf580;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 14px #00000059;--shadow-lg:0 14px 32px #00000073;--shadow-brand:0 4px 14px #00000059;--glass-bg:#1c1f27;--glass-border:#262a35;--glass-backdrop:none;--tint-green-bg:#3ecf8e26;--tint-amber-bg:#eab34d26;--tint-red-bg:#ef646124;--tint-red-bg-hover:#ef646138;--tint-red-border:#ef64614d;--tint-purple-bg:#a78bfa26;--tint-gray-bg:#262a35;--surface-subtle:#1a1d24;--surface-hover:#20232c}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background-color:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-md);min-height:100vh;line-height:1.55;overflow-x:hidden}#root{min-height:100vh;position:relative}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;color:var(--color-text-primary);font-weight:700;line-height:1.25}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)}p{color:var(--color-text-secondary)}a{color:var(--color-brand);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-brand-light)}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-md), border-color var(--transition-md)}.card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:9px var(--spacing-lg);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);white-space:nowrap;font-weight:600;font-family:var(--font-family);letter-spacing:.01em;border:1px solid #0000;line-height:1.3;display:inline-flex}.btn svg{flex-shrink:0}.btn-primary{background:var(--color-brand);color:var(--color-text-inverse);border-color:var(--color-brand)}.btn-primary:hover{background:var(--color-brand-dark);border-color:var(--color-brand-dark)}.btn-primary:active{background:var(--color-brand-dark)}.btn-secondary{background:var(--color-bg-card);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn-secondary:hover{background:var(--color-brand-tint);border-color:var(--color-brand);color:var(--color-brand)}.btn-danger{background:var(--tint-red-bg);color:var(--color-accent-red);border-color:var(--tint-red-border)}.btn-danger:hover{background:var(--tint-red-bg-hover);border-color:var(--color-accent-red)}.btn-sm{font-size:var(--font-size-xs);padding:6px 12px}.btn-lg{font-size:var(--font-size-md);padding:12px 26px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.form-group{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);letter-spacing:.01em;font-weight:600}.form-label .required{color:var(--color-accent-red);margin-left:2px}.form-input,.form-select,.form-textarea{background:var(--color-bg-input);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-primary);font-family:var(--font-family);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:9px 12px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-brand);box-shadow:0 0 0 3px var(--color-brand-glow);outline:none}.form-input::placeholder{color:var(--color-text-muted)}.form-select option{background:var(--color-bg-secondary)}.form-textarea{resize:vertical;min-height:80px}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);letter-spacing:.02em;align-items:center;padding:2px 10px;font-weight:600;display:inline-flex}.badge-green{background:var(--tint-green-bg);color:var(--color-accent-green)}.badge-amber{background:var(--tint-amber-bg);color:var(--color-accent-amber)}.badge-red{background:var(--tint-red-bg);color:var(--color-accent-red)}.badge-blue{background:var(--color-brand-tint);color:var(--color-brand)}.badge-purple{background:var(--tint-purple-bg);color:var(--color-accent-purple)}.badge-gray{background:var(--tint-gray-bg);color:var(--color-text-secondary)}.table-container{border-radius:var(--radius-md);border:1px solid var(--color-border);-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%}thead tr{background:var(--color-brand);border-bottom:1px solid var(--color-brand)}th{font-size:var(--font-size-xs);color:var(--color-text-inverse);text-align:left;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;padding:11px 16px;font-weight:700}td{font-size:var(--font-size-sm);color:var(--color-text-primary);border-bottom:1px solid var(--color-border);padding:13px 16px}tbody tr{transition:background var(--transition-fast)}tbody tr:hover{background:var(--surface-hover);cursor:pointer}tbody tr:last-child td{border-bottom:none}.page{padding:var(--spacing-xl);width:100%;max-width:1440px}.page-header{margin-bottom:var(--spacing-xl);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.page-title{font-size:var(--font-size-2xl);color:var(--color-text-primary);font-weight:800}.stat-grid{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--transition-md), border-color var(--transition-md), transform var(--transition-md);position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--color-brand);opacity:0;height:3px;transition:opacity var(--transition-md);position:absolute;top:0;left:0;right:0}.stat-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card:hover:before{opacity:1}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-sm);font-weight:700}.stat-value{font-size:var(--font-size-2xl);color:var(--color-text-primary);letter-spacing:-.02em;font-weight:800}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-brand);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in-up{animation:.3s forwards fadeInUp}.animate-fade-in{animation:.25s forwards fadeIn}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-bg-secondary);border-right:1px solid var(--color-border);height:100vh;transition:width var(--transition-md);z-index:var(--z-sidebar);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-brand{height:var(--topbar-height);padding:0 var(--spacing-md);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar-brand-name{align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-md);color:var(--color-text-primary);white-space:nowrap;font-weight:800;display:flex;overflow:hidden}.sidebar-toggle{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:6px;display:flex}.sidebar-toggle:hover{background:var(--color-brand-tint);color:var(--color-brand)}.sidebar-nav{padding:var(--spacing-sm) 0;flex:1}.sidebar-link{align-items:center;gap:var(--spacing-sm);padding:11px var(--spacing-md);color:var(--color-text-secondary);font-weight:500;font-size:var(--font-size-sm);transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;border-left:3px solid #0000;text-decoration:none;display:flex;overflow:hidden}.sidebar-link svg{flex-shrink:0}.sidebar-link:hover{background:var(--color-brand-tint);color:var(--color-brand)}.sidebar-link.active{color:var(--color-brand);background:var(--color-brand-tint);border-left-color:var(--color-brand);font-weight:600}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--color-border);flex-shrink:0}.app-main{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow-x:hidden}.topbar{height:var(--topbar-height);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);z-index:var(--z-header);padding:0 var(--spacing-lg);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-shrink:0;display:flex;position:sticky;top:0}.topbar-menu-btn{color:var(--color-text-primary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:none}.topbar-menu-btn:hover{background:var(--color-brand-tint)}.topbar-actions{align-items:center;gap:var(--spacing-md);margin-left:auto;display:flex}.branch-pill{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-secondary);align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:flex}.theme-toggle-btn{border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);width:32px;height:32px;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.theme-toggle-btn:hover{background:var(--color-brand-tint);border-color:var(--color-brand);color:var(--color-brand)}.user-avatar{background:var(--color-brand);width:32px;height:32px;color:var(--color-text-inverse);font-weight:700;font-size:var(--font-size-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-overlay{z-index:var(--z-overlay);background:#0f121e73;display:none;position:fixed;inset:0}@media (width<=1024px){.stat-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.topbar-menu-btn{display:inline-flex}.sidebar{box-shadow:var(--shadow-lg);width:260px;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{width:260px}.sidebar-overlay.visible{display:block}}@media (width<=768px){.page{padding:var(--spacing-md)}.stat-grid{grid-template-columns:repeat(2,1fr)}h1{font-size:var(--font-size-xl)}.branch-pill span{display:none}}@media (width<=480px){.stat-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.topbar{padding:0 var(--spacing-md)}}.login-page{min-height:100vh;padding:var(--spacing-lg);background:var(--color-bg-primary);justify-content:center;align-items:center;display:flex;position:relative}.login-theme-toggle{top:var(--spacing-lg);right:var(--spacing-lg);position:absolute}.login-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:40px 36px 32px}.login-brand-row{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);display:flex}.login-logo{border-radius:var(--radius-md);background:var(--color-brand);width:44px;height:44px;color:var(--color-text-inverse);flex-shrink:0;justify-content:center;align-items:center;display:flex}.login-brand-name{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:0;font-weight:800}.login-brand-sub{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0;font-weight:500}.login-heading{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin:0 0 4px;font-weight:800}.login-subheading{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 26px}.login-form{flex-direction:column;gap:4px;display:flex}.login-input-wrapper{align-items:center;display:flex;position:relative}.login-input-icon{color:var(--color-text-muted);pointer-events:none;display:flex;position:absolute;left:12px}.login-input{padding-left:38px}.login-eye-btn{cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:6px;display:flex;position:absolute;right:8px}.login-eye-btn:hover{color:var(--color-text-secondary)}.login-error{background:var(--tint-red-bg);border:1px solid var(--tint-red-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-accent-red);align-items:center;gap:8px;margin-top:4px;padding:10px 14px;display:flex}.login-submit-btn{width:100%;font-size:var(--font-size-md);margin-top:8px;padding:13px}.login-footer{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-lg)}@media (width<=480px){.login-card{padding:32px 22px 26px}}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@media print{.sidebar,.topbar,.sidebar-overlay,.theme-toggle-btn{display:none!important}.app-shell,.app-main,.page{height:auto!important;display:block!important;overflow:visible!important}body{color:#000!important;background:#fff!important;margin:0!important;padding:0!important}.print-layout{background:#fff;width:100%;max-width:100%;margin:0;padding:0}.no-print{display:none!important}}.print-toolbar{align-items:center;gap:10px;max-width:800px;margin:0 auto;padding:16px 40px 0;display:flex}.print-layout{color:#000;background:#fff;max-width:800px;margin:0 auto;padding:40px;font-family:Inter,sans-serif}.format-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;margin-bottom:10px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.format-badge.format-product{color:#1d4ed8;background:#e6f0ff}.format-badge.format-service{color:#b45309;background:#fef3e2}.customer-info-wrapper{gap:40px;display:flex}.print-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.company-info h2{margin:0 0 5px;font-size:24px}.company-info p{color:#444;margin:2px 0;font-size:14px}.print-logo{max-width:150px;max-height:80px;margin-bottom:10px}.doc-meta{text-align:right}.doc-title{color:#333;letter-spacing:1px;margin:0 0 10px;font-size:28px;font-weight:800}.meta-table{border-collapse:collapse;width:100%}.meta-table td{text-align:left;padding:4px 8px;font-size:14px}.meta-table td:last-child{text-align:right}.print-divider{border:0;border-top:2px solid #eee;margin:20px 0}.customer-info{margin-bottom:30px}.customer-info h3{color:#666;text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px;font-size:16px}.customer-info p{margin:3px 0;font-size:14px}.print-items{margin-bottom:30px}.items-table{border-collapse:collapse;width:100%}.items-table th,.items-table td{text-align:left;border-bottom:1px solid #eee;padding:12px 10px;font-size:13px}.items-table th{color:#333;text-transform:uppercase;background:#f9f9f9;font-size:12px;font-weight:700}.print-totals-wrapper{justify-content:space-between;margin-bottom:40px;display:flex}.print-bank-details{width:45%}.print-bank-details h3{color:#666;text-transform:uppercase;margin:0 0 10px;font-size:14px}.print-bank-details p{margin:4px 0;font-size:13px}.print-totals{width:45%}.totals-table{border-collapse:collapse;width:100%}.totals-table td{text-align:right;padding:8px 10px;font-size:14px}.totals-table td:first-child{text-align:left;color:#666}.grand-total td{color:#000;border-top:2px solid #333;font-size:16px;font-weight:700}.balance-due td{color:#b23a3a;border-top:1px solid #eee;font-weight:700}.print-footer{justify-content:space-between;align-items:flex-end;margin-top:50px;display:flex}.print-notes{width:60%}.print-notes h4{color:#666;text-transform:uppercase;margin:0 0 8px;font-size:14px}.print-notes p{color:#444;margin:0;font-size:12px;line-height:1.5}.print-signature{text-align:center;width:35%}.print-signature p{color:#333;margin:0;font-size:14px}.signature-box{height:80px;margin:10px 0}
