:root{--brand: #0e5a4a;--brand-dark: #0a4236;--brand-soft: #e3f0ec;--brand-line: #a9d2c5;--ink: #15181b;--ink-2: #3d4247;--muted: #5b6168;--line: #e2e4e0;--line-2: #d5d8d3;--bg: #f3f4f1;--card: #ffffff;--sunk: #e6e8e4;--warn-bg: #fff3d6;--warn-ink: #5c3d00;--bad-bg: #fdecea;--bad-ink: #8f1c13;--bad: #b42318;--info-bg: #e8edf7;--info-ink: #22427a;--radius: 14px;--font: "Plus Jakarta Sans", "Noto Sans Sinhala", "Noto Sans Tamil", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--brand)}a:hover{color:var(--brand-dark)}h1,h2,h3{margin:0;letter-spacing:-.3px}h1{font-size:26px;font-weight:800}h2{font-size:17px;font-weight:800}h3{font-size:15px;font-weight:700}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}.mobile{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.mobile-body{flex:1;padding:16px 18px 100px;display:flex;flex-direction:column;gap:14px}.topbar{display:flex;align-items:center;gap:8px;padding:14px 18px 6px;min-height:60px}.topbar .title{display:flex;flex-direction:column;flex:1;min-width:0}.topbar .title strong{font-size:17px;font-weight:800}.topbar .title span{font-size:12px;color:var(--muted)}.icon-btn{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);flex-shrink:0;text-decoration:none}.icon-btn.ghost{border-color:transparent;background:transparent;margin-left:-10px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:6px 8px calc(10px + env(safe-area-inset-bottom));z-index:20;max-width:480px;margin:0 auto}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--muted);text-decoration:none;padding:6px 0}.bottom-nav a.active{color:var(--brand);font-weight:800}.desk{display:flex;flex-wrap:wrap;min-height:100vh}.desk-nav{flex:1 1 220px;max-width:100%;background:var(--ink);color:#fff;padding:22px 14px;display:flex;flex-direction:column;gap:4px}.desk-nav .brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:16px;padding:0 8px 18px;color:#fff;text-decoration:none}.desk-nav a.nav{min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-radius:10px;color:#c9cdd1;font-size:14px;font-weight:600;text-decoration:none}.desk-nav a.nav.active{background:#2a2f34;color:#fff;font-weight:700}.desk-nav .count{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;background:#3a3f44;color:#fff}.desk-main{flex:999 1 560px;min-width:0;padding:26px clamp(16px,3vw,40px) 60px;display:flex;flex-direction:column;gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px}.card.dark{background:var(--ink);color:#fff;border-color:var(--ink)}.card.tight{gap:6px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:10px}.grow{flex:1;min-width:0}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.split{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.split>.side{flex:1 1 300px;min-width:0}.split>.main{flex:2 1 420px;min-width:0}.muted{color:var(--muted)}.small{font-size:12px}.label{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.strong{font-weight:700}.big{font-size:24px;font-weight:800}.right{text-align:right}.mono{font-family:ui-monospace,Menlo,Consolas,monospace}.divider{height:1px;background:#eef0ec}.list{display:flex;flex-direction:column}.list>*{padding:12px 0;border-bottom:1px solid #eef0ec}.list>*:last-child{border-bottom:0}.btn{min-height:48px;padding:0 18px;border-radius:12px;border:0;background:var(--brand);color:#fff;font-weight:700;font-size:15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.btn:hover{background:var(--brand-dark);color:#fff}.btn:disabled{background:#8a9089;cursor:not-allowed}.btn.secondary{background:var(--card);color:var(--ink);border:1px solid var(--line-2)}.btn.secondary:hover{background:#fafaf8;color:var(--ink)}.btn.ghost{background:transparent;color:var(--brand);border:0}.btn.ghost:hover{background:var(--brand-soft);color:var(--brand-dark)}.btn.danger{background:var(--card);color:var(--bad-ink);border:1px solid #f3b8b1}.btn.danger.solid{background:var(--bad);color:#fff;border:0}.btn.dark{background:var(--ink)}.btn.small{min-height:38px;padding:0 12px;font-size:13px;border-radius:10px}.btn.block{width:100%}.field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}.field .hint{font-size:12px;font-weight:500;color:var(--muted)}.field .err{font-size:12px;font-weight:600;color:var(--bad-ink)}.input,.field input,.field select,.field textarea{min-height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--card);font-size:15px;width:100%}.field textarea{padding:10px 14px;min-height:80px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.input:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:transparent}.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--bad)}.check{display:flex;align-items:center;gap:10px;min-height:40px;font-size:14px;font-weight:600;cursor:pointer}.check input{width:20px;height:20px;accent-color:var(--brand)}.chip{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;white-space:nowrap;background:var(--sunk);color:var(--ink-2)}.chip.ok{background:var(--brand-soft);color:var(--brand-dark)}.chip.warn{background:var(--warn-bg);color:#6e4700}.chip.bad{background:var(--bad-bg);color:var(--bad-ink)}.chip.info{background:var(--info-bg);color:var(--info-ink)}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:12px;background:var(--sunk)}.seg button{min-height:40px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:700;font-size:14px;cursor:pointer}.seg button.on{background:var(--card);color:var(--ink)}.pills{display:flex;gap:8px;flex-wrap:wrap}.pill{min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.pill.on{background:var(--ink);color:#fff;border-color:var(--ink)}.pill .n{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--sunk);color:var(--ink-2)}.pill.on .n{background:#3a3f44;color:#fff}.notice{padding:12px 14px;border-radius:12px;font-size:13px;line-height:1.5;background:var(--card);border:1px solid var(--line)}.notice.ok{background:var(--brand-soft);border-color:transparent;color:var(--brand-dark)}.notice.warn{background:var(--warn-bg);border-color:#f0d48c;color:var(--warn-ink)}.notice.bad{background:var(--bad-bg);border-color:#f3b8b1;color:#6e1209}.tile{padding:14px;border-radius:14px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.tile .v{font-size:24px;font-weight:800}.tile .k{font-size:12px;font-weight:600;color:var(--muted)}.item-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);width:100%;text-align:left;cursor:pointer}.item-row:hover{border-color:var(--line-2);color:var(--ink)}.item-row.selected{border:2px solid var(--brand)}.thumb{width:52px;height:52px;border-radius:12px;background:var(--sunk);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--muted);overflow:hidden}.avatar{width:44px;height:44px;border-radius:999px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.bar{height:6px;border-radius:999px;background:var(--sunk);overflow:hidden}.bar>div{height:6px;background:var(--brand);border-radius:999px}.fab{position:fixed;right:max(18px,calc(50vw - 222px));bottom:92px;min-height:56px;padding:0 20px;border-radius:999px;background:var(--brand);color:#fff;display:flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;box-shadow:0 6px 18px #0e5a4a59;z-index:15}.fab:hover{color:#fff;background:var(--brand-dark)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#15181b80;display:flex;align-items:flex-end;justify-content:center;z-index:50}.sheet{background:var(--card);width:100%;max-width:480px;border-radius:22px 22px 0 0;padding:20px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow-y:auto}@media(min-width:900px){.sheet-backdrop.center{align-items:center}.sheet-backdrop.center .sheet{border-radius:18px;max-width:520px}}.table-wrap{overflow-x:auto;border-radius:14px;background:var(--card);border:1px solid var(--line)}table.t{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}table.t th{text-align:left;font-size:12px;color:var(--muted);font-weight:700;padding:12px 14px;border-bottom:1px solid var(--line)}table.t td{padding:12px 14px;border-bottom:1px solid #eef0ec;vertical-align:middle}table.t tr:last-child td{border-bottom:0}.doc-thumb{width:100%;aspect-ratio:4 / 3;border-radius:10px;background:var(--sunk);object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted)}.spinner{width:22px;height:22px;border:3px solid var(--line-2);border-top-color:var(--brand);border-radius:999px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-pad{display:flex;align-items:center;justify-content:center;padding:40px 0}.toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%);background:var(--ink);color:#fff;padding:12px 18px;border-radius:12px;font-size:14px;font-weight:600;z-index:80;max-width:calc(100vw - 32px)}.toast.bad{background:var(--bad)}.otp{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.otp input{height:58px;text-align:center;font-size:22px;font-weight:700;border-radius:12px;border:1px solid var(--line-2);background:var(--card);width:100%}.hero{background:var(--brand);color:#fff}.hero a{color:#fff}.logo{width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.logo.inv{background:#fff;color:var(--brand)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.print-only{display:none}@media print{body *{visibility:hidden}.print-only,.print-only *{visibility:visible}.print-only{display:block;position:absolute;left:0;top:0;width:72mm;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:#000}.receipt .r{display:flex;justify-content:space-between;gap:8px}.receipt hr{border:0;border-top:1px dashed #000;margin:4px 0}}.ticks{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border-radius:999px;font-size:12.5px;font-weight:700;white-space:nowrap;background:var(--sunk);color:var(--muted)}.ticks.t1{background:var(--brand-soft);color:var(--brand-dark)}.ticks.t2{background:#e2eefc;color:#1557b0}.ticks.pending{background:var(--warn-bg);color:var(--warn-ink)}.label-preview{display:grid;gap:6px;padding:10px;background:var(--sunk);border-radius:12px;overflow-x:auto}.label-cell{background:#fff;border:1px dashed var(--line-2);border-radius:6px;display:flex;align-items:center;gap:4px;overflow:hidden;color:#000}.label-cell .lt{display:flex;flex-direction:column;min-width:0;line-height:1.15}.label-cell .lt b,.label-cell .lt span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qr-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px;background:#fff;border-radius:16px;border:1px solid var(--line);color:#000;text-align:center}
