:root{color-scheme:light;--desk: #ECEEF2;--paper: #FFFFFF;--wash: #F4F5F8;--wash-strong: #E7E9EF;--ink: #1F2547;--ink-2: #545A74;--ink-3: #858AA0;--rule: #DDE0E7;--rule-strong: #BFC4D1;--hl: #FFE45C;--hl-soft: #FFF4B8;--hl-edge: #D9B400;--ok: #1C7A4A;--ok-wash: #E5F2EA;--warn: #A85300;--warn-wash: #FBEEDF;--bad: #BA3226;--bad-wash: #FAE8E5;--font: "Atkinson Hyperlegible Next", -apple-system, "Segoe UI", Roboto, sans-serif;--font-token: "Atkinson Hyperlegible Mono", ui-monospace, Menlo, Consolas, monospace;--r-sheet: 3px;--r-control: 8px;--shadow-sheet: 0 1px 0 rgba(31, 37, 71, .04), 0 12px 32px -18px rgba(31, 37, 71, .35);--nav-h: 64px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{background:var(--desk);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;min-height:100vh;touch-action:manipulation}button,input{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}button:disabled{cursor:not-allowed}::selection{background:var(--hl);color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.hl{background:var(--hl);border-radius:.28em .12em .32em .1em;padding:.02em .28em;margin:0 -.1em;-webkit-box-decoration-break:clone;box-decoration-break:clone}.token-text{font-family:var(--font-token);font-weight:700;letter-spacing:.01em}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.small{font-size:.8125rem}.tiny{font-size:.75rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--paper);display:flex;flex-direction:column;position:relative;overflow-x:hidden}.app.has-nav{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px))}@media (min-width: 520px){.app{min-height:calc(100vh - 64px);margin:32px auto;border-radius:var(--r-sheet);box-shadow:var(--shadow-sheet)}}.page{padding:20px 20px 32px;display:flex;flex-direction:column;gap:28px}.block{display:flex;flex-direction:column;gap:12px}.block+.block.ruled{border-top:1px solid var(--rule);padding-top:24px}h1,h2,h3{font-weight:700;letter-spacing:-.01em;line-height:1.2}.h-page{font-size:1.375rem}.h-block{font-size:1.0625rem}.lede{color:var(--ink-2);font-size:.9375rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:var(--r-control);font-weight:700;font-size:1rem;transition:background-color .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none}.btn-block{width:100%}.btn-sm{min-height:36px;padding:0 12px;font-size:.875rem}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:#2c3463}.btn-primary:active{background:#151a33}.btn-primary:disabled{background:var(--wash-strong);color:var(--ink-3)}.btn-secondary{background:var(--paper);color:var(--ink);border:1px solid var(--rule-strong)}.btn-secondary:hover{border-color:var(--ink-2)}.btn-secondary:active{background:var(--wash)}.btn-secondary:disabled{color:var(--ink-3);border-color:var(--rule)}.btn-quiet{color:var(--ink-2);min-height:40px;padding:0 8px;margin:0 -8px;font-weight:700}.btn-quiet:hover{color:var(--ink)}.btn-quiet:disabled{color:var(--ink-3)}.btn-danger{color:var(--bad);border:1px solid var(--bad);background:var(--paper)}.btn-danger:active{background:var(--bad-wash)}.icon-btn{width:40px;height:40px;border-radius:var(--r-control);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2)}.icon-btn:hover{background:var(--wash);color:var(--ink)}.icon-btn:disabled{color:var(--rule-strong);background:none}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-weight:700;font-size:.9375rem}.input{width:100%;height:56px;padding:0 16px;background:var(--paper);border:1.5px solid var(--rule-strong);border-radius:var(--r-control);font-family:var(--font-token);font-weight:700;font-size:1.25rem;text-transform:lowercase;outline:none}.input::placeholder{color:var(--ink-3);font-weight:500}.input:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--hl-soft)}.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-sheet);font-size:.875rem;line-height:1.45;border-left:3px solid currentColor}.notice>svg{flex-shrink:0;margin-top:2px}.notice-title{font-weight:700}.notice-body{color:var(--ink)}.notice.is-bad{background:var(--bad-wash);color:var(--bad)}.notice.is-warn{background:var(--warn-wash);color:var(--warn)}.notice.is-ok{background:var(--ok-wash);color:var(--ok)}.notice.is-busy{background:var(--wash);color:var(--ink)}.notice-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.status{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.875rem}.status:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.status.is-ok{color:var(--ok)}.status.is-warn{color:var(--warn)}.status.is-bad{color:var(--bad)}.status.is-idle{color:var(--ink-3)}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:1.5rem;letter-spacing:-.025em;line-height:1}.brand img{width:42px;height:42px}.brand-bar{display:flex;align-items:center;gap:8px;padding:14px 20px 0;font-weight:800;font-size:1.1rem;letter-spacing:-.02em;line-height:1;color:var(--ink);text-decoration:none}.brand-bar img{width:28px;height:28px}.hero{display:flex;flex-direction:column;gap:12px;padding-top:12px}.hero h1{font-size:2.25rem;line-height:1.08;letter-spacing:-.025em;text-wrap:balance}.hero p{color:var(--ink-2);font-size:1rem;max-width:34ch}.demo-shops{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline}.demo-shops button{font-family:var(--font-token);font-weight:700;font-size:.9375rem;text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:4px;padding:6px 0}.demo-shops button:hover{text-decoration-color:var(--ink)}.promises{display:flex;flex-direction:column;gap:18px}.promise{display:grid;grid-template-columns:24px 1fr;gap:4px 12px}.promise svg{grid-row:span 2;margin-top:2px;color:var(--ink-2)}.promise dt{font-weight:700}.promise dd{color:var(--ink-2);font-size:.9375rem}.shop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 16px;border-bottom:1px solid var(--rule)}.shop-name{font-family:var(--font-token);font-weight:700;font-size:1.5rem;line-height:1.1;word-break:break-all}.shop-head .status{margin-top:6px}.token-card{display:flex;flex-direction:column;gap:4px}.token-card .token-text{font-size:1.75rem;line-height:1.25;align-self:flex-start}.add-doc{display:flex;align-items:center;gap:16px;width:100%;padding:14px;text-align:left;border:1.5px solid var(--rule-strong);border-radius:var(--r-control);background:var(--paper);line-height:1.35}.add-doc:hover{border-color:var(--ink-2)}.add-doc:disabled{opacity:.55}.add-doc-sheet{flex-shrink:0;width:56px;aspect-ratio:1 / 1.414;border:1.5px solid var(--ink);border-radius:2px;display:flex;align-items:center;justify-content:center;background:var(--paper);box-shadow:3px 3px 0 var(--wash-strong)}.add-doc.is-compact .add-doc-sheet{width:36px}.add-doc-title{font-weight:700;font-size:1.0625rem}.add-doc-sub{display:block;margin-top:2px;color:var(--ink-2);font-size:.875rem}.batch{list-style:none;border-top:1px solid var(--rule)}.batch-row{display:grid;grid-template-columns:22px 1fr auto;gap:2px 10px;align-items:start;padding:12px 0;border-bottom:1px solid var(--rule)}.batch-n{font-weight:700;color:var(--ink-3);padding-top:1px}.batch-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-meta{color:var(--ink-2);font-size:.8125rem}.batch-side{display:flex;align-items:center;gap:2px}.batch-price{font-weight:700;margin-right:6px}.checkout{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--wash);border-radius:var(--r-sheet)}.checkout-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.checkout-total{font-size:1.5rem;font-weight:800}.bar{position:relative;height:6px;background:var(--wash-strong);border-radius:3px;overflow:hidden}.bar-fill{height:100%;background:var(--ink);border-radius:3px;transition:width .35s ease}.bar-fill.is-done{background:var(--ok)}.bar-fill.is-warn{background:var(--warn);transition:none}.bar-fill.is-bad{background:var(--bad);transition:none}.bar.is-indeterminate .bar-fill{width:35%!important;animation:bar-sweep 1.3s cubic-bezier(.4,0,.2,1) infinite}@keyframes bar-sweep{0%{transform:translate(-110%)}to{transform:translate(300%)}}.queue{list-style:none;display:flex;flex-direction:column}.ticket{padding:16px 0;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:7px}.ticket:first-child{border-top:1px solid var(--rule)}.ticket-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.ticket-token{font-size:.9375rem}.ticket-whose{font-size:.8125rem;color:var(--ink-3);white-space:nowrap}.ticket-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket.is-other .ticket-name,.ticket.is-other .ticket-token{color:var(--ink-3);font-weight:400}.ticket-state{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:700;flex-wrap:wrap}.ticket-state .detail{font-weight:400;color:var(--ink-2)}.tone-active{color:var(--ink)}.tone-warn{color:var(--warn)}.tone-error{color:var(--bad)}.tone-done{color:var(--ok)}.ticket-why{font-size:.8125rem;color:var(--warn);display:flex;gap:6px;align-items:flex-start}.ticket-why svg{flex-shrink:0;margin-top:2px}.ticket-actions{display:flex;gap:8px;flex-wrap:wrap}.ticket-actions .btn{flex:1}.empty{padding:32px 0;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.empty-title{font-weight:700;font-size:1.0625rem}.tabs{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--paper);border-top:1px solid var(--rule);display:flex;z-index:100}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-3);font-size:.8125rem;font-weight:700}.tab[aria-current=page]{color:var(--ink)}.tab[aria-current=page] .tab-label{background:var(--hl);border-radius:.28em .12em .32em .1em;padding:0 .35em}.tab-label{padding:0 .35em}.screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--paper);display:flex;flex-direction:column}.screen-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--rule)}.screen-title{text-align:center;min-width:0}.screen-title strong{display:block;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen-title span{font-size:.8125rem;color:var(--ink-2)}.screen-body{flex:1;overflow-y:auto;padding:20px 16px 120px}.screen-inner{width:100%;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:28px}.screen-foot{position:fixed;left:0;right:0;bottom:0;z-index:1001;background:var(--paper);border-top:1px solid var(--rule);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}.screen-foot>div{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:8px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.toolbar-actions{display:flex;gap:16px}.pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:20px 16px;width:100%;max-width:1100px;margin:0 auto}.page-thumb{display:flex;flex-direction:column;gap:8px;align-items:stretch;text-align:left}.page-thumb-paper{position:relative;background:#fff;border:1px solid var(--rule-strong);border-radius:2px;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 1px 2px #1f254714;transition:opacity .12s ease}.page-thumb-paper.is-pending{aspect-ratio:210 / 297}.page-thumb-paper canvas,.page-thumb-paper img{width:100%;height:auto;display:block}.page-thumb.is-off .page-thumb-paper{opacity:.35}.page-thumb.is-on .page-thumb-paper{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}.page-thumb-mark{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--paper);border:1.5px solid var(--rule-strong);color:transparent}.page-thumb.is-on .page-thumb-mark{background:var(--ink);border-color:var(--ink);color:var(--paper)}.page-thumb-label{font-size:.875rem;color:var(--ink-2)}.page-thumb.is-on .page-thumb-label{color:var(--ink);font-weight:700}.option{display:flex;flex-direction:column;gap:10px}.option-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.option-label{font-weight:700;font-size:1.0625rem}.choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;text-align:left;border:1.5px solid var(--rule-strong);border-radius:var(--r-control);background:var(--paper)}.choice:hover{border-color:var(--ink-2)}.choice[aria-checked=true]{border-color:var(--ink);background:var(--hl-soft);box-shadow:inset 0 0 0 1px var(--ink)}.choice-title{font-weight:700}.choice-sub{font-size:.8125rem;color:var(--ink-2)}.stepper{display:inline-flex;align-items:center;border:1.5px solid var(--rule-strong);border-radius:var(--r-control)}.stepper button{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.stepper button:disabled{color:var(--rule-strong)}.stepper output{min-width:40px;text-align:center;font-weight:700;font-size:1.125rem}.printer-choices{display:flex;flex-direction:column;gap:8px}.printer-choice{flex-direction:row;align-items:center;gap:12px}.printer-choice .radio{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--rule-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center}.printer-choice[aria-checked=true] .radio{border-color:var(--ink)}.printer-choice[aria-checked=true] .radio:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--ink)}.printer-choice-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.printer-choice-name{font-weight:700;overflow-wrap:anywhere}.printer-lid{display:inline-block;min-width:1.6em;text-align:center;margin-right:6px;font-weight:700;color:var(--paper);background:var(--ink);border-radius:3px;padding:0 .3em}.sum{display:flex;flex-direction:column;gap:4px}.sum-line{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.sum-total{font-size:1.25rem;font-weight:800}.prices{width:100%;border-collapse:collapse;font-size:.9375rem}.prices th{text-align:left;font-weight:700;padding:10px 0 4px}.prices th.col{text-align:right;font-weight:400;color:var(--ink-2);font-size:.8125rem}.prices td{padding:8px 0;border-top:1px solid var(--rule)}.prices td.amt{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.printer-list{list-style:none;border-top:1px solid var(--rule)}.printer-item{padding:12px 0;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:4px}.printer-item-top{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.printer-item-name{font-weight:700;overflow-wrap:anywhere;line-height:1.35}.printer-item-caps{font-size:.8125rem;color:var(--ink-2)}.route{display:flex;flex-direction:column;gap:6px}.route-kind{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.0625rem}.facts{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:.8125rem;color:var(--ink-2);margin-top:6px}.facts dt{color:var(--ink-3)}.facts dd{overflow-wrap:anywhere}details.more summary{cursor:pointer;font-size:.875rem;font-weight:700;color:var(--ink-2);padding:6px 0}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#1f254780;display:flex;align-items:flex-end;justify-content:center;padding:16px}@media (min-width: 520px){.scrim{align-items:center}}.dialog{width:100%;max-width:440px;background:var(--paper);border-radius:6px;padding:22px 20px 20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 24px 60px -20px #1f254780}.dialog h2{font-size:1.25rem}.flip-steps{padding-left:1.2em;display:flex;flex-direction:column;gap:6px;color:var(--ink)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.how{padding-left:1.3em;display:flex;flex-direction:column;gap:6px;margin-top:-12px}.how li::marker{font-weight:700;color:var(--ink)}
