@charset "UTF-8";.q-scrim{position:fixed;inset:0;background:#0f172a73;z-index:40}.q-sheet{position:fixed;z-index:41;background:var(--surface);display:flex;flex-direction:column;gap:12px;overflow-y:auto;left:0;right:0;bottom:0;max-height:92vh;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));border-radius:14px 14px 0 0}@media(min-width:768px){.q-sheet{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(420px,100vw - 48px);max-height:86vh;border-radius:12px}}.q-sheet-title{font:700 17px var(--f-head);margin:0}.q-sheet-sub{font:500 12.5px var(--f-body);color:var(--text-2);margin:0}.q-sheet-actions{display:flex;gap:8px;margin-top:4px}.q-sheet-actions>*{flex:1;min-height:48px}.q-sheet-stack{display:flex;flex-direction:column;gap:8px}.q-sheet-stack>*{min-height:48px}.q-keypad-display{background:var(--bg);border-radius:10px;padding:14px;text-align:center}.q-entry{font:700 30px var(--f-mono);color:var(--text)}.q-entry-note{font:600 12.5px var(--f-body);color:var(--text-2);margin-top:2px}.q-entry-note.ok{color:var(--success)}.q-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px}.q-preset{border:1px solid var(--border);background:var(--surface);cursor:pointer;min-height:44px;border-radius:8px;font:600 13px var(--f-body)}.q-preset:hover:not(:disabled){border-color:var(--primary)}.q-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.q-key{border:1px solid var(--border);background:var(--surface);cursor:pointer;min-height:56px;border-radius:10px;font:600 18px var(--f-body)}.q-key:hover:not(:disabled){border-color:var(--primary)}.q-pick-row{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-height:56px;padding:10px 12px;margin-bottom:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface);text-align:left;cursor:pointer}.q-pick-row:hover:not(:disabled){border-color:var(--primary)}.q-pick-row:disabled{opacity:.6;cursor:not-allowed}.q-pick-list{list-style:none;margin:0;padding:0;max-height:44vh;overflow-y:auto}.q-pick-main{display:flex;flex-direction:column;gap:2px;min-width:0}.q-pick-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-pick-title{font:600 13px var(--f-body);color:var(--text);overflow-wrap:anywhere}.q-pick-note{font:500 11.5px var(--f-body);color:var(--text-2);overflow-wrap:anywhere}.q-pick-money{font:700 13px var(--f-mono);white-space:nowrap}:root{--bp-medium: 768px;--bp-wide: 1024px;--bp-nav: 1400px;--tap-target: 44px;--primary: oklch(52% .19 258);--primary-d: oklch(44% .19 258);--primary-tint: oklch(94% .03 258);--accent: oklch(70% .13 210);--sidebar-bg: oklch(21% .03 262);--sidebar-bg-2: oklch(27% .03 262);--sidebar-border: oklch(28% .03 262);--sidebar-active: oklch(30% .06 258);--sidebar-text: oklch(80% .02 260);--sidebar-text-2: oklch(58% .02 260);--bg: oklch(96% .004 260);--surface: oklch(100% 0 0);--border: oklch(89% .008 260);--text: oklch(24% .02 260);--text-2: oklch(52% .015 260);--success: oklch(46% .14 149);--success-tint: oklch(94% .05 149);--warning: oklch(50% .15 68);--warning-tint: oklch(95% .06 80);--error: oklch(50% .21 26);--error-tint: oklch(95% .05 20);--info: oklch(48% .15 258);--info-tint: oklch(95% .03 245);--f-head: "Public Sans", sans-serif;--f-body: "Public Sans", sans-serif;--f-mono: "IBM Plex Mono", monospace;--sp-1: 4px;--sp-2: 6px;--sp-3: 8px;--sp-4: 12px;--sp-5: 16px;--sp-6: 20px;--sp-7: 24px;--sp-8: 28px;--sp-9: 32px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-pill: 999px;--shadow-card: 0 4px 18px rgba(20, 25, 40, .08);--shadow-modal: 0 20px 50px rgba(20, 25, 40, .25);--overlay: rgba(15, 20, 30, .5)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--f-body);font-size:14px;-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body.drawer-locked{overflow:hidden}h1,h2,h3,p{margin:0}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}.q-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 16px;border-radius:var(--r-md);border:1px solid transparent;font:600 13px var(--f-body);text-decoration:none;white-space:nowrap}.q-btn:disabled{opacity:.5;cursor:default}@media(max-width:1023.98px){.q-btn{min-height:44px;padding:11px 18px;font-size:13.5px}}.q-btn-primary{background:var(--primary);color:#fff}.q-btn-primary:hover:not(:disabled){background:var(--primary-d)}.q-btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.q-btn-ghost:hover:not(:disabled){background:var(--bg)}.q-btn-danger{background:var(--error-tint);color:var(--error);border-color:transparent}.q-btn-danger:hover:not(:disabled){background:var(--error);color:#fff}.q-btn-danger-ghost{background:var(--surface);color:var(--error);border-color:var(--error)}.q-btn-danger-ghost:hover:not(:disabled){background:var(--error-tint)}.q-btn-sm{min-height:32px;padding:5px 11px;font-size:12.5px}@media(max-width:1023.98px){.q-btn-sm{min-height:44px;padding:10px 14px;font-size:13px}}.q-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.q-field{display:flex;flex-direction:column;gap:6px}.q-label{font:700 10.5px var(--f-body);letter-spacing:.05em;text-transform:uppercase;color:var(--text-2)}.q-hint{font:400 11.5px var(--f-body);color:var(--text-2);line-height:1.45}.q-input,.q-select,.q-textarea{width:100%;min-height:40px;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);font-size:13.5px;color:var(--text)}.q-input:focus,.q-select:focus,.q-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}@media(max-width:1023.98px){.q-input,.q-select,.q-textarea{min-height:44px;font-size:16px}}.q-textarea{min-height:84px;resize:vertical}@media(max-width:1023.98px){.q-textarea{min-height:96px}}.q-check{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--text)}.q-check input{width:18px;height:18px;accent-color:var(--primary)}@media(max-width:1023.98px){.q-check{min-height:44px}.q-check input{width:22px;height:22px}}.q-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--r-pill);font:700 10.5px var(--f-body);letter-spacing:.03em;text-transform:uppercase}.q-pill-success{background:var(--success-tint);color:var(--success)}.q-pill-warning{background:var(--warning-tint);color:var(--warning)}.q-pill-error{background:var(--error-tint);color:var(--error)}.q-pill-info{background:var(--info-tint);color:var(--info)}.q-pill-muted{background:var(--bg);color:var(--text-2)}.variant-chip{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:var(--r-sm);background:var(--primary-tint);color:var(--primary-d);font:600 11.5px var(--f-body);white-space:nowrap}.q-money-pos{color:var(--success)}.q-money-neg{color:var(--error)}.q-scan-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:4px 12px;border:1px solid transparent;border-radius:var(--r-pill);background:var(--primary-tint);color:var(--primary);font:600 11.5px var(--f-body);cursor:pointer}.q-scan-chip:hover:not(:disabled){border-color:var(--primary)}.q-scan-chip:disabled{opacity:.5;cursor:not-allowed}.q-scan-chip.done{background:var(--success-tint);color:var(--success)}.q-scan-chip .chip-count{font-size:11.5px}.mono{font-family:var(--f-mono);font-size:13px}.muted{color:var(--text-2);font-size:12.5px}.strong{font-weight:600;color:var(--text)}.cell-sub{display:block;color:var(--text-2);font-size:12.5px}.q-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}.q-modal{width:min(460px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-modal);padding:20px 24px 24px;display:flex;flex-direction:column;gap:14px}.q-modal-wide{width:min(640px,100%)}.q-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.q-modal-title{font:700 15px var(--f-head);color:var(--text)}.q-modal-sub{font:500 12.5px var(--f-body);color:var(--text-2);margin-top:3px}.q-modal-close{border:none;background:transparent;font:600 18px var(--f-body);line-height:1;color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-10px -12px -10px 0;cursor:pointer}.q-modal-close:hover{color:var(--text)}.q-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.screen-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-bottom:16px}.screen-actions:empty{display:none}.hint{font:500 12px var(--f-body);color:var(--text-2)}.q-error{font:500 12.5px var(--f-body);color:var(--error);background:var(--error-tint);border-radius:var(--r-md);padding:8px 10px}.q-alert{font:500 12.5px var(--f-body);border-radius:var(--r-md);padding:9px 11px}.q-alert-warning{color:var(--warning);background:var(--warning-tint)}.q-alert-error{color:var(--error);background:var(--error-tint)}.q-alert-info{color:var(--info);background:var(--info-tint)}.q-link{background:none;border:none;padding:0;font:600 12.5px var(--f-body);color:var(--primary);cursor:pointer;text-align:left}.q-link:hover:not(:disabled){text-decoration:underline}.q-link:disabled{color:var(--text-2);cursor:not-allowed}@media(max-width:1023.98px){.q-link{min-height:44px;display:inline-flex;align-items:center}}.q-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.q-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:767.98px){.q-grid-2{grid-template-columns:1fr}.q-grid-3{grid-template-columns:1fr 1fr}}.q-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 16px;align-items:start}.q-form-grid-tight{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.q-span-2{grid-column:span 2}.q-span-3{grid-column:span 3}.q-row-break{grid-column:1/-1;height:0;padding:0;margin:0}.q-field-sm{max-width:200px}@media(max-width:767.98px){.q-span-2,.q-span-3{grid-column:span 1}.q-field-sm{max-width:none}}
