@charset "UTF-8";:root{--primary: #2b4a75;--primary-dark: #152a4c;--primary-light: #3d6a99;--primary-ultra: #eef4fa;--accent: #2b4a75;--accent-dark: #152a4c;--accent-light: #3d6a99;--accent-ultra: #eef4fa;--star: #f59e0b;--star-bg: #fef3c7;--bg: #f2f0ec;--bg-alt: #eceae5;--surface: #ffffff;--surface-2: #faf9f7;--surface-3: #f5f4f0;--border: #e4e1d9;--border-light: #f0ede6;--text-main: #1a1917;--text-body: #3a3835;--text-muted: #6b6760;--text-light: #9e9b95;--text-placeholder: #b5b2ab;--success: #15803d;--success-bg: #dcfce7;--warning: #92400e;--warning-bg: #fef3c7;--danger: #dc2626;--danger-bg: #fee2e2;--info: #1d4ed8;--info-bg: #dbeafe;--header-h: 56px;--bottom-nav-h: 68px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--sidebar-w: 260px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-2xl: 24px;--r-full: 9999px;--shadow-xs: 0 1px 3px rgba(0,0,0,.06);--shadow-sm: 0 2px 8px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.1);--shadow-lg: 0 8px 32px rgba(0,0,0,.12);--shadow-xl: 0 16px 48px rgba(0,0,0,.16);--ease-fast: .12s ease;--ease-std: .22s ease;--ease-slow: .36s ease;--font: "Noto Sans", "Noto Sans Devanagari", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;height:100%;background:#0f1e3a;overscroll-behavior-y:none}body{font-family:var(--font);font-size:15px;line-height:1.5;color:var(--text-body);background:var(--bg);overflow-x:hidden;overflow-y:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}app-root{display:block;height:100%}a{text-decoration:none;color:inherit}button{font-family:var(--font);cursor:pointer}img{max-width:100%;display:block}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideUpModal{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-ring{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.8}}@keyframes pageContentIn{0%{opacity:0}to{opacity:1}}.page-content{animation:pageContentIn .24s ease both}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);padding:var(--sp-5);margin-bottom:var(--sp-4);animation:fadeInUp .3s ease both}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:var(--r-md);border:none;cursor:pointer;font-size:14px;font-weight:700;font-family:var(--font);transition:all var(--ease-fast);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.96)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px #e65c004d}.btn-primary:hover,.btn-primary:active{background:var(--primary-dark)}.btn-secondary{background:var(--surface-3);color:var(--text-body);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-alt)}.btn-ghost{background:transparent;color:var(--primary)}.btn-ghost:hover{background:var(--primary-ultra)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-success{background:var(--success);color:#fff}.btn-sm{padding:7px 14px;font-size:12px;border-radius:var(--r-sm)}.btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--r-lg)}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-4)}.form-group label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.input-field,input.input-field,select.input-field,textarea.input-field{padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--r-md);font-size:15px;font-family:var(--font);color:var(--text-main);background:var(--surface);transition:border-color var(--ease-fast),box-shadow var(--ease-fast);-webkit-appearance:none;appearance:none;width:100%}.input-field::placeholder{color:var(--text-placeholder)}.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #e65c001f}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--r-full);font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase}.badge-open{background:var(--success-bg);color:var(--success)}.badge-closed{background:var(--bg-alt);color:var(--text-muted)}.badge-draft{background:var(--warning-bg);color:var(--warning)}.badge-sent{background:var(--info-bg);color:var(--info)}.badge-paid{background:var(--success-bg);color:var(--success)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.amount{font-weight:800;font-variant-numeric:tabular-nums}.amount-positive{color:var(--success)}.amount-negative{color:var(--danger)}.amount-large{font-size:26px}.skeleton{background:linear-gradient(90deg,var(--bg-alt) 25%,var(--border-light) 50%,var(--bg-alt) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;padding:48px 24px;color:var(--text-muted);text-align:center;gap:var(--sp-3)}.empty-state .empty-icon{font-size:52px;margin-bottom:var(--sp-2)}.empty-state h3{font-size:16px;font-weight:700;color:var(--text-body)}.empty-state p{font-size:14px;max-width:280px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:10000;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);touch-action:none}@media (max-width: 768px){.modal-overlay{padding-bottom:calc(var(--bottom-nav-h) + var(--safe-bottom))}}@media (min-width: 640px){.modal-overlay{align-items:center;padding-top:var(--sp-4);padding-left:max(var(--sp-4),env(safe-area-inset-left,0px));padding-right:max(var(--sp-4),env(safe-area-inset-right,0px))}}@media (min-width: 769px){.modal-overlay{padding-bottom:var(--sp-4)}}.modal-sheet{box-sizing:border-box;background:var(--surface);width:100%;min-width:0;max-width:100%;max-height:min(90vh,100vh - var(--header-h) - var(--safe-top) - var(--bottom-nav-h) - var(--safe-bottom) - 16px);border-radius:var(--r-2xl) var(--r-2xl) 0 0;display:flex;flex-direction:column;overflow:hidden;touch-action:auto;padding-top:var(--sp-4);padding-right:max(var(--sp-4),env(safe-area-inset-right,0px));padding-left:max(var(--sp-4),env(safe-area-inset-left,0px));padding-bottom:0;animation:slideUpModal .28s cubic-bezier(.22,1,.36,1) both}@media (min-width: 640px){.modal-sheet{max-width:540px;border-radius:var(--r-2xl);max-height:85vh;animation:fadeIn .2s ease}}.modal-sheet .sheet-handle{width:40px;height:4px;background:var(--border);border-radius:var(--r-full);margin:0 auto var(--sp-4);flex-shrink:0}.modal-sheet .sheet-title{font-size:18px;font-weight:800;color:var(--text-main);margin-bottom:var(--sp-4);flex-shrink:0}.modal-sheet .sheet-body{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:var(--sp-4);scroll-padding-bottom:300px}.modal-sheet .sheet-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-3);flex-shrink:0;margin-top:0;padding-top:var(--sp-4);padding-bottom:max(var(--sp-4),env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-light);background:var(--surface);box-shadow:0 -6px 24px #0000000f}.modal-sheet .sheet-actions .btn{width:100%;flex:none;min-height:48px}@media (min-width: 420px){.modal-sheet .sheet-actions{flex-direction:row}.modal-sheet .sheet-actions .btn{flex:1;width:auto;min-height:0}}html.keyboard-open .modal-sheet .sheet-body{padding-bottom:48vh}.modal-sheet .form-group{min-width:0;width:100%}.modal-sheet .input-field,.modal-sheet input:not([type=checkbox]):not([type=radio]),.modal-sheet select,.modal-sheet textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.msg-error{background:var(--danger-bg);color:var(--danger);padding:10px 14px;border-radius:var(--r-md);font-size:13px;font-weight:600;border-left:3px solid var(--danger);animation:fadeInUp .2s ease}.msg-success{background:var(--success-bg);color:var(--success);padding:10px 14px;border-radius:var(--r-md);font-size:13px;font-weight:600;border-left:3px solid var(--success)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.section-header h2{font-size:15px;font-weight:800;color:var(--text-main)}.section-header .see-all{font-size:13px;font-weight:700;color:var(--primary)}.divider{height:1px;background:var(--border-light);margin:var(--sp-4) 0}@media (min-width: 769px){.desktop-hidden{display:none!important}}@media (max-width: 768px){.mobile-hidden{display:none!important}}body.any-modal-open app-voice-button{display:none!important}body.reviews-open{overflow:hidden}.bill-sheet{width:100%;max-height:min(90vh,100vh - var(--header-h) - var(--safe-top) - var(--bottom-nav-h) - var(--safe-bottom) - 16px);background:var(--surface);border-radius:var(--r-2xl) var(--r-2xl) 0 0;display:flex;flex-direction:column;overflow:hidden;animation:slideUpModal .28s cubic-bezier(.22,1,.36,1) both}.bill-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px 11px;background:linear-gradient(135deg,#f4f7fc,#fff3e0);border-bottom:1.5px solid #fde2c8;flex-shrink:0}.bill-sheet-title{font-size:15px;font-weight:800;color:#2b4a75}.bill-sheet-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.bill-sheet-close{width:32px;height:32px;border-radius:50%;background:var(--surface-3);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.bill-sheet-close svg{width:18px;height:18px;stroke:var(--text-body)}.bill-sheet-close:active{background:var(--border)}.bill-sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:8px}.bill-sheet-footer{flex-shrink:0;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-light);background:var(--surface)}.bill-wa-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:#25d366;color:#fff;border:none;border-radius:14px;padding:14px 20px;font-size:15px;font-weight:700;font-family:var(--font);cursor:pointer;box-shadow:0 3px 12px #25d36659}.bill-wa-btn:disabled{opacity:.55;cursor:not-allowed}.bill-wa-btn:not(:disabled):active{transform:scale(.97)}.bm-section-label{padding:10px 16px 6px;font-size:10px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;background:var(--surface-3);border-bottom:1px solid var(--border-light)}.bm-section-pay{border-top:1.5px solid var(--border-light)}.bm-col-head{display:grid;grid-template-columns:44px 1fr 62px 72px;padding:5px 16px;background:var(--surface-3);border-bottom:1px solid var(--border-light);font-size:9px;font-weight:700;color:var(--text-muted);text-transform:uppercase}.bm-col-head-pay{grid-template-columns:44px 1fr 60px 72px}.bm-h-qty,.bm-h-amt{text-align:right}.bm-row{display:grid;grid-template-columns:44px 1fr 62px 72px;align-items:center;padding:9px 16px;font-size:13px;color:var(--text-body);border-bottom:1px solid var(--border-light)}.bm-pay-row{grid-template-columns:44px 1fr 60px 72px}.bm-date{font-size:11px;color:var(--text-muted);white-space:nowrap}.bm-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:6px}.bm-qty{font-size:11px;color:var(--text-muted);text-align:right;white-space:nowrap}.bm-ref{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;padding-right:4px}.bm-amt{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.bm-amt-pay{color:#15803d}.bm-subtotal{display:flex;justify-content:space-between;align-items:center;padding:9px 16px;background:var(--surface-3);font-size:12px;font-weight:600;color:var(--text-muted);border-bottom:1.5px solid var(--border-light)}.bm-subtotal strong{color:var(--text-main);font-variant-numeric:tabular-nums;font-size:13px}.bm-subtotal-pay strong{color:#15803d}.bm-no-pay{padding:12px 16px;text-align:center;font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border-light)}.bm-summary{margin:12px 16px 8px;background:var(--surface-3);border:1.5px solid #fde2c8;border-radius:12px;overflow:hidden}.bm-sum-row{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;font-size:14px;color:var(--text-body);border-bottom:1px solid var(--border-light)}.bm-sum-row:last-child{border-bottom:none}.bm-sum-row strong{font-variant-numeric:tabular-nums}.bm-sum-paid,.bm-sum-paid strong{color:#15803d}.bm-sum-due{background:#f4f7fc}.bm-sum-due strong{color:#dc2626;font-size:17px;font-weight:900}
