@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/assets/fonts/dm-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/assets/fonts/dm-sans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Tamil;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/noto-sans-tamil-400.woff2) format("woff2");unicode-range:U+0964-0965,U+0B82-0BFA,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Tamil;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/noto-sans-tamil-500.woff2) format("woff2");unicode-range:U+0964-0965,U+0B82-0BFA,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Tamil;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/noto-sans-tamil-700.woff2) format("woff2");unicode-range:U+0964-0965,U+0B82-0BFA,U+200C-200D,U+25CC}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:14px 16px}.btn-secondary,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;border-radius:var(--r-button);font-family:inherit;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.btn-secondary:disabled,.btn-primary:disabled,[aria-disabled=true].btn-secondary,[aria-disabled=true].btn-primary{cursor:not-allowed;opacity:.5}.btn-secondary svg,.btn-primary svg{flex-shrink:0}.btn-primary{height:56px;padding:0 20px;border:0;background:var(--c-primary);color:#fff;font-size:16px;font-weight:700;letter-spacing:.3px}.btn-primary:hover:not(:disabled),.btn-primary:active:not(:disabled){background:var(--c-primary-pressed);color:#fff}.btn-secondary{height:44px;padding:0 16px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-body);font-size:14px;font-weight:700}.btn-secondary:hover:not(:disabled){background:var(--c-ground);color:var(--c-body)}.btn-block{display:flex;width:100%}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12.5px;font-weight:700;line-height:1.4;letter-spacing:0;color:var(--c-ink)}.field-hint{font-size:12.5px;line-height:1.55;color:var(--c-muted)}.field-error{font-size:12.5px;line-height:1.55;font-weight:500;color:var(--c-danger)}.field-box{display:flex;align-items:center;gap:10px;box-sizing:border-box;height:52px;padding:0 14px;background:var(--c-surface);border:1.5px solid var(--c-border);border-radius:var(--r-field);transition:border-color .15s,box-shadow .15s}.field-box:focus-within{border-color:var(--c-primary);border-radius:var(--r-field-focus);box-shadow:0 0 0 3px var(--c-focus-ring)}.field-box.is-invalid{border-color:var(--c-danger)}.field-box input,.field-box select,.field-box textarea{flex-grow:1;width:100%;min-width:0;border:0;outline:none;background:transparent;font-family:inherit;font-size:16px;font-weight:500;color:var(--c-ink)}.field-box input::placeholder,.field-box select::placeholder,.field-box textarea::placeholder{color:var(--c-placeholder)}.field-prefix{font-size:15px;font-weight:500;color:var(--c-muted)}.field-divider{width:1px;height:22px;background:var(--c-border)}.pill{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:var(--r-pill);font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;background:var(--c-cell-line);color:var(--c-muted)}.pill.pill-sm{height:auto;padding:5px 9px;font-size:10.5px;line-height:1.2}.pill-success{background:var(--c-success-tint);color:var(--c-success)}.pill-danger{background:var(--c-danger-tint);color:var(--c-danger)}.pill-warning{background:var(--c-warning-tint);color:var(--c-warning)}.pill-info{background:var(--c-primary-tint);color:var(--c-primary)}.micro-label{font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.5px;color:var(--c-muted);text-transform:uppercase}.amount{font-variant-numeric:tabular-nums;color:var(--c-ink);font-weight:700}.num{font-variant-numeric:tabular-nums}.text-muted{color:var(--c-muted)}.text-success{color:var(--c-success)}.text-danger{color:var(--c-danger)}.text-warning{color:var(--c-warning)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:16px;background:var(--c-ink);color:#fff;font-size:28px;font-weight:700}.brand-mark.brand-mark-sm{width:30px;height:30px;border-radius:8px;font-size:15px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:9px;background:var(--c-primary-tint);color:var(--c-primary);font-size:13px;font-weight:700}.icon-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--c-muted);text-decoration:none;cursor:pointer}.field-screen{display:flex;flex-direction:column;flex-grow:1;min-height:100dvh}.field-body{display:flex;flex-direction:column;flex-grow:1;gap:16px;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.grow{flex-grow:1}.info-note{display:flex;gap:10px;padding:12px 14px;border-radius:10px;background:var(--c-primary-tint);color:var(--c-primary);font-size:12.5px;line-height:1.55}.info-note svg{flex-shrink:0;margin-top:1px}.info-note p{color:var(--c-body)}.info-note.is-warning{background:var(--c-warning-tint);color:var(--c-warning)}.info-note.is-warning p{color:var(--c-body)}.info-note.is-danger{background:var(--c-danger-tint);color:var(--c-danger)}.info-note.is-danger p{color:var(--c-danger);font-weight:500}.status-line{display:flex;align-items:center;gap:8px;padding:0 4px;font-size:12.5px;color:var(--c-body)}.status-line svg{flex-shrink:0}.status-line.is-success svg{color:var(--c-success)}.status-line.is-warning{color:var(--c-warning);font-weight:500}.customer-card{overflow:hidden;padding:0}.customer-head{display:flex;align-items:center;gap:12px;padding:16px}.customer-name{flex-grow:1;min-width:0}.customer-name .name{font-size:18px;font-weight:700;color:var(--c-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-name .code{font-size:12.5px;color:var(--c-muted);font-variant-numeric:tabular-nums}.figures{display:flex;border-top:1px solid var(--c-border)}.figures>div{flex:1 1 0;padding:14px 16px}.figures>div+div{border-left:1px solid var(--c-border)}.figures .value{margin-top:2px;font-size:20px;font-weight:700;color:var(--c-ink);font-variant-numeric:tabular-nums}.figures .value.is-outstanding{color:var(--c-danger)}.action-block{display:flex;flex-direction:column;gap:10px}.text-btn{display:flex;align-items:center;justify-content:center;height:44px;border:0;background:none;color:var(--c-muted);font-size:14px;font-weight:700;text-decoration:none;cursor:pointer}.text-btn:hover{color:var(--c-body)}.sync-line{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--c-muted)}.sync-line .dot{width:7px;height:7px;border-radius:99px;background:var(--c-success)}.sync-line.is-warning .dot{background:var(--c-warning)}.page-header{display:flex;align-items:center;gap:12px;flex-shrink:0;min-height:56px;padding:0 20px;background:var(--c-surface);border-bottom:1px solid var(--c-border);flex-wrap:wrap}.page-header h1{font-size:17px;font-weight:700;letter-spacing:-.2px}.page-header .crumb{font-size:13px;font-weight:500;color:var(--c-muted);text-decoration:none}.page-header .crumb:hover{color:var(--c-ink)}.page-header .crumb-sep{font-size:13px;color:var(--c-placeholder)}.count-badge{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:var(--r-pill);background:var(--c-cell-line);color:var(--c-muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.search-box{display:flex;align-items:center;gap:8px;width:240px;height:36px;padding:0 12px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-field);color:var(--c-faint)}.search-box:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-focus-ring)}.search-box input{flex-grow:1;width:100%;min-width:0;border:0;outline:none;background:transparent;font-size:13px;color:var(--c-ink)}.btn-sm{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--r-field);font-size:13px;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-sm-primary{border:0;background:var(--c-primary);color:#fff}.btn-sm-primary:hover:not(:disabled){background:var(--c-primary-pressed);color:#fff}.btn-sm-secondary{border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-body)}.btn-sm-secondary:hover:not(:disabled){background:var(--c-ground);color:var(--c-body)}.page-body{display:flex;flex-direction:column;flex-grow:1;gap:16px;min-height:0;padding:24px}.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.filter-chip{height:34px;padding:0 14px;border:1px solid var(--c-border);border-radius:var(--r-pill);background:var(--c-surface);font-size:12.5px;font-weight:700;color:var(--c-body);cursor:pointer}.filter-chip.active{border-color:var(--c-primary);background:var(--c-primary-tint);color:var(--c-primary-pressed)}.table-card{overflow-x:auto;padding:0}.data-table{width:100%;border-collapse:collapse;min-width:960px}.data-table th{height:44px;padding:0 16px;background:var(--c-cell-line);border-bottom:1px solid var(--c-border);text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--c-muted);white-space:nowrap}.data-table th:first-child{padding-left:20px}.data-table td{height:60px;padding:0 16px;border-bottom:1px solid var(--c-row-line);font-size:13px;color:var(--c-body);white-space:nowrap}.data-table td:first-child{padding-left:20px}.data-table tbody tr:nth-child(2n){background:var(--c-row-alt)}.data-table tbody tr:last-child td{border-bottom:0}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table .strong{font-weight:700;color:var(--c-ink)}.data-table .sort-btn{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.person{display:flex;align-items:center;gap:12px}.person .avatar{width:36px;height:36px;border-radius:10px;font-size:14px}.person .person-name{font-size:14px;font-weight:700;color:var(--c-ink)}.person .person-sub{font-size:12px;color:var(--c-muted);font-variant-numeric:tabular-nums}.table-footer{display:flex;align-items:center;gap:16px;font-size:12.5px;color:var(--c-muted);font-variant-numeric:tabular-nums}.footer-note{display:flex;gap:10px;font-size:12.5px;line-height:1.55;color:var(--c-body)}.form-layout{display:flex;flex-grow:1;gap:20px;min-height:0;padding:24px}.form-card{display:flex;flex-direction:column;flex-grow:1;gap:20px;min-width:0;padding:24px}.form-card h2{font-size:16px;font-weight:700}.form-card .form-intro{margin-top:2px;font-size:13px;color:var(--c-muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-divider{height:1px;background:var(--c-border)}.req{color:var(--c-danger)}.admin-input,.admin-box{height:44px;padding:0 14px;background:var(--c-surface);border:1.5px solid var(--c-border);border-radius:var(--r-field);font-size:14px;font-weight:500;color:var(--c-ink);outline:none}.admin-input:focus,.admin-input:focus-within,.admin-box:focus,.admin-box:focus-within{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-focus-ring)}.admin-input.is-invalid,.admin-input.ng-invalid.ng-touched,.admin-box.is-invalid,.admin-box.ng-invalid.ng-touched{border-color:var(--c-danger)}.admin-input[readonly],.admin-box[readonly]{background:var(--c-ground);color:var(--c-muted);font-variant-numeric:tabular-nums}select.admin-input{padding:0 12px}textarea.admin-input{height:auto;padding:12px 14px;line-height:1.5;resize:none}.admin-box{display:flex;align-items:center;gap:10px}.admin-box .box-prefix{font-size:14px;color:var(--c-muted)}.admin-box .box-divider{width:1px;height:20px;background:var(--c-border)}.admin-box input{flex-grow:1;width:100%;min-width:0;border:0;outline:none;background:transparent;font-size:14px;font-weight:500;color:var(--c-ink);font-variant-numeric:tabular-nums}.field-ok{font-size:12px;color:var(--c-success)}.admin-hint{font-size:12px;color:var(--c-muted)}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:20px;border-top:1px solid var(--c-border)}.form-actions .btn-sm{height:40px;padding:0 18px}.form-actions-note{margin-right:auto;font-size:12.5px;color:var(--c-muted)}.check-chips{display:flex;flex-wrap:wrap;gap:10px}.check-chip{display:flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1.5px solid var(--c-border);border-radius:var(--r-pill);background:var(--c-surface);font-size:13px;font-weight:700;color:var(--c-body);cursor:pointer}.check-chip input{width:15px;height:15px;accent-color:var(--c-primary)}.check-chip.checked{border-color:var(--c-primary);background:var(--c-primary-tint);color:var(--c-primary-pressed)}.toggle-row{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid var(--c-border);border-radius:10px}.toggle-row .toggle-title{font-size:13.5px;font-weight:700;color:var(--c-ink)}.toggle-row .toggle-text{margin-top:2px;font-size:12.5px;color:var(--c-muted)}.switch{position:relative;flex-shrink:0;width:46px;height:26px;margin:0;border-radius:99px;background:var(--c-placeholder);appearance:none;cursor:pointer;transition:background .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:99px;background:#fff;transition:transform .15s}.switch:checked{background:var(--c-primary)}.switch:checked:after{transform:translate(20px)}.side-column{display:flex;flex-direction:column;flex-shrink:0;gap:16px;width:320px}.side-panel{display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card)}.check-item{display:flex;gap:10px;font-size:12.5px;line-height:1.5;color:var(--c-body)}.check-item svg{flex-shrink:0;margin-top:2px}.check-item .ok{color:var(--c-success)}.check-item .warn{color:var(--c-warning)}.check-item .pending{color:var(--c-faint)}.page-banner{padding:12px 16px;border-radius:10px;background:var(--c-danger-tint);color:var(--c-danger);font-size:13px;font-weight:500}@media(max-width:1100px){.form-layout{flex-direction:column}.side-column{width:100%}}@media(max-width:720px){.form-grid,.form-grid.cols-3{grid-template-columns:minmax(0,1fr)}.page-body,.form-layout{padding:16px}.search-box{width:100%}}.grid-card{overflow:hidden;padding:0}.grid-scroll{overflow-x:auto;overscroll-behavior-x:contain}.month-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;font-variant-numeric:tabular-nums}.month-grid th,.month-grid td{padding:0 10px;border-bottom:1px solid var(--c-row-line);background:var(--c-surface);white-space:nowrap}.month-grid thead th{height:40px;background:var(--c-cell-line);border-bottom:1px solid var(--c-border);font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--c-muted);text-align:left}.month-grid tbody tr:nth-child(2n)>*{background:var(--c-row-alt)}.month-grid .right{text-align:right}.month-grid .day{padding:0 8px;border-right:1px solid var(--c-cell-line);text-align:right;font-size:12.5px;font-weight:500;color:var(--c-ink)}.month-grid thead .day{font-size:11px;border-right-color:var(--c-pinned-line)}.month-grid .empty{color:var(--c-placeholder);font-weight:400}.month-grid .pin-left,.month-grid .pin-right{position:sticky;z-index:1}.month-grid .pin-left{left:var(--pin, 0)}.month-grid .pin-right{right:var(--pin, 0)}.month-grid .pin-edge-left{border-right:2px solid var(--c-border)}.month-grid .pin-edge-right{border-left:2px solid var(--c-border)}.month-grid tfoot td{height:48px;background:var(--c-ink);border-bottom:0;color:#fff;font-size:13.5px;font-weight:700}.month-grid tfoot .day{border-right-color:var(--c-navy-line);color:#fff;font-size:12.5px;font-weight:700}.month-grid tfoot .day.zero{color:var(--c-navy-muted);font-weight:400}.month-grid tfoot .pin-edge-left,.month-grid tfoot .pin-edge-right{border-color:var(--c-navy-line)}.month-grid .total-label{font-size:11.5px;letter-spacing:.5px;text-transform:uppercase}.month-grid .is-behind{color:var(--c-warning);font-weight:700}.month-grid tfoot .is-behind{color:var(--c-navy-warning)}.tiles-row{display:flex;flex-wrap:wrap;gap:16px}.summary-tile{flex:1 1 200px;padding:16px 18px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card)}.summary-tile .tile-value{margin-top:4px;font-size:24px;font-weight:700;color:var(--c-ink);font-variant-numeric:tabular-nums}.summary-tile .tile-value.is-success{color:var(--c-success)}.summary-tile .tile-value.is-danger{color:var(--c-danger)}.summary-tile .tile-row{display:flex;align-items:baseline;gap:10px;margin-top:4px}.summary-tile .tile-row .tile-value{margin-top:0}.summary-tile .tile-note{font-size:13px;color:var(--c-muted);font-variant-numeric:tabular-nums}.month-picker{display:inline-flex;align-items:center;gap:2px}.month-picker .month-step{width:32px;height:36px;padding:0;border:0;background:none;color:var(--c-muted);font-size:18px;cursor:pointer}.month-picker .month-step:disabled{opacity:.35;cursor:not-allowed}.month-picker .month-label{position:relative}.month-picker input[type=month]{position:absolute;inset:0;opacity:0;pointer-events:none}:root{--c-primary: #2563eb;--c-primary-pressed: #1d4ed8;--c-primary-tint: #eff6ff;--c-ink: #0f2544;--c-body: #334155;--c-muted: #556377;--c-ground: #f8fafc;--c-surface: #ffffff;--c-border: #e2e8f0;--c-success: #047857;--c-danger: #b91c1c;--c-warning: #b45309;--c-success-tint: #ecfdf5;--c-danger-tint: #fef2f2;--c-warning-tint: #fffbeb;--c-subtle: #7a8699;--c-faint: #94a3b8;--c-placeholder: #cbd5e1;--c-row-line: #eef2f6;--c-cell-line: #f1f5f9;--c-pinned-line: #e8edf3;--c-row-alt: #fbfcfe;--c-focus-ring: rgba(37, 99, 235, .1);--c-navy-line: #1c3a5e;--c-navy-text: #a9bace;--c-navy-muted: #6b85a8;--c-navy-warning: #f0b45a;--r-field: 8px;--r-field-focus: 10px;--r-card: 12px;--r-button: 12px;--r-pill: 99px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .08);--shadow-raised: 0 12px 40px rgba(15, 37, 68, .16);--app-bar-height: 56px;--location-strip-height: 40px;--gutter: 16px;--font-sans: DM Sans, Noto Sans Tamil, system-ui, -apple-system, Segoe UI, sans-serif}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100dvh;font-family:var(--font-sans);font-size:13px;font-weight:400;line-height:1.55;letter-spacing:0;color:var(--c-body);background:var(--c-ground);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;color:var(--c-ink)}p{margin:0}a{color:var(--c-primary)}a:hover{color:var(--c-primary-pressed)}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}
