.demo-stage {
  background:#eee8df;
  border-radius:var(--radius);
  padding:25px 25px 20px;
  min-height:615px;
  position:relative
}
.demo-stage-label {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  max-width:440px;
  margin:auto
}
.demo-stage-label button {
  margin-left:auto;
  background:none;
  font-size:12px;
  color:var(--muted);
  min-height:32px
}
.demo-phone {
  position:relative;
  background:var(--paper);
  border:6px solid var(--ink);
  border-radius:39px;
  width:298px;
  margin:23px auto 18px;
  box-shadow:8px 12px 0 #d8cfc3;
  overflow:hidden;
  padding:27px 17px 10px;
  min-height:502px
}
.phone-camera {
  position:absolute;
  background:var(--ink);
  width:78px;
  height:13px;
  top:0;
  left:50%;
  transform:translateX(-50%);
  border-radius:0 0 10px 10px
}
.phone-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:15px;
  border-bottom:1px solid var(--line);
  font-size:15px;
  font-weight:600;
  gap:8px
}
.table-pill {
  background:var(--peach);
  padding:5px 8px;
  border-radius:20px;
  font-size:10px;
  font-weight:400
}
.phone-brand {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:2px;
  margin-top:13px;
  font-size:8px;
  color:var(--muted)
}
.phone-brand img {
  width:89px;
  height:auto;
  margin-left:-3px
}
.demo-disclaimer {
  font-size:11px;
  text-align:center;
  color:var(--muted)
}
#demo-panel {
  outline-offset:7px;
  min-height:370px
}
.demo-heading {
  font-size:25px;
  letter-spacing:-.04em;
  margin:18px 0 5px
}
.demo-intro {
  font-size:11px;
  color:var(--muted);
  margin-bottom:12px
}
.demo-search {
  width:100%;
  height:35px;
  border:1px solid #b7aca2;
  border-radius:8px;
  background:white;
  padding:8px 10px;
  font-size:11px
}
.demo-menu-list {
  margin-top:9px
}
.demo-item {
  display:flex;
  align-items:center;
  gap:6px;
  padding:11px 0;
  border-bottom:1px solid var(--line)
}
.demo-item>div {
  flex:1
}
.demo-item h4 {
  font-size:12px;
  margin:0 0 3px;
  font-weight:600
}
.demo-item p {
  font-size:10px;
  color:var(--muted)
}
.demo-item .item-price {
  font-size:11px;
  display:block;
  margin-top:5px
}
.demo-add {
  min-width:39px;
  min-height:39px;
  background:var(--peach);
  font-size:22px;
  border-radius:50%
}
.demo-add:hover {
  background:#ffdccb
}
.demo-small-note {
  font-size:10px;
  color:var(--muted);
  margin-top:12px
}
.demo-action {
  display:block;
  width:100%;
  padding:10px 12px;
  min-height:42px;
  border-radius:10px;
  background:var(--ink);
  color:white;
  font-size:12px;
  font-weight:500;
  margin-top:14px
}
.demo-action:disabled {
  opacity:.5;
  cursor:not-allowed
}
.demo-button-link {
  background:none;
  text-decoration:underline;
  font-size:11px;
  min-height:32px;
  display:block;
  margin:7px auto 0
}
.demo-bill-row {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:11px;
  margin:10px 0
}
.demo-bill-row.total {
  font-size:15px;
  border-top:1px solid var(--line);
  padding-top:10px;
  font-weight:600
}
.split-choices {
  display:flex;
  gap:4px;
  margin:14px 0 12px
}
.split-choices button {
  font-size:10px;
  min-height:37px;
  padding:6px 8px;
  border:1px solid #b7aca2;
  background:transparent;
  border-radius:7px;
  flex:1
}
.split-choices button[aria-pressed=true] {
  background:var(--ink);
  border-color:var(--ink);
  color:white
}
.demo-field {
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:space-between;
  font-size:11px;
  margin:10px 0
}
.demo-field input,.demo-field select {
  max-width:100px;
  background:white;
  border:1px solid #b7aca2;
  border-radius:7px;
  padding:7px;
  font-size:12px;
  min-height:35px
}
.demo-field input {
  width:100px
}
.demo-amount {
  background:var(--peach);
  padding:11px;
  border-radius:9px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:11px;
  margin-top:10px
}
.demo-amount strong {
  font-size:23px;
  font-weight:600
}
.demo-receipt {
  padding:22px 0 8px
}
.demo-receipt .check-circle {
  margin-bottom:14px
}
.demo-receipt h3 {
  font-size:23px;
  margin-bottom:8px
}
.demo-receipt>strong {
  font-size:40px;
  font-weight:600;
  letter-spacing:-.045em
}
.demo-receipt p {
  font-size:12px;
  color:var(--muted);
  line-height:1.5;
  margin:9px 0
}
.demo-error {
  color:#9c2f35;
  font-size:11px;
  margin-top:7px
}
.demo-cart-line {
  display:flex;
  align-items:center;
  gap:5px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  font-size:12px
}
.demo-cart-line>span:first-child {
  flex:1
}
.demo-remove {
  background:none;
  font-size:19px;
  min-width:30px;
  min-height:35px
}
.empty-demo {
  font-size:12px;
  padding:20px 0;
  color:var(--muted)
}
