:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #334155;--text: #f8fafc;--muted: #94a3b8;--accent: #22c55e;--accent-press: #16a34a;--danger: #ef4444;--warning: #f59e0b;--radius: 14px;--tap: 48px;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4;overscroll-behavior-y:contain}button,input,select,textarea{font:inherit;color:inherit}option{background:var(--surface);color:var(--text)}option:checked{background:var(--surface-2);color:var(--accent);font-weight:600}.app{display:flex;flex-direction:column;height:100dvh;max-width:720px;margin:0 auto;overflow:hidden}.btn{min-height:var(--tap);padding:0 16px;border:none;border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);color:#05240f;min-height:56px;font-size:18px}.btn--primary:active:not(:disabled){background:var(--accent-press)}.btn--ghost{background:transparent;border:1px solid var(--surface-2)}.btn--danger{background:transparent;color:var(--danger)}.btn--block{width:100%}.field{display:block;margin-bottom:16px}.field__label{display:block;margin-bottom:6px;color:var(--muted);font-size:14px}.input{width:100%;min-height:var(--tap);padding:0 14px;border:1px solid var(--surface-2);border-radius:var(--radius);background:var(--surface)}.input:focus{outline:2px solid var(--accent);outline-offset:1px}.notice{padding:12px 14px;border-radius:var(--radius);margin-bottom:12px;font-size:15px}.notice--error{background:#ef444426;border:1px solid var(--danger)}.notice--warning{background:#f59e0b26;border:1px solid var(--warning)}.muted{color:var(--muted)}.hotkeys,.hotkey{display:none}.offline{background:var(--warning);color:#3b2600;padding:10px 14px;font-weight:600;font-size:15px;text-align:center}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--surface)}.topbar__title{font-weight:700;font-size:16px}.topbar__subtitle{color:var(--muted);font-size:13px}.topbar__status{display:none}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:0 0 auto}.dot--on{background:var(--accent)}.sale{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.scanner{position:relative;background:#000;aspect-ratio:4 / 3;max-height:26dvh;flex:0 1 auto;min-height:0;overflow:hidden}.toolbar,.checkout,.tabs{flex:0 0 auto}.scanner video{width:100%;height:100%;object-fit:cover}.scanner__hint{position:absolute;inset:auto 0 0 0;padding:6px 10px;background:#0000008c;font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:8px}.scanner__restart{border:none;background:transparent;color:var(--accent);font-size:13px;font-weight:600;padding:6px 4px;white-space:nowrap}.scanner__fallback>div{display:flex;flex-direction:column;align-items:center}.scanner__frame{position:absolute;top:18%;right:8%;bottom:18%;left:8%;border:2px solid rgba(34,197,94,.8);border-radius:12px;pointer-events:none}.scanner__fallback{display:flex;align-items:center;justify-content:center;height:100%;padding:16px;text-align:center;color:var(--muted);font-size:15px}.toolbar{display:flex;gap:8px;padding:10px 12px;background:var(--surface)}.toolbar .btn{flex:1}.cart{flex:1 1 auto;min-height:0;overflow-y:auto;padding:8px 12px 12px;-webkit-overflow-scrolling:touch}.cart__empty{padding:32px 16px;text-align:center;color:var(--muted)}.line{background:var(--surface);border-radius:var(--radius);padding:12px;margin-bottom:8px}.line__head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.line__name{font-weight:600}.line__sku{color:var(--muted);font-size:13px}.line__total{font-weight:700;white-space:nowrap}.line__controls{display:flex;align-items:center;gap:8px}.qty-btn{width:var(--tap);height:var(--tap);border-radius:12px;border:none;background:var(--surface-2);color:var(--text);font-size:22px;font-weight:700}.qty-value{flex:1;min-height:var(--tap);border-radius:12px;border:1px solid var(--surface-2);background:transparent;font-weight:600}.checkout{padding:12px 12px calc(12px + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--surface-2)}.checkout__total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.checkout__label{color:var(--muted)}.checkout__value{font-size:26px;font-weight:800}.checkout__methods{display:flex;gap:8px;margin-bottom:10px}.checkout__methods .btn{flex:1}.checkout__methods .btn[aria-pressed=true]{outline:2px solid var(--accent)}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.numpad button{min-height:56px;font-size:22px;font-weight:600;border:none;border-radius:12px;background:var(--surface-2);color:var(--text)}.numpad button:active{background:#475569}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#090e1cf5;display:flex;align-items:flex-end;z-index:20}.sheet__body{width:100%;max-height:100dvh;overflow-y:auto;background:var(--bg);border-radius:20px 20px 0 0;padding:16px 16px calc(16px + var(--safe-bottom))}.sheet__title{font-size:18px;font-weight:700;margin:0 0 12px}.result{text-align:center;padding:24px 12px}.result__amount{font-size:32px;font-weight:800;margin:8px 0 4px}.search-result{width:100%;text-align:left;background:var(--surface);border:none;border-radius:var(--radius);padding:12px;margin-bottom:8px;color:var(--text);min-height:var(--tap)}.screen{flex:1 1 auto;min-height:0;overflow-y:auto;padding:16px}.screen--center{display:flex;flex-direction:column;justify-content:center}.stack>*+*{margin-top:12px}.row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--surface-2)}.screen__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.label{background:#fff;color:#000;border-radius:8px;padding:10px;text-align:center;margin-bottom:12px}.label__name{font-size:13px;font-weight:600;margin-bottom:4px}.label__barcode{width:100%;max-width:260px}.label__price{font-size:18px;font-weight:800}.receipt{background:#fff;color:#000;border-radius:8px;padding:10px 12px;font-family:Courier New,ui-monospace,monospace;font-size:12px;line-height:1.35;margin-bottom:12px}.receipt__logo{display:block;max-width:40mm;max-height:15mm;margin:0 auto 6px;filter:grayscale(1) contrast(2)}.receipt__title{text-align:center;font-weight:700;font-size:14px;margin-bottom:2px}.receipt__line{text-align:center}.receipt__rule{border-top:1px dashed #000000;margin:6px 0}.receipt__row{display:flex;justify-content:space-between;gap:8px}.receipt__item{margin-bottom:4px}.receipt__item-name{font-weight:700;overflow-wrap:anywhere}.receipt__total{font-size:15px;font-weight:700}.receipt__footer{text-align:center;overflow-wrap:anywhere}@page{size:80mm auto;margin:3mm}@media print{body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{position:absolute;top:0;left:0;width:100%;margin:0;padding:0;background:#fff;border-radius:0;box-shadow:none}.receipt{font-size:11px}}.tabs{display:flex;background:var(--surface);border-top:1px solid var(--surface-2);padding-bottom:var(--safe-bottom)}.tabs__item{flex:1;min-width:0;min-height:56px;border:none;background:transparent;color:var(--muted);font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px}.tabs__item[aria-current=page]{color:var(--accent)}.tabs__icon{font-size:20px;line-height:1}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:var(--tap);padding:0 14px;border:1px solid var(--surface-2);border-radius:999px;background:var(--surface);color:var(--text);font-weight:600}.chip[aria-pressed=true]{border-color:var(--accent);outline:1px solid var(--accent)}.badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:600;vertical-align:middle}.checkbox{display:flex;align-items:center;gap:10px;min-height:var(--tap);margin:4px 0 8px}.checkbox input{width:22px;height:22px}.row--button{width:100%;background:transparent;border:none;border-bottom:1px solid var(--surface-2);color:var(--text);text-align:left;min-height:var(--tap);display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0}.periods{display:flex;gap:8px;margin-bottom:12px}.periods .btn{flex:1}.periods .btn[aria-pressed=true]{outline:2px solid var(--accent)}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.tile{display:block;width:100%;text-align:left;background:var(--surface);border:none;border-radius:var(--radius);padding:12px;color:var(--text)}.tile__label{color:var(--muted);font-size:13px}.tile__value{font-size:20px;font-weight:800;margin:4px 0 2px;overflow-wrap:anywhere}.tile__hint{color:var(--muted);font-size:13px}.tile__change{font-weight:600}.section{background:var(--surface);border-radius:var(--radius);padding:12px;margin-bottom:12px}.section__title{font-weight:700;margin-bottom:4px}.section .row:last-child{border-bottom:none}.modes{display:flex;gap:8px;padding:8px 12px 0}.modes .btn{flex:1}.modes .btn[aria-pressed=true]{outline:2px solid var(--accent)}@media (min-width: 700px){.scanner{max-height:40vh}}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:13px;font-weight:600;color:var(--muted);padding:8px;border-bottom:1px solid var(--surface-2);white-space:nowrap}.table td{padding:10px 8px;border-bottom:1px solid var(--surface-2);vertical-align:middle}.table .th--num,.table .td--num{text-align:right;white-space:nowrap}.table .td--num .input{margin-left:auto}.table .input{min-height:40px;padding:0 10px}.table__actions{display:flex;gap:6px;justify-content:flex-end}.table__hint{color:var(--muted);font-size:13px}@media (max-width: 1023px){.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block;width:100%}.table tr{background:var(--surface);border-radius:var(--radius);padding:12px;margin-bottom:8px}.table td{border:none;padding:4px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.table td:before{content:attr(data-label);color:var(--muted);font-size:13px;flex:0 0 auto}.table td:empty{display:none}.table td--num{text-align:right}}.shell,.shell__main{display:contents}.sidebar{display:none}.topbar__actions{display:flex;gap:8px}@media (min-width: 1024px){:root{--bg: #2b2c2f;--surface: #36373b;--surface-2: #4a4c51;--text: #eceef0;--muted: #a9aeb4;--radius: 8px;--tap: 36px}.app{max-width:none;overflow:visible}.btn{min-height:36px;padding:0 14px;font-size:14px;font-weight:500}.btn--primary,.input,.qty-value{min-height:36px;font-size:14px}.qty-btn{width:32px;height:32px;font-size:18px;border-radius:6px}.chip{min-height:32px;padding:0 12px;font-size:13px;font-weight:500}.field__label{font-size:13px}.numpad{gap:6px}.numpad button{min-height:38px;font-size:15px;font-weight:500;border-radius:6px}.sidebar__item{min-height:36px;font-size:14px;font-weight:500}.sidebar__icon{font-size:16px}h2{font-size:20px}h3{font-size:17px}.tile__value{font-size:19px}.checkout__value{font-size:24px}.shell{display:flex;flex:1 1 auto;min-height:0;width:100%}.shell__main{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0}.sidebar{display:flex;flex-direction:column;flex:0 0 248px;background:var(--surface);border-right:1px solid var(--surface-2);padding:16px 12px;overflow-y:auto}.sidebar__brand{padding:8px 10px 20px}.sidebar__title{font-weight:700;font-size:16px}.sidebar__subtitle{color:var(--muted);font-size:13px;margin-top:2px}.sidebar__nav{display:flex;flex-direction:column;gap:2px}.sidebar__foot{margin-top:auto;display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--surface-2);padding-top:8px}.sidebar__item{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 10px;border:none;border-radius:var(--radius);background:transparent;color:var(--muted);font-weight:600;font-size:14px;text-align:left}.sidebar__item[aria-current=page]{background:var(--surface-2);color:var(--text)}.sidebar__icon{font-size:18px;line-height:1}.topbar__actions,.topbar__identity{display:none}.topbar{padding:16px 32px;min-height:64px;border-bottom:1px solid var(--surface-2)}.topbar__status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;background:none;border:0;font-family:inherit;text-align:left;padding:6px 10px;margin:-6px -10px;border-radius:8px;cursor:pointer}.topbar__status:hover{background:var(--surface-2);color:var(--text)}.screen{padding:24px 32px;max-width:1280px}.btn--block{width:auto;min-width:150px}.periods .btn,.modes .btn{flex:0 0 auto;min-width:0}.tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.sheet{align-items:center;justify-content:center;padding:24px}.sheet{background:#101113b8}.sheet__body{max-width:560px;max-height:85dvh;border-radius:20px;padding:20px;background:var(--surface);border:1px solid var(--surface-2);box-shadow:0 16px 48px #00000073}.sheet__body .input,.sheet__body select,.sheet__body textarea{background:var(--bg);border-color:var(--surface-2)}.input::placeholder{color:var(--muted);opacity:1}.sheet__body--wide{max-width:1180px}.sale{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"toolbar side" "cart side";grid-template-rows:auto 1fr;gap:0 16px;padding:16px 32px 24px}.sale .scanner{display:none}.sale .toolbar{grid-area:toolbar;background:transparent;padding:0 0 12px}.sale .toolbar .btn{flex:0 0 auto;min-width:180px}.sale .cart{grid-area:cart;padding:0}.sale .checkout{grid-area:side;align-self:stretch;display:flex;flex-direction:column;border:1px solid var(--surface-2);border-radius:var(--radius);padding:16px}.sale .checkout__total:last-of-type{margin-top:auto}.sale .checkout__value{font-size:32px}.hotkeys{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;color:var(--muted);font-size:13px}.hotkey{display:inline-block;min-width:22px;padding:1px 6px;margin-right:4px;border:1px solid var(--surface-2);border-radius:4px;font-family:ui-monospace,Cascadia Mono,monospace;font-size:12px;text-align:center}.line--active{outline:2px solid var(--accent);outline-offset:-2px}.numpad{max-width:320px}.numpad button{min-height:44px;font-size:18px}.screen--form{max-width:460px;margin-inline:auto;background:var(--surface);border-radius:12px;padding:24px;margin-top:24px;align-self:flex-start}.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;align-items:start;margin-bottom:12px}.panels .section{margin-bottom:0}.tabs{display:none}}
