;background:#fff;border-radius:50%;padding:4px}h1{font-size:19px;margin:0}header p{margin:3px 0;font-size:12px}main{max-width:1100px;margin:auto;padding:12px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;font-weight:700}.field input,.field select{padding:10px;border:1px solid #c9d8cc;border-radius:8px;min-width:0;font:inherit;width:100%}.btn{border:0;background:var(--g);color:white;font-weight:700;padding:10px 13px;border-radius:9px;cursor:pointer}.secondary{background:#eaf3ec;color:#19472a}.danger{background:#b42318}.tabs{display:flex;gap:7px;overflow:auto;margin-bottom:12px}.tab{padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff;white-space:nowrap}.tab.active{background:var(--g);color:white}.panel{display:none}.panel.active{display:block}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.muted{font-size:12px;color:#647168}.notice{background:#fff4d9;padding:10px;border-radius:8px;font-size:12px;margin-bottom:12px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{padding:9px;border-bottom:1px solid #e3ece5;text-align:left;font-size:13px}th{background:#f0f7f1}.hidden{display:none!important}.status{font-size:12px;padding:5px 8px;border-radius:20px;background:#eaf7ee;color:#176438}.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bar input{flex:1;min-width:140px;padding:10px;border:1px solid #c9d8cc;border-radius:8px}.billrow{display:grid;grid-template-columns:2fr .7fr .8fr .8fr auto;gap:7px;margin:8px 0;align-items:end}.billrow select,.billrow input{width:100%;padding:9px;border:1px solid #c9d8cc;border-radius:8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:#f1f8f2;padding:12px;border-radius:9px}.stat small{display:block;color:#65736a}.stat strong{font-size:18px}.camera{width:100%;max-width:480px;background:#111;border-radius:10px;margin-top:10px}.syncmsg{font-size:12px;color:#526358}.thumb{width:36px;height:36px;object-fit:cover;border-radius:6px}
@media print {
body * { visibility: hidden; }
#billing, #billing * { visibility: visible; }
#billing {
display: block !important;
position: absolute;
left: 0;
top: 0;
width: 100%;
}
#billing .actions { display: none !important; }
#billing .card {
border: none;
box-shadow: none;
}
}@media(max-width:650px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.billrow{grid-template-columns:1fr 1fr}.billrow .wide{grid-column:1/-1}.stats{grid-template-columns:repeat(3,1fr)}main{padding:8px}.card{padding:11px}}
Login / உள்நுழைவு Use an account created by your server administrator.
Login / உள்நுழை Logout
Online sync requires your deployed server URL in config.js . Offline/local changes are saved on this device and sync when you press Sync. Install on Android from Chrome menu → “Install app” / “Add to Home screen”.
Not synced Sync now / ஒத்திசை Install App
Products / பொருட்கள் Billing / பில் Stock / இருப்பு Reports / அறிக்கைகள்
Save Product Clear Scan barcode / Barcode scan
New Bill / புதிய பில்
+ Add item
Complete & Save Bill
Print / PDF
Total Rs 0.00
Estimated profit Rs 0.00
Saved bills 0
Stock Adjustment / இருப்பு மாற்றம்
Product
Quantity change (+/-)
Reason
Purchase
Manual correction
Damaged
Return
Update stock
Stock List
Product Code Stock Unit Status
Sales & Product-wise Profit / விற்பனை மற்றும் லாபம் Products 0
Sales Rs 0.00
Profit Rs 0.00
Product Qty sold Sales Profit