:root{--app-bg:#f4f7f3;--surface:#fff;--surface-soft:#f8faf7;--text:#30423a;--text-strong:#16251f;--text-muted:#68766f;--border:#dce4de;--border-strong:#b9c7bd;--green:#143f35;--green-soft:#e9f4ef;--amber:#ad6819;--amber-soft:#fff2d9;--shadow:0 12px 30px #12221c14;--shadow-soft:0 8px 18px #12221c14;color:var(--text);background:var(--app-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--app-bg)}body{min-width:320px;margin:0}button,input{letter-spacing:0}button:focus-visible,input:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #bc761c57}img,svg{display:block}.app-shell{background:var(--app-bg);min-height:100svh;color:var(--text)}.loading-state{min-height:100svh;color:var(--text-strong);background:var(--app-bg);place-items:center;padding:24px;font-weight:800;display:grid}.topbar{border-bottom:1px solid var(--border);z-index:10;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:16px;padding:16px 24px;display:grid;position:sticky;top:0}.brand-button,.tabbar button,.icon-button,.primary-actions button,.panel-heading button,.customer-row,.mode-toggle button,.denomination-grid button,.wide-command,.manual-code button,.submit-transaction,.secondary-action{font:inherit;color:inherit}.brand-button{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;width:fit-content;padding:0;display:inline-flex}.brand-button strong,.brand-lockup strong{color:var(--text-strong);font-size:18px;line-height:1.1;display:block}.brand-button small{color:var(--text-muted);margin-top:3px;font-size:12px;line-height:1.2;display:block}.brand-mark{color:#fff;background:var(--green);border-radius:8px;place-items:center;width:42px;height:42px;display:inline-grid;box-shadow:0 10px 24px #143f352e}.status-line{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.status-line span{border:1px solid var(--border);min-height:30px;color:var(--text-muted);background:var(--surface);border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.icon-button{border:1px solid var(--border);width:38px;height:38px;color:var(--text);background:var(--surface);cursor:pointer;border-radius:8px;place-items:center;text-decoration:none;display:inline-grid}.icon-button:hover,.panel-heading button:hover,.secondary-action:hover,.wide-command:hover{border-color:var(--green);color:var(--green)}.tabbar{border-bottom:1px solid var(--border);background:var(--surface);gap:8px;padding:12px 24px;display:flex;overflow-x:auto}.tabbar button{min-height:38px;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:800;display:inline-flex}.tabbar button.active{color:var(--green);background:var(--green-soft);border-color:#143f3524}.notice{min-height:40px;color:var(--green);background:var(--green-soft);border:1px solid #143f3524;border-radius:8px;align-items:center;gap:8px;margin:16px 24px 0;padding:0 14px;font-size:14px;font-weight:700;display:flex}.notice.warning{color:var(--amber);background:var(--amber-soft);border-color:#bc761c3d}.workspace{box-sizing:border-box;width:min(1440px,100%);margin:0 auto;padding:18px 24px 28px}.counter-grid{grid-template-columns:minmax(320px,.9fr) minmax(320px,1fr) minmax(340px,1fr);align-items:start;gap:16px;display:grid}.two-column{grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr);align-items:start;gap:16px;display:grid}.single-column{max-width:980px}.panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;padding:16px}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stat-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;min-height:72px;padding:12px}.stat-card span,.status-table span,.transaction-row span,.customer-row small,.qr-block span,.composer-footnote{color:var(--text-muted);font-size:12px;font-weight:700}.stat-card strong{color:var(--text-strong);margin-top:8px;font-size:18px;line-height:1.1;display:block}.daily-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.daily-summary div{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;min-height:58px;padding:10px}.daily-summary span{color:var(--text-muted);font-size:11px;font-weight:800}.daily-summary strong{color:var(--text-strong);margin-top:6px;font-size:14px;line-height:1.1;display:block}.primary-actions{grid-template-columns:1fr auto;gap:10px;margin:14px 0;display:grid}.scan-button{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:58px;font-weight:900;display:flex;box-shadow:0 14px 30px #143f352e}.primary-actions .scan-button,.primary-actions .scan-button:hover{color:#fff}.secondary-action{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-size:14px;font-weight:800;display:inline-flex}.panel-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.panel-heading h2,.modal-heading h2,.customer-editor h2{color:var(--text-strong);letter-spacing:0;margin:0;font-size:18px;line-height:1.2}.panel-heading button{border:1px solid var(--border);background:var(--surface-soft);cursor:pointer;border-radius:8px;min-height:32px;padding:0 10px;font-size:12px;font-weight:900}.search-box{border:1px solid var(--border);background:var(--surface-soft);height:42px;color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:0 12px;display:flex}.search-box input,.field-grid input,.transaction-composer input,.modal-form input,.manual-code input{width:100%;min-width:0;color:var(--text-strong);font:inherit;background:0 0;border:0;outline:none;font-size:14px}.customer-list,.transaction-list{gap:8px;margin-top:12px;display:grid}.customer-row{border:1px solid var(--border);background:var(--surface);text-align:left;cursor:pointer;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px;display:grid}.customer-row.selected{background:var(--green-soft);border-color:#143f3557}.customer-row strong{color:var(--text-strong);overflow-wrap:anywhere;font-size:14px;display:block}.customer-row b{color:var(--green);white-space:nowrap;font-size:13px}.customer-editor{gap:12px;margin-top:12px;display:grid}.customer-editor.expanded{margin-top:0}.empty-editor,.empty-state{border:1px dashed var(--border-strong);color:var(--text-muted);text-align:center;border-radius:8px;place-items:center;padding:34px 18px}.empty-editor p,.empty-state span{color:var(--text-muted);margin:4px 0 0;font-size:13px}.empty-state strong{color:var(--text-strong);margin-top:10px;display:block}.balance-banner{color:#fff;background:linear-gradient(135deg,#143f35,#25694f);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:14px;display:grid}.balance-banner span{opacity:.82;overflow-wrap:anywhere;font-size:13px;font-weight:800}.balance-banner strong{white-space:nowrap;font-size:24px;line-height:1}.field-grid,.modal-form{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field-grid label,.transaction-composer label,.modal-form label{color:var(--text-muted);gap:7px;font-size:12px;font-weight:900;display:grid}.field-grid input,.transaction-composer input,.modal-form input,.modal-form select{box-sizing:border-box;border:1px solid var(--border);background:var(--surface-soft);height:42px;color:var(--text-strong);font:inherit;border-radius:8px;padding:0 12px;font-size:14px}.full-field{grid-column:1/-1}.transaction-composer{border-top:1px solid var(--border);gap:10px;padding-top:12px;display:grid}.mode-toggle{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.mode-toggle button,.denomination-grid button{cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:34px;font-size:13px;font-weight:900;display:inline-flex}.mode-toggle button.active{color:var(--green);background:var(--surface);box-shadow:var(--shadow-soft)}.denomination-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.denomination-grid button{color:var(--amber);background:var(--amber-soft);border:1px solid #bc761c42}.submit-transaction,.wide-command{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:44px;font-weight:900;display:inline-flex}.submit-transaction:disabled{cursor:not-allowed;opacity:.44}.composer-footnote{text-align:center}.qr-block{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.qr-block strong{color:var(--text-strong);font-size:14px;display:block}.qr-block small{color:var(--text-muted);margin-top:8px;font-size:11px;line-height:1.35;display:block}.qr-preview{place-items:center;gap:8px;display:grid}.qr-preview img,.qr-loading{border:1px solid var(--border);background:#fff;border-radius:8px;width:116px;height:116px}.qr-loading{color:var(--green);place-items:center;font-weight:900;display:grid}.qr-actions{gap:6px;display:flex}.qr-actions .icon-button{width:34px;height:34px}.transaction-row{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.transaction-list.expanded .transaction-row{grid-template-columns:minmax(0,1fr) 150px}.transaction-row strong{color:var(--text-strong);font-size:14px;display:block}.transaction-row small{color:var(--text-muted);margin-top:4px;font-size:12px;display:block}.transaction-row b{text-align:right;white-space:nowrap;font-size:14px}.transaction-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.mini-action{border:1px solid var(--border);width:32px;height:32px;color:var(--amber);background:var(--amber-soft);cursor:pointer;border-radius:8px;place-items:center;display:inline-grid}.positive{color:var(--green)}.negative{color:var(--amber)}.backup-stack{gap:10px;display:grid}.backup-warning,.disclaimer,.section-copy{color:#65400c;background:var(--amber-soft);border:1px solid #bc761c3d;border-radius:8px;margin:0 0 12px;padding:12px;font-size:13px;line-height:1.45}.backup-warning{gap:4px;display:grid}.backup-warning strong{color:var(--amber)}.disclaimer{color:var(--text-muted);border-color:var(--border);background:var(--surface-soft)}.section-copy{color:var(--text);border-color:var(--border);background:var(--surface-soft)}.print-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.wide-command{border:1px solid var(--border);width:100%;color:var(--text-strong);background:var(--surface-soft)}.file-command{box-sizing:border-box;cursor:pointer}.file-command input{display:none}.status-table{gap:10px;display:grid}.status-table div{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;justify-content:space-between;gap:12px;padding:12px;display:flex}.status-table strong{color:var(--text-strong);text-align:right}.modal-backdrop{z-index:50;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:min(520px,100%);max-height:min(760px,100svh - 40px);padding:16px;overflow:auto;box-shadow:0 24px 80px #0f172a33}.modal-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.modal-form{grid-template-columns:1fr}.modal-form label svg{vertical-align:middle;margin-right:6px;display:inline-block}.form-error{color:#9f1d1d;background:#fff0ee;border:1px solid #bc1c1c38;border-radius:8px;margin:0;padding:10px 12px;font-size:13px;font-weight:800}.scanner-shell{gap:10px;display:grid}.scanner-shell p{color:var(--text-muted);text-align:center;margin:0;font-size:13px;font-weight:700}#qr-reader{border:1px solid var(--border);background:#111827;border-radius:8px;min-height:260px;overflow:hidden}.manual-code{grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:12px;display:grid}.manual-code input{box-sizing:border-box;border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;min-height:42px;padding:0 12px}.manual-code button{color:#fff;background:var(--green);border:0;border-radius:8px;min-height:42px;padding:0 16px;font-weight:900}.identity-page{box-sizing:border-box;background:radial-gradient(circle at top, #143f351a, transparent 34%), var(--app-bg);place-items:center;min-height:100svh;padding:24px;display:grid}.identity-card{border:1px solid var(--border);background:var(--surface);width:min(390px,100%);box-shadow:var(--shadow);text-align:center;border-radius:8px;place-items:center;gap:14px;padding:22px;display:grid}.identity-card .qr-preview img,.identity-card .qr-loading{width:220px;height:220px}.identity-card h1{color:var(--text-strong);letter-spacing:0;overflow-wrap:anywhere;margin:4px 0 0;font-size:28px;line-height:1.12}.identity-card p{color:var(--text-muted);margin:0;font-weight:800}.brand-lockup{align-items:center;gap:10px;display:inline-flex}@media (width<=1180px){.counter-grid,.two-column{grid-template-columns:1fr 1fr}.operator-panel{grid-column:1/-1}}@media (width<=760px){.topbar{grid-template-columns:minmax(0,1fr) auto;padding:14px}.status-line{grid-column:1/-1;justify-content:flex-start}.tabbar{padding:10px 14px}.tabbar button{flex:1 0 auto}.notice{margin:12px 14px 0}.workspace{padding:12px 14px 20px}.counter-grid,.two-column,.summary-grid{grid-template-columns:1fr}.daily-summary,.print-options{grid-template-columns:1fr 1fr}.primary-actions,.qr-block,.transaction-row,.transaction-list.expanded .transaction-row,.balance-banner,.manual-code{grid-template-columns:1fr}.secondary-action{min-height:48px}.field-grid{grid-template-columns:1fr}.denomination-grid{grid-template-columns:repeat(2,1fr)}.transaction-row b,.status-table strong,.transaction-actions{text-align:left;justify-content:flex-start}}
