:root{--ground:#F5F4F2;--surface:#FFFFFF;--surface-2:#EDEBE7;--ink:#2B2724;--muted:#514C49;--line:#E4E1DB;--line-strong:#D0CBC3;--accent:#2C5234;--accent-ink:#234527;--accent-soft:#DFEAD9;--ok:#3E7A4C;--ok-soft:#D6E6D0;--warn:#8A6410;--warn-soft:#EEDFB6;--crit:#A23B2A;--crit-soft:#EFD9CE;--shadow-sm:0 1px 2px rgba(43,39,36,.07);--shadow-md:0 1px 2px rgba(43,39,36,.06),0 10px 28px rgba(43,39,36,.09);--radius:11px;--radius-sm:8px;--font-ui:"Poppins","Kanit",system-ui,sans-serif;--font-body:"Kanit",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#181716;--surface:#211F1D;--surface-2:#2B2825;--ink:#F0EEEA;--muted:#A39B90;--line:#38342E;--line-strong:#494440;--accent:#82BE8F;--accent-ink:#ABD9B4;--accent-soft:#243026;--ok:#86C293;--ok-soft:#243026;--warn:#CDA557;--warn-soft:#37301D;--crit:#DA7B60;--crit-soft:#3B2820;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.38)}}:root[data-theme=dark]{--ground:#181716;--surface:#211F1D;--surface-2:#2B2825;--ink:#F0EEEA;--muted:#A39B90;--line:#38342E;--line-strong:#494440;--accent:#82BE8F;--accent-ink:#ABD9B4;--accent-soft:#243026;--ok:#86C293;--ok-soft:#243026;--warn:#CDA557;--warn-soft:#37301D;--crit:#DA7B60;--crit-soft:#3B2820;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.38)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-ui);margin:0;text-wrap:balance;font-weight:600}a{color:var(--accent-ink)}img{max-width:100%}[hidden]{display:none!important}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.center{text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1.5px solid transparent;border-radius:999px;font-size:13.5px;font-weight:600;padding:10px 18px;font-family:var(--font-ui);cursor:pointer;transition:box-shadow .15s ease,background .15s ease,border-color .15s ease;text-decoration:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{box-shadow:0 7px 18px -3px color-mix(in srgb,var(--accent) 55%,transparent)}.btn-primary:active{background:var(--accent-ink)}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn-ghost:hover{box-shadow:0 7px 18px -5px #0003}.btn-ghost:active{border-color:var(--accent);color:var(--accent-ink)}.btn[disabled],.btn.is-disabled{background:var(--surface-2);color:var(--muted);border-color:transparent;box-shadow:none;cursor:not-allowed;opacity:.75;pointer-events:none}.btn-block{width:100%}.btn-sm{padding:7px 14px;font-size:12.5px}.btn:focus-visible,.control:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.spin{width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.field{margin-bottom:13px}.field>label{display:block;font-family:var(--font-ui);font-size:12.5px;font-weight:500;margin-bottom:5px}.field .hint{color:var(--muted);font-weight:400}.control{width:100%;padding:9px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:13.5px}textarea.control{resize:vertical;min-height:60px}select.control{-webkit-appearance:none;-moz-appearance:none;appearance:none}.err{color:var(--crit);font-size:12px;margin-top:4px}.ok-msg{color:var(--ok);font-size:12px;margin-top:4px}.cust-wrap{min-height:100%;display:flex;justify-content:center;padding:22px 14px 60px}.phone{width:100%;max-width:430px}.cust-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.cust-logo{width:36px;height:36px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:Georgia,serif;font-weight:700;font-size:14px}.cust-head h1{font-size:16px}.cust-head p{margin:0;font-size:11.5px;color:var(--muted)}.cust-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-md);padding:20px 18px}.cust-title{font-size:19px;margin:6px 0 3px}.cust-sub{font-size:12.5px;color:var(--muted);margin:0 0 16px}.stepper{display:flex;gap:8px;margin:6px 0 14px;font-family:var(--font-ui);font-size:11px}.stepper .st{flex:1;text-align:center;padding:6px 4px;border-radius:6px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.stepper .st.on{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent;font-weight:600}.step-nav{display:flex;gap:8px;margin-top:14px}.seg{display:flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}.seg button{flex:1;border:0;background:var(--surface);color:var(--muted);font-size:11.5px;padding:8px 6px;border-right:1px solid var(--line);font-family:var(--font-ui);cursor:pointer}.seg button:last-child{border-right:0}.seg button.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.toggle-row{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer}.toggle-row .sw{flex:none;width:38px;height:22px;border-radius:12px;background:var(--line-strong);position:relative;margin-top:1px;transition:background .15s}.toggle-row .sw:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}.toggle-row.on .sw{background:var(--accent)}.toggle-row.on .sw:after{left:18px}.toggle-row .t-txt{font-family:var(--font-ui);font-size:12.5px;font-weight:500}.toggle-row .t-txt span{display:block;font-family:var(--font-body);font-weight:400;color:var(--muted);font-size:11.5px}.tax-box{margin-top:11px;padding:12px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface)}.tax-box .field:last-child{margin-bottom:0}.upload{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:14px;text-align:center;color:var(--muted);font-size:12px;cursor:pointer;display:flex;gap:8px;align-items:center;justify-content:center}.upload.has{color:var(--ok);border-color:var(--ok)}.items-tbl{width:100%;border-collapse:collapse;font-size:11.5px}.items-tbl th{text-align:left;font-family:var(--font-ui);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:3px 4px}.items-tbl th.r{text-align:right}.items-tbl td{padding:3px 4px;vertical-align:middle}.items-tbl td.r{text-align:right;font-family:var(--font-mono)}.items-tbl .ci{padding:6px 7px;font-size:12px;border-radius:6px}.items-tbl .ci.r{text-align:right;font-family:var(--font-mono)}.items-tbl td.qty .ci{width:44px}.items-tbl td.price .ci{width:66px}.li-del{border:0;background:none;color:var(--muted);cursor:pointer;line-height:0;padding:4px}.li-add{font-size:11.5px;color:var(--accent-ink);background:none;border:0;padding:8px 4px;font-weight:600;font-family:var(--font-ui);display:inline-flex;align-items:center;gap:5px;cursor:pointer}.summary{margin-top:12px;padding:12px;border-radius:var(--radius-sm);background:var(--accent-soft);display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-ui)}.summary .s-lab{font-size:12px;color:var(--accent-ink)}.summary .s-val{font-size:17px;font-weight:700;color:var(--accent-ink)}.ex-wrap{margin-top:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:10px}.ex-h{font-family:var(--font-ui);font-size:11px;font-weight:600;margin-bottom:8px;display:flex;gap:6px;align-items:center}.rcpt-ex{background:#fff;color:#242424;font-family:var(--font-mono);font-size:9.5px;line-height:1.65;padding:13px;border:1px solid #d8d2c6;border-radius:5px;max-width:264px;margin:0 auto}.rcpt-ex .rc-c{text-align:center}.rcpt-ex .rc-logo{font-family:Georgia,serif;font-weight:700;font-size:15px;letter-spacing:.03em}.rcpt-ex .rc-hr{border-top:1px dashed #bbb;margin:6px 0}.rcpt-ex .rc-row{display:flex;justify-content:space-between;gap:10px}.rcpt-ex .rc-idline{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:2px 0}.rcpt-ex .id-hl{border:2px solid #d64545;border-radius:4px;padding:1px 5px;color:#a82626;font-weight:700;background:#fdeaea;white-space:nowrap}.rcpt-cap{text-align:center;font-family:var(--font-ui);font-size:10px;color:var(--accent-ink);font-weight:600;margin-top:9px}.done{text-align:center;padding:20px 6px}.done .check{width:54px;height:54px;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;margin:0 auto 14px}.done h1{font-size:19px;margin-bottom:6px}.done p{font-size:13px;color:var(--muted);margin:0 0 14px}.req-chip{display:inline-block;font-family:var(--font-mono);font-size:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 16px;margin-bottom:14px}.done ol{text-align:left;font-size:12.5px;color:var(--muted);padding-left:18px;margin:0 0 4px}.found{border:1px solid var(--ok);background:var(--ok-soft);border-radius:var(--radius-sm);padding:12px;margin:8px 0 14px}.found-h{font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--ok);display:flex;gap:6px;align-items:center}.found-meta{font-size:11px;color:var(--muted);margin:2px 0 8px}.found-tbl{width:100%;border-collapse:collapse;font-size:11.5px;background:var(--surface);border-radius:6px;overflow:hidden}.found-tbl td{padding:5px 8px;border-bottom:1px solid var(--line)}.found-tbl td:last-child{text-align:right;font-family:var(--font-mono)}.found-tbl tr.tot td{font-weight:700;border-bottom:0}.adm{min-height:100%;display:flex;flex-direction:column}.adm-top{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:10}.adm-brand{font-family:var(--font-ui);font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:7px}.adm-brand .dot{width:8px;height:8px;border-radius:2px;background:var(--accent)}.adm-top .right{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--font-ui);font-weight:700;font-size:11px}.adm-body{display:grid;grid-template-columns:180px 1fr;flex:1;min-height:0}.adm-nav{border-right:1px solid var(--line);padding:12px 10px;display:flex;flex-direction:column;gap:2px;background:var(--surface)}.adm-nav a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:7px;font-family:var(--font-ui);font-size:12.5px;color:var(--muted);text-decoration:none}.adm-nav a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.adm-nav a .badge{margin-left:auto;background:var(--warn-soft);color:var(--warn);border-radius:999px;font-size:10px;font-weight:700;padding:1px 7px}.adm-main{padding:20px 22px 60px;min-width:0;background:var(--ground);overflow:auto}@media (max-width:760px){.adm-body{grid-template-columns:1fr}.adm-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.adm-nav a{white-space:nowrap}}.ac-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.ac-head h2{font-size:17px}.ac-head p{margin:2px 0 0;font-size:12px;color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}@media (max-width:620px){.tiles{grid-template-columns:1fr}}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px}.tile .t-lab{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-family:var(--font-ui)}.tile .t-val{font-size:21px;font-weight:700;font-family:var(--font-ui);margin-top:4px}.tile .t-val small{font-size:12px;font-weight:500;color:var(--muted)}.tile .t-sub{font-size:11.5px;color:var(--muted);margin-top:2px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.row-link{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:13px 15px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;cursor:pointer}.row-link:last-child{border-bottom:0}.row-link:hover{background:var(--surface-2)}.row-link .r-id{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.row-link .r-cust{font-family:var(--font-ui);font-weight:600;font-size:13px}.row-link .r-items{font-size:11.5px;color:var(--muted);margin-top:1px}.row-link .r-right{text-align:right}.row-link .r-amt{font-family:var(--font-mono);font-size:13px;font-weight:500}.row-link .r-time{font-size:10.5px;color:var(--muted);margin-top:2px}.chip{display:inline-block;font-family:var(--font-ui);font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:999px}.chip.new{background:var(--warn-soft);color:var(--warn)}.chip.reviewing{background:var(--accent-soft);color:var(--accent-ink)}.chip.issued{background:var(--ok-soft);color:var(--ok)}.chip.rejected{background:var(--crit-soft);color:var(--crit)}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}@media (max-width:820px){.split{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:15px}.panel h3{font-size:13px;font-family:var(--font-ui);margin-bottom:11px}.kv{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:5px 0;border-bottom:1px dotted var(--line)}.kv:last-child{border-bottom:0}.kv .k{color:var(--muted)}.kv .v{text-align:right;font-weight:500}.mini-label{font-family:var(--font-ui);font-size:11.5px;font-weight:500;margin:12px 0 5px;display:block}.checks{display:flex;flex-direction:column;gap:6px}.checks label{display:flex;gap:8px;align-items:flex-start;font-size:12px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;cursor:pointer}.checks input{margin-top:3px}.checks small{display:block;color:var(--muted);font-size:10.5px}.totals{margin-top:10px;font-size:12.5px}.totals .t-row{display:flex;justify-content:space-between;padding:4px 0}.totals .t-row.grand{border-top:1px solid var(--line-strong);margin-top:5px;padding-top:8px;font-family:var(--font-ui);font-weight:700;font-size:14px}.note-box{font-size:11px;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:8px 10px;margin-top:8px;display:flex;gap:6px;align-items:flex-start;color:var(--muted)}.note-box.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.note-box.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.action-bar{display:flex;gap:9px;margin-top:15px;flex-wrap:wrap}table.data{width:100%;border-collapse:collapse;font-size:12px}table.data th{text-align:left;font-family:var(--font-ui);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line)}table.data td{padding:9px 10px;border-bottom:1px solid var(--line)}table.data td.r,table.data th.r{text-align:right;font-family:var(--font-mono)}table.data tr:last-child td{border-bottom:0}.mat{background:#e7e5e1;min-height:100%;padding:26px 16px;display:flex;flex-direction:column;align-items:center;gap:14px}:root[data-theme=dark] .mat,:root:not([data-theme=light]) .mat{background:#211e19}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .mat{background:#211e19}}.sheet{background:#fff;color:#221e1a;width:100%;max-width:580px;padding:34px 36px;box-shadow:0 2px 6px #0000001f,0 18px 44px #00000024;font-family:var(--font-body);font-size:12.5px}.sheet .s-top{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid #2C5234;padding-bottom:12px}.sheet .s-logo{font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:19px;letter-spacing:.02em;color:#2c5234;line-height:1;margin-bottom:6px}.sheet .s-logo span{display:block;font-size:7.5px;letter-spacing:.34em;font-weight:400;margin-top:3px;color:#514c49}.sheet .s-seller h3{font-family:var(--font-ui);font-size:15px;color:#2c5234}.sheet .s-seller p{margin:2px 0 0;font-size:11px;color:#5b544c;max-width:250px}.sheet .s-doc{text-align:right}.sheet .s-doc .dt{font-family:var(--font-ui);font-weight:700;font-size:14px;color:#2c5234;border:1.5px solid #2C5234;border-radius:5px;padding:4px 12px;display:inline-block}.sheet .s-doc .dmeta{font-size:11px;margin-top:6px;color:#5b544c;line-height:1.7}.sheet .s-doc .dmeta b{color:#221e1a;font-family:var(--font-mono)}.sheet .s-cust{margin:14px 0;font-size:11.5px;line-height:1.7}.sheet .s-cust .lab{color:#8a8177;display:inline-block;min-width:74px}.sheet table.r-tbl{width:100%;border-collapse:collapse;margin-top:6px;font-size:11.5px}.sheet table.r-tbl th{background:#e7eee3;text-align:left;padding:7px 8px;font-family:var(--font-ui);font-size:10.5px;border:1px solid #CFDBC8}.sheet table.r-tbl td{padding:6px 8px;border:1px solid #E3DED4;vertical-align:top}.sheet table.r-tbl td.r,.sheet table.r-tbl th.r{text-align:right;font-family:var(--font-mono)}.sheet table.r-tbl .opt{display:block;color:#8a8177;font-size:10px}.sheet .r-sum{margin-top:10px;margin-left:auto;width:58%;font-size:11.5px}.sheet .r-sum .row{display:flex;justify-content:space-between;padding:3px 0}.sheet .r-sum .row.big{border-top:1.5px solid #221E1A;margin-top:4px;padding-top:7px;font-family:var(--font-ui);font-weight:700;font-size:13.5px}.sheet .r-words{margin-top:8px;text-align:right;font-style:italic;color:#5b544c;font-size:11px}.sheet .s-foot{display:flex;justify-content:space-between;gap:20px;margin-top:20px;padding-top:12px;border-top:1px dashed #C9C2B5}.sheet .s-pay{font-size:10.5px;color:#5b544c;max-width:280px;line-height:1.7}.sheet .s-pay b{color:#221e1a;display:block;font-family:var(--font-ui);margin-bottom:2px}.sheet .s-pay .pay-row{display:flex;gap:10px;align-items:flex-start;margin-top:4px}.sheet .s-pay .qr{width:66px;height:66px;flex:none;border:1px solid #E3DED4;border-radius:4px;padding:3px;background:#fff}.sheet .s-sign{text-align:center;font-size:10.5px;color:#5b544c;min-width:160px}.sheet .s-sign img{max-height:46px;margin-bottom:4px}.sheet .s-sign .sig-line{margin-top:26px;border-top:1px dotted #8a8177;padding-top:5px}.sheet .s-note{margin-top:12px;font-size:10px;color:#8a8177}.receipt-actions{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}.login-wrap{min-height:100%;display:grid;place-items:center;padding:24px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-md);padding:28px;max-width:360px;width:100%;text-align:center}.login-card h1{font-size:18px;margin-bottom:4px}.login-card p{font-size:12.5px;color:var(--muted);margin:0 0 18px}.loading{min-height:100%;display:grid;place-items:center;color:var(--muted);font-size:13px}@media print{.no-print{display:none!important}body,.mat{background:#fff}.mat{padding:0}.sheet{box-shadow:none;max-width:none}}
