:root{--accent: #0db8a5;--accent-strong: #0a9c8c;--radius: 4px;--gap-1: 4px;--gap-2: 8px;--gap-3: 12px;--gap-4: 16px;--gap-5: 24px;--font: "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "Cascadia Mono", "Consolas", ui-monospace, monospace;--text-xs: 12px;--text-sm: 13px;--text-md: 15px;--text-lg: 20px;--text-total: 44px;--row-height: 32px;--control-height: 34px}:root,[data-theme=light]{--bg: #f5f6f7;--surface: #ffffff;--surface-2: #eef0f2;--border: #d3d7dc;--border-strong: #b5bcc4;--fg: #14181d;--fg-muted: #5d6874;--fg-faint: #8a949f;--accent-fg: #ffffff;--accent-bg-soft: #e2f6f3;--danger: #c8302c;--danger-bg: #fdeceb;--warn: #a86a00;--warn-bg: #fdf3e0;--ok: #1a7f4b;--ok-bg: #e7f5ed}[data-theme=dark]{--bg: #0f1216;--surface: #161b21;--surface-2: #1d232b;--border: #2a323c;--border-strong: #3d4854;--fg: #e6edf3;--fg-muted: #9aa6b2;--fg-faint: #6e7a87;--accent-fg: #04120f;--accent-bg-soft: #0d2b28;--danger: #f0655f;--danger-bg: #2b1614;--warn: #e0a458;--warn-bg: #2a2013;--ok: #4cc38a;--ok-bg: #11291d}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:var(--text-md);user-select:none}input,textarea{user-select:text}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.k-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--gap-2);min-height:var(--control-height);padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--fg);font:inherit;cursor:pointer;white-space:nowrap}.k-btn:hover:not(:disabled){border-color:var(--accent)}.k-btn:active:not(:disabled){background:var(--surface-2)}.k-btn:disabled{opacity:.45;cursor:not-allowed}.k-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}.k-btn--primary:hover:not(:disabled){background:var(--accent-strong)}.k-btn--danger{border-color:var(--danger);color:var(--danger)}.k-btn--ghost{border-color:transparent;background:transparent}.k-btn--block{width:100%}.k-btn__key{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-faint);border:1px solid var(--border);border-radius:3px;padding:0 4px}.k-btn--primary .k-btn__key{color:var(--accent-fg);border-color:color-mix(in srgb,var(--accent-fg) 40%,transparent)}.k-field{display:flex;flex-direction:column;gap:var(--gap-1)}.k-field__label{font-size:var(--text-xs);color:var(--fg-muted)}.k-field__hint{font-size:var(--text-xs);color:var(--fg-faint)}.k-input{height:var(--control-height);padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--fg);font:inherit}.k-input--invalid{border-color:var(--danger)}.k-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.k-panel--danger{border-color:var(--danger)}.k-panel--warn{border-color:var(--warn)}.k-panel--ok{border-color:var(--ok)}.k-panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-3);padding:var(--gap-2) var(--gap-3);border-bottom:1px solid var(--border);background:var(--surface-2)}.k-panel__title{margin:0;font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;text-transform:uppercase;color:var(--fg-muted)}.k-panel__body{padding:var(--gap-3)}.k-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--fg-faint)}.k-dot--ready{background:var(--ok)}.k-dot--busy{background:var(--warn)}.k-dot--offline{background:var(--fg-faint)}.k-dot--error{background:var(--danger)}.k-dot--needs_attention{background:var(--warn)}.k-amount__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted)}.k-amount__value{font-size:var(--text-total);line-height:1.05;font-weight:600;letter-spacing:-.02em}.k-amount--accent .k-amount__value{color:var(--accent)}.k-amount--danger .k-amount__value{color:var(--danger)}.k-error{border:1px solid var(--danger);background:var(--danger-bg);border-radius:var(--radius);padding:var(--gap-3)}.k-error__text{font-size:var(--text-lg);line-height:1.3}.k-error__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-3);margin-top:var(--gap-3)}.k-error__code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--fg-faint)}.k-numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-1)}.k-numpad .k-btn{justify-content:center;min-height:48px;font-size:var(--text-lg)}.k-numpad__enter{grid-column:span 2}.k-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.k-table th{text-align:left;font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--fg-muted);padding:0 8px var(--gap-2);border-bottom:1px solid var(--border)}.k-table td{height:var(--row-height);padding:0 8px;border-bottom:1px solid var(--border)}.k-table tbody tr:hover{background:var(--surface-2)}.login{display:grid;place-items:center;height:100%;padding:var(--gap-4)}.login__box{width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--gap-3)}.login__brand{font-size:var(--text-lg);font-weight:700;letter-spacing:.04em;text-align:center}.login__brand span{color:var(--accent);font-weight:500}.login__fields{display:flex;flex-direction:column;gap:var(--gap-3);margin-bottom:var(--gap-3)}.login__pad{margin:var(--gap-3) 0}.login__error{padding:var(--gap-2) var(--gap-3);border:1px solid var(--danger);background:var(--danger-bg);border-radius:var(--radius);color:var(--danger)}.login__hint{text-align:center;font-size:var(--text-xs);color:var(--fg-faint)}.pos{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.9fr);gap:var(--gap-4);padding:var(--gap-4);height:100%;overflow:hidden}.pos__left,.pos__right{display:flex;flex-direction:column;gap:var(--gap-3);min-width:0;overflow:auto}.pos__search .k-input{height:44px;font-size:var(--text-lg)}.pos__found tr{cursor:pointer}.pos__old{color:var(--fg-faint);text-decoration:line-through;font-size:var(--text-xs)}.pos__muted{color:var(--fg-muted);font-size:var(--text-xs)}.pos__need{color:var(--warn)}.pos__ok{color:var(--ok)}.pos__empty{padding:var(--gap-5) var(--gap-3);text-align:center;color:var(--fg-muted)}.pos__row--selected{background:var(--accent-bg-soft)}.pos__qty{width:70px;height:28px;padding:0 6px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--fg);font:inherit;text-align:right}.pos__shift{display:flex;justify-content:space-between;margin-bottom:var(--gap-2)}.pos__warn{padding:var(--gap-2);margin-bottom:var(--gap-2);border:1px solid var(--warn);background:var(--warn-bg);border-radius:var(--radius);font-size:var(--text-sm)}.pos__split{display:flex;gap:var(--gap-2);margin:var(--gap-3) 0}.pos__receipt{flex:1;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:var(--gap-2);background:var(--surface-2)}.pos__receipt-total{font-size:var(--text-lg);font-weight:600}.pos__hint{color:var(--fg-faint);font-size:var(--text-xs)}.pos__problems{margin:var(--gap-3) 0;padding-left:18px;color:var(--warn);font-size:var(--text-sm)}.pos__devices{display:flex;align-items:center;gap:var(--gap-2);font-size:var(--text-sm);color:var(--fg-muted)}.pos__flash{position:fixed;left:50%;bottom:24px;transform:translate(-50%);padding:var(--gap-3) var(--gap-4);border-radius:var(--radius);border:1px solid var(--ok);background:var(--ok-bg);color:var(--fg);font-size:var(--text-md);cursor:pointer;max-width:70vw;z-index:40}.pos__flash--warn{border-color:var(--warn);background:var(--warn-bg)}.pos__flash--danger{border-color:var(--danger);background:var(--danger-bg)}.pos__error{position:fixed;right:24px;bottom:24px;max-width:420px;z-index:50}.pay{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;z-index:60;padding:var(--gap-4)}.pay__box{width:min(880px,100%);max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:var(--gap-4)}.pay__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--gap-3)}.pay__head h2{margin:0;font-size:var(--text-lg)}.pay__numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-3);padding:var(--gap-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin-bottom:var(--gap-3)}.pay__stage{padding:var(--gap-3);margin-bottom:var(--gap-3);border:1px solid var(--accent);background:var(--accent-bg-soft);border-radius:var(--radius);font-size:var(--text-lg)}.pay__error{padding:var(--gap-3);margin-bottom:var(--gap-3);border:1px solid var(--danger);background:var(--danger-bg);border-radius:var(--radius)}.pay__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap-4);margin-bottom:var(--gap-3)}.pay__pad{margin-top:var(--gap-3)}.pay__methods{display:flex;flex-direction:column;gap:var(--gap-2)}.pay__list{margin-top:var(--gap-2)}.pay__unknown{color:var(--danger);font-size:var(--text-xs)}@media (max-width: 1000px){.pos{grid-template-columns:minmax(0,1fr);overflow:auto}.pay__grid{grid-template-columns:minmax(0,1fr)}}.mode__row{display:flex;gap:var(--gap-2)}.mode__row .k-btn{flex:1;justify-content:center}.mode__note{margin:var(--gap-2) 0 0;font-size:var(--text-xs);color:var(--fg-muted);line-height:1.4}.mode__scenarios{margin-top:var(--gap-3);max-height:260px;overflow:auto}.mode__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);margin-bottom:var(--gap-1)}.mode__scenario{display:flex;gap:var(--gap-2);width:100%;text-align:left;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);padding:5px 8px;margin-bottom:3px;cursor:pointer;font:inherit;font-size:var(--text-xs)}.mode__scenario:hover{border-color:var(--accent)}.mode__scenario--active{border-color:var(--accent);background:var(--accent-bg-soft)}.mode__scenario-id{font-family:var(--font-mono);color:var(--fg-muted);min-width:130px}.app{display:flex;flex-direction:column;height:100%}.app__head{display:flex;align-items:center;gap:var(--gap-4);padding:var(--gap-2) var(--gap-4);border-bottom:1px solid var(--border);background:var(--surface)}.app__brand{font-weight:700;letter-spacing:.04em}.app__brand span{color:var(--accent);font-weight:500}.app__conn{display:flex;align-items:center;gap:var(--gap-2);margin-left:auto;font-size:var(--text-sm);color:var(--fg-muted)}.app__grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--gap-4);padding:var(--gap-4);overflow:auto;align-content:start}.app__col{display:flex;flex-direction:column;gap:var(--gap-4);min-width:0}.app__muted{color:var(--fg-muted);font-size:var(--text-xs)}.app__hint{color:var(--fg-faint);font-size:var(--text-xs);margin-top:2px}.app__split{display:flex;gap:var(--gap-3);margin:var(--gap-3) 0}.app__receipt{flex:1;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:var(--gap-2) var(--gap-3);background:var(--surface-2)}.app__receipt-total{font-size:var(--text-lg);font-weight:600}.app__actions{display:flex;flex-direction:column;gap:var(--gap-2)}.app__stage{margin-top:var(--gap-3);padding:var(--gap-3);border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-bg-soft);font-size:var(--text-lg)}.app__log{list-style:none;margin:0;padding:0;font-size:var(--text-sm);max-height:320px;overflow:auto}.app__log li{display:flex;gap:var(--gap-2);padding:3px 0;border-bottom:1px solid var(--border)}.app__log-time{color:var(--fg-faint);font-size:var(--text-xs);min-width:68px}.app__log--ok{color:var(--ok)}.app__log--warn{color:var(--warn)}.app__log--danger{color:var(--danger)}@media (max-width: 1100px){.app__grid{grid-template-columns:minmax(0,1fr)}}.app__boot{display:grid;place-items:center;height:100%;color:var(--fg-muted)}.app__user{font-size:var(--text-sm);line-height:1.2;text-align:right}.app__settings{padding:0 var(--gap-4) var(--gap-3);max-width:520px}.app__banner{margin:0 var(--gap-4) var(--gap-3);padding:var(--gap-3);border:1px solid var(--warn);background:var(--warn-bg);border-radius:var(--radius);font-size:var(--text-sm);line-height:1.4}
