:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--primary: #3b82f6;--accent: #10b981;--text: #f8fafc;--text-dim: #94a3b8;--border: #475569;--error: #ef4444;--warning: #f59e0b;--radius: 12px;--gap: 12px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-size:16px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;font-size:inherit;border:none;background:none;cursor:pointer;color:inherit}input{font-family:inherit;font-size:inherit}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.topbar{display:flex;justify-content:space-between;align-items:center;padding:8px var(--gap);padding-top:calc(8px + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.brand{font-size:16px;font-weight:700;color:var(--primary)}.today{display:flex;align-items:center;gap:8px}.today-total{font-size:16px;font-weight:700;color:var(--accent)}.today-count{font-size:12px;color:var(--text-dim)}.main{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:16px}.tabbar{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;z-index:50}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;font-size:11px;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:.3px;transition:all .15s}.tab.active{color:var(--accent)}.tab-icon{font-size:20px;line-height:1;margin-bottom:2px}.tab:active{opacity:.7}.banner{padding:12px var(--gap);font-size:14px;font-weight:500;text-align:center;cursor:pointer}.banner.error{background:var(--error);color:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;font-size:15px;font-weight:600;border-radius:var(--radius);background:var(--surface-2);color:var(--text);transition:all .15s;min-height:48px}.btn:active{transform:scale(.98);opacity:.8}.btn-primary{background:var(--primary);color:#fff}.btn-accent{background:var(--accent);color:#fff}.btn-del{background:var(--error);color:#fff;width:36px;height:36px;min-height:auto;padding:0;font-size:18px;border-radius:8px}.btn-del.small{width:32px;height:32px;font-size:18px}.btn-icon{width:36px;height:36px;min-height:auto;padding:0;font-size:18px;background:transparent}.btn-add{padding:12px 20px;font-size:15px;font-weight:600;border-radius:var(--radius);background:var(--accent);color:#fff;transition:all .15s}.btn-add:disabled{opacity:.5;cursor:not-allowed}.btn-add.full{width:100%}.btn-save{padding:12px 20px;font-size:15px;font-weight:600;border-radius:var(--radius);background:var(--primary);color:#fff;transition:all .15s}.btn-save.full{width:100%}.btn-save:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{padding:12px 16px;font-size:18px;font-weight:700;border-radius:var(--radius);background:var(--surface-2);color:var(--text)}.btn-edit{padding:8px 14px;font-size:13px;font-weight:600;border-radius:8px;background:var(--surface-2);color:var(--text)}.btn-clear{padding:12px 20px;font-size:15px;font-weight:600;border-radius:var(--radius);background:var(--surface-2);color:var(--text)}.input{width:100%;padding:12px 14px;font-size:15px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;transition:border-color .15s}.input:focus{border-color:var(--primary)}.input::placeholder{color:var(--text-dim)}.input-price{font-variant-numeric:tabular-nums;text-align:right}.sku-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:var(--gap)}.sku-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:80px;transition:all .1s}.sku-btn:active{background:var(--surface-2);transform:scale(.98)}.sku-btn.favorite{border-color:var(--accent)}.sku-name{font-size:13px;font-weight:500;text-align:center;line-height:1.3;margin-bottom:4px}.sku-price{font-size:14px;font-weight:700;color:var(--accent)}.sku-empty{grid-column:1 / -1;text-align:center;padding:40px var(--gap);color:var(--text-dim)}.cart{border-top:1px solid var(--border);background:var(--surface);max-height:200px;overflow-y:auto}.cart-empty{text-align:center;padding:20px;color:var(--text-dim);font-size:14px}.cart-list{list-style:none;padding:var(--gap)}.cart-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--border)}.cart-info{flex:1;min-width:0}.cart-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cart-unit{font-size:12px;color:var(--text-dim)}.qty{display:flex;align-items:center;gap:4px}.qty-btn{width:28px;height:28px;border-radius:6px;background:var(--surface-2);font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center}.qty-val{width:36px;height:28px;border-radius:6px;background:var(--bg);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center}.cart-line{font-size:15px;font-weight:600;color:var(--accent);min-width:60px;text-align:right}.cart-x{width:28px;height:28px;border-radius:6px;background:var(--error);color:#fff;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center}.totals{padding:var(--gap);border-top:1px solid var(--border);background:var(--surface)}.totals-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;color:var(--text-dim)}.totals-row.total{font-size:20px;font-weight:700;color:var(--text);padding-top:12px;border-top:1px solid var(--border);margin-top:8px}.totals-row span:last-child{font-variant-numeric:tabular-nums}.adjust{margin:12px 0}.adjust-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}.at{padding:10px 4px;font-size:13px;font-weight:600;border-radius:8px;background:var(--surface-2);color:var(--text-dim);transition:all .15s}.at.active{background:var(--primary);color:#fff}.adjust-input{width:100%;padding:14px 16px;font-size:18px;background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;text-align:center;font-variant-numeric:tabular-nums}.adjust-input:focus{border-color:var(--primary)}.adjust-input-button{width:100%;padding:14px 16px;font-size:18px;font-weight:600;background:var(--bg);border:2px dashed var(--border);border-radius:var(--radius);color:var(--text-dim);text-align:center;font-variant-numeric:tabular-nums}.settotal-ui{display:flex;flex-direction:column;gap:12px}.quick-round{display:flex;align-items:center;justify-content:center;gap:8px}.quick-label{font-size:13px;color:var(--text-dim);margin-right:4px}.round-btn{padding:8px 14px;font-size:13px;font-weight:600;border-radius:8px;background:var(--surface-2);color:var(--text)}.round-btn:active{background:var(--accent);color:#fff}.adjust-preview{text-align:center;font-size:14px;color:var(--text-dim);font-style:italic}.actions{display:grid;grid-template-columns:1fr 2fr;gap:12px;padding:var(--gap);padding-bottom:calc(var(--gap) + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border)}.btn-record{padding:16px;font-size:17px;font-weight:700;background:var(--accent);color:#fff;border-radius:var(--radius);text-transform:uppercase;letter-spacing:.5px}.btn-record:disabled{opacity:.5;cursor:not-allowed}.keypad-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:flex-end;justify-content:center;z-index:9999;padding:var(--gap);padding-bottom:calc(var(--gap) + env(safe-area-inset-bottom))}.keypad{width:100%;max-width:400px;background:var(--surface);border-radius:var(--radius);padding:var(--gap);position:relative;z-index:10000;margin-bottom:calc(60px + env(safe-area-inset-bottom))}.keypad-head{text-align:center;margin-bottom:12px;padding:12px;background:var(--bg);border-radius:10px}.keypad-name{font-size:13px;color:var(--text-dim);margin-bottom:4px}.keypad-display{font-size:32px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.keypad-preview{text-align:center;font-size:14px;color:var(--text-dim);margin-bottom:8px}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.kp{padding:16px;font-size:20px;font-weight:600;background:var(--surface-2);border-radius:10px;color:var(--text)}.kp:active{background:var(--primary);color:#fff}.keypad-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.flash{position:fixed;top:48px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;padding:12px 24px;border-radius:var(--radius);font-size:15px;font-weight:600;z-index:400;box-shadow:0 4px 20px #0000004d;animation:flash-in .2s ease-out}@keyframes flash-in{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.skus{padding:var(--gap);padding-bottom:calc(var(--gap) + env(safe-area-inset-bottom))}.sku-form{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;padding:16px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border)}.sku-form .input-price{text-align:left}.sku-list{list-style:none}.sku-row{display:grid;grid-template-columns:36px 1fr auto auto;align-items:center;gap:8px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px}.star{width:32px;height:32px;border-radius:6px;background:var(--surface-2);font-size:18px;color:var(--text-dim);display:flex;align-items:center;justify-content:center}.star.on{color:var(--warning);background:var(--warning);background-color:#f59e0b33}.sku-row-info{min-width:0;cursor:pointer}.sku-row-name{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.sku-row-price{font-size:14px;color:var(--accent);font-weight:600}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;background:var(--primary);color:#fff;border-radius:999px}.badge-accent{background:var(--accent)}.badge-warn{background:var(--warning);color:var(--bg)}.chip{display:inline-flex;align-items:center;padding:6px 12px;font-size:13px;font-weight:500;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text)}.chip-small{padding:4px 10px;font-size:12px}.timeline{padding:var(--gap)}.sale-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.sale-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--surface-2);border-bottom:1px solid var(--border)}.sale-time{font-size:13px;font-weight:600;color:var(--text-dim)}.sale-total{font-size:16px;font-weight:700;color:var(--accent)}.sale-items{padding:10px 14px}.sale-item-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px}.sale-item-name{color:var(--text)}.sale-item-price{color:var(--text-dim);font-weight:500}.sale-note{padding:8px 14px;font-size:13px;color:var(--text-dim);font-style:italic;border-top:1px dashed var(--border)}.sale-actions{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border)}.empty{text-align:center;padding:40px var(--gap);color:var(--text-dim)}.empty-history{text-align:center;padding:60px var(--gap);color:var(--text-dim)}.settings{padding:var(--gap);padding-bottom:calc(var(--gap) + env(safe-area-inset-bottom))}.settings-section{margin-bottom:24px}.settings-heading{font-size:16px;font-weight:700;color:var(--text);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.settings-desc{font-size:13px;color:var(--text-dim);margin:-8px 0 12px}.settings-form{display:flex;flex-direction:column;gap:10px}.settings-form.inline{flex-direction:row;gap:8px}.settings-form.inline .input{flex:1}.settings-label{font-size:13px;font-weight:600;color:var(--text-dim);margin-top:4px}.settings-label.small{font-size:11px;text-transform:uppercase;letter-spacing:.5px}.currency-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.preset-btn{padding:8px 14px;font-size:14px;font-weight:600;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text)}.preset-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.preset-btn:active{transform:scale(.95)}.remarks-section{margin:12px var(--gap);padding:12px 14px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border)}.remarks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.remarks-title{font-size:13px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.remarks-toggle{width:28px;height:28px;border-radius:8px;background:var(--surface-2);font-size:18px;font-weight:700;color:var(--text);display:flex;align-items:center;justify-content:center}.remarks-toggle:active{background:var(--accent);color:#fff}.remark-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.remark-chip{padding:8px 14px;font-size:14px;font-weight:500;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text);transition:all .1s}.remark-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.remark-chip:active{transform:scale(.95)}.chip-check{margin-right:4px}.remark-custom{margin-top:8px}.remark-input{font-size:14px}.remarks-preview{margin-top:10px;padding:8px 12px;background:var(--surface-2);border-radius:8px;font-size:13px;color:var(--text-dim)}.empty-remarks{text-align:center;padding:16px;color:var(--text-dim);font-size:14px}.rule-inputs{display:flex;align-items:flex-end;gap:12px}.rule-field{flex:1}.rule-field .input{width:100%}.rule-arrow{font-size:18px;font-weight:700;color:var(--text-dim);padding-bottom:14px}.rule-list,.remark-list{list-style:none;margin:12px 0 0;padding:0}.rule-row,.remark-row{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--surface-2);border-radius:10px;margin-bottom:8px}.rule-desc{font-size:14px;line-height:1.4;color:var(--text)}.rule-desc strong{color:var(--primary);font-weight:700}.rule-discount{color:var(--accent);font-size:13px}.remark-text{font-size:14px;color:var(--text)}.about{text-align:center;padding:24px;color:var(--text-dim)}.about-name{font-size:16px;font-weight:700;display:block;margin-bottom:4px}.about-version{font-size:13px;opacity:.7}
