:root{--color-primary:#1f2937;--color-accent:#b45309;--color-bg:#fff;--color-surface:#f4f4f5;--color-text:#111827;--color-muted:#6b7280;--color-danger:#b91c1c;--color-success:#15803d;--radius:8px;--space:12px;color:var(--color-text);background:var(--color-bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}.app{max-width:480px;padding:var(--space);margin:0 auto;padding-bottom:160px}h1,h2,h3{margin:.4em 0}button{font:inherit;border-radius:var(--radius);border:1px solid var(--color-primary);background:var(--color-bg);min-height:48px;color:var(--color-primary);cursor:pointer;padding:0 16px}button.primary{background:var(--color-primary);color:#fff}button.danger{border-color:var(--color-danger);color:var(--color-danger)}button:disabled{opacity:.5;cursor:not-allowed}button.link{border:none;min-height:auto;padding:0;text-decoration:underline}input,textarea,select{font:inherit;border:1px solid var(--color-muted);border-radius:var(--radius);width:100%;padding:10px}.muted{color:var(--color-muted)}.error{color:var(--color-danger)}.row{gap:var(--space);justify-content:space-between;align-items:center;display:flex}.stack{gap:var(--space);flex-direction:column;display:flex}.card{border:1px solid var(--color-surface);border-radius:var(--radius);padding:var(--space);background:var(--color-bg)}.chips{background:var(--color-bg);gap:8px;padding:8px 0;display:flex;position:sticky;top:0;overflow-x:auto}.chips a{white-space:nowrap;background:var(--color-surface);color:inherit;border-radius:999px;padding:8px 12px;text-decoration:none}.tag{background:var(--color-surface);border-radius:999px;margin-right:4px;padding:2px 8px;font-size:.8em;display:inline-block}.sold-out{opacity:.5}.bottom-bar{background:var(--color-bg);border-top:1px solid var(--color-surface);padding:var(--space);position:fixed;bottom:0;left:0;right:0}.bottom-bar>div{max-width:480px;margin:0 auto}.sheet-backdrop{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--color-bg);width:100%;max-width:480px;max-height:90vh;padding:var(--space);border-radius:16px 16px 0 0;overflow-y:auto}.banner{padding:8px var(--space);border-radius:var(--radius);background:var(--color-surface)}.banner.warn{background:#fef3c7}.banner.danger{background:#fee2e2}.toasts{z-index:20;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:8px;left:0;right:0}.toast{background:var(--color-primary);color:#fff;border-radius:var(--radius);padding:10px 16px}.stepper{align-items:center;gap:8px;display:inline-flex}.stepper button{min-width:48px;padding:0}footer{margin-top:32px;font-size:.85em}.catalog-entry{border:2px dashed var(--color-muted);margin:24px 0;padding:8px;position:relative;transform:translateZ(0)}.catalog-entry>header{color:var(--color-muted);font-family:monospace;font-size:.8em}.app{max-width:720px;padding-bottom:96px}.app.wide{max-width:1280px}.topbar{border-bottom:1px solid var(--color-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.tabs{gap:4px;display:flex;overflow-x:auto}.tabs a{color:inherit;border-radius:var(--radius);white-space:nowrap;padding:10px 12px;text-decoration:none}.tabs a[aria-current=page]{background:var(--color-primary);color:#fff}.grid{gap:var(--space);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.tile{border:2px solid var(--color-surface);border-radius:var(--radius);text-align:left;flex-direction:column;align-items:stretch;gap:4px;height:auto;padding:10px;display:flex}.tile[data-state=free]{border-color:#86efac}.tile[data-state=pending]{border-color:#fbbf24}.tile[data-state=occupied]{border-color:#60a5fa}.tile[data-state=bill_requested]{border-color:#a78bfa}.tile[data-state=needs_cleaning]{border-style:dashed;border-color:#9ca3af}.tile[data-escalated=true]{box-shadow:0 0 0 3px var(--color-danger)}.plan{border:1px solid var(--color-surface);border-radius:var(--radius);background:var(--color-surface);height:520px;position:relative}.plan .tile{background:var(--color-bg);width:140px;position:absolute}.split{gap:var(--space);grid-template-columns:1fr 420px;align-items:start;display:grid}.inbox-card[data-escalated=true]{border-left:6px solid var(--color-danger)}.pinpad{grid-template-columns:repeat(3,72px);justify-content:center;gap:8px;display:grid}.pinpad button{min-height:64px;font-size:1.4em}.pin-dots{letter-spacing:.5em;text-align:center;font-size:2em}table{border-collapse:collapse;width:100%}td,th{text-align:left;border-bottom:1px solid var(--color-surface);padding:8px}.brand-previews{grid-template-columns:1fr 1fr;gap:8px;display:grid}.brand-preview{border:1px solid #00000014;border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.brand-preview-label{letter-spacing:1px;text-transform:uppercase;opacity:.7;font-size:.75em;font-weight:700}.brand-preview-notice{border-radius:8px;padding:8px 10px;font-size:.85em;font-weight:700}.brand-preview-chip{border:1px solid;border-radius:999px;padding:6px 12px;font-size:.85em;font-weight:600}.brand-preview-badge{border-radius:999px;place-items:center;min-width:22px;height:22px;font-size:.75em;font-weight:800;display:grid}.brand-preview-button{text-align:center;border-radius:10px;padding:12px;font-weight:700}
