:root{--ink: #1a1a1a;--paper: #fff;--ember: #ea4a06;--bg: var(--ink);--surface: var(--paper);--surface-2: var(--paper);--line: var(--ink);--text: var(--paper);--muted: rgba(255, 255, 255, .72);--accent: var(--ember);--accent-text: var(--ink);--ok: #1f8a4d;--danger: #c62828;--warn: #8a5a00;--font-display: "Righteous", "Arial Black", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--font-sans: "IBM Plex Sans", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 var(--font-sans)}body{min-height:100dvh;overscroll-behavior-y:none}#app{min-height:100dvh}button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.screen{max-width:640px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:0 16px calc(16px + env(safe-area-inset-bottom))}.screen.pin{justify-content:center;padding-top:calc(16px + env(safe-area-inset-top))}.topbar{display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 0 12px;position:sticky;top:0;background:var(--bg);z-index:5}.topbar h1{font-family:var(--font-display);font-size:22px;font-weight:400;letter-spacing:.02em;text-transform:uppercase;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .sub{color:var(--muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.icon-btn{min-height:44px;min-width:44px;padding:0 12px;border-radius:4px;border:2px solid var(--paper);background:transparent;color:var(--paper);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.icon-btn:active{background:var(--paper);color:var(--ink)}.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;padding:0 16px;border-radius:4px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;text-align:center}.btn:active{background:var(--ink);color:var(--paper)}.btn[disabled]{opacity:.4;cursor:default}.btn.primary{background:var(--ember);border-color:var(--ink);color:var(--ink)}.btn.primary:active{filter:brightness(.92);background:var(--ember);color:var(--ink)}.btn.ok{background:var(--ok);border-color:var(--ink);color:#fff}.btn.ok:active{background:var(--ok);color:#fff;filter:brightness(1.08)}.btn.danger{background:transparent;color:#ffb4b0;border-color:#ffb4b0}.btn.danger:active{background:var(--danger);color:#fff}.btn.small{min-height:48px;font-size:13px}.row{display:flex;gap:10px}.row>*{flex:1}.stack{display:flex;flex-direction:column;gap:12px}.grow{flex:1}.spacer{height:12px}.banner{padding:12px 14px;border-radius:4px;font-size:15px;border:2px solid}.banner.warn{background:#fff6df;color:#5c3b00;border-color:#5c3b00}.banner.error{background:#fff0f0;color:#8d1c1c;border-color:#8d1c1c}.banner.info{background:var(--paper);color:var(--ink);border-color:var(--ink)}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px}.tab{min-height:48px;border-radius:4px;border:2px solid var(--paper);background:transparent;font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;color:var(--paper)}.tab.on{background:var(--ember);border-color:var(--ink);color:var(--ink)}.card,.section,.cash,.change,.collect-box,.paid-box,.ticket{--muted: rgba(26, 26, 26, .68);--text: var(--ink);color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:4px}.card{display:block;width:100%;text-align:left;padding:14px 16px;cursor:pointer}.card:active{background:#fff4ee}.card .head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.card .num{font-family:var(--font-display);font-weight:400;font-size:20px;letter-spacing:.02em;text-transform:uppercase}.card .addr{font-size:20px;font-weight:600;margin-top:6px}.card .meta{color:var(--muted);font-size:14px;margin-top:4px}.badge{display:inline-block;padding:2px 8px;border-radius:4px;border:2px solid var(--ink);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--paper);color:var(--ink)}.badge.accent{background:var(--ember)}.badge.ready{background:var(--ok);color:#fff;border-color:var(--ink)}.card .time{color:var(--ink);font-weight:700}.stepper{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;gap:4px}.stepper li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);position:relative}.stepper li i{width:14px;height:14px;border-radius:50%;border:2px solid var(--ink);background:var(--paper);z-index:1}.stepper li:before{content:"";position:absolute;top:6px;right:50%;width:100%;height:2px;background:var(--ink)}.stepper li:first-child:before{display:none}.stepper li.done i{background:var(--ok);border-color:var(--ink)}.stepper li.done:before,.stepper li.current:before{background:var(--ok)}.stepper li.current i{background:var(--ember);border-color:var(--ink)}.stepper li.current{color:var(--ink);font-weight:700}.badge.warn{background:#fff6df;color:#5c3b00;border-color:#5c3b00}.empty{color:var(--muted);text-align:center;padding:48px 12px}.address-big{font-size:28px;line-height:1.2;font-weight:700}.section{padding:14px 16px}.section h3{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.line{display:flex;gap:10px;padding:4px 0}.line .q{font-family:var(--font-mono);font-weight:700;min-width:28px}.line .sub{color:var(--muted);font-size:14px}.collect-box{padding:14px 16px;border-color:var(--ember)}.collect-box .amount{font-family:var(--font-display);font-size:40px;font-weight:400;color:var(--ink);letter-spacing:.02em}.paid-box{padding:14px 16px;border-color:var(--ok);color:var(--ink);font-weight:600}.sticky-actions{position:sticky;bottom:0;padding:12px 0 0;background:linear-gradient(transparent,var(--bg) 20%);margin-top:auto}.field{display:flex;flex-direction:column;gap:6px}.field label{color:var(--muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}.input{min-height:52px;padding:0 14px;border-radius:4px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-size:18px;width:100%}.input:focus{outline:2px solid var(--ember);outline-offset:1px}textarea.input{padding:12px 14px;min-height:110px;font-size:16px;resize:vertical}.pin-dots{display:flex;justify-content:center;gap:14px;margin:4px 0;min-height:22px}.pin-dots i{width:16px;height:16px;border-radius:50%;border:2px solid var(--ink);background:transparent}.pin-dots i.on{background:var(--ember);border-color:var(--ink)}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.keypad .btn{min-height:64px;font-size:24px;letter-spacing:0}.ticket{padding:22px 16px 16px}.brand{text-align:center;padding:0 0 8px}.brand img{width:72px;height:72px;border-radius:4px;border:2px solid var(--ink)}.brand h1{font-family:var(--font-display);font-size:28px;font-weight:400;letter-spacing:.04em;text-transform:uppercase;margin-top:10px}.brand p{color:var(--muted);font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.choice{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:0 16px;border-radius:4px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font-size:17px;font-weight:600;cursor:pointer;text-align:left}.choice.on{border-color:var(--ink);background:#fff1ea;box-shadow:inset 4px 0 0 var(--ember)}.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.chips .btn{min-height:48px;font-size:14px;padding:0 4px}.change{text-align:center;padding:16px}.change .v{font-family:var(--font-display);font-size:36px;font-weight:400}.change .v.ok{color:var(--ok)}.change .v.bad{color:var(--warn)}.cash{padding:14px 16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.cash__title{color:var(--muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.cash__amounts{font-size:18px}.cash__n,.cash__hint{color:var(--muted);font-size:14px}
