/* /for/restaurants: diner cream, ketchup red, check-pad green. Abril Fatface + Courier Prime + Work Sans. */
.fl-rest {
	--fl-bg: #fff8ea; --fl-ink: #1c1917; --fl-muted: #57534e; --fl-surface: #fffdf6;
	--fl-line: rgba(28,25,23,.13); --fl-accent: #c8102e; --fl-accent-ink: #fff8ea;
	--fl-display: 'Abril Fatface', Georgia, serif; --fl-body: 'Work Sans', system-ui, sans-serif; --fl-radius: 8px;
	--pad: #f4f8ec; --rule: #8db48e;
	scrollbar-color: var(--fl-accent) var(--fl-bg);
}
.rt-hero { padding: clamp(32px, 5vw, 72px) 0;
	background:
		repeating-conic-gradient(#1c1917 0 25%, #fff8ea 0 50%) 0 100% / 28px 28px repeat-x,
		var(--fl-bg); padding-bottom: calc(clamp(32px, 5vw, 72px) + 28px); }
.rt-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.rt-copy .fl-h1 { font-size: clamp(2.4rem, 1.4rem + 4vw, 4.6rem); font-weight: 400; }
.rt-copy .fl-h1 span { color: var(--fl-accent); font-size: .62em; display: inline-block; margin-top: .3em; }
.rt-lead { font-size: 1.08rem; line-height: 1.6; color: var(--fl-muted); max-width: 46ch; margin: 1rem 0 1.4rem; }
.rt-controls { display: grid; gap: 16px; margin-bottom: 18px; }
.rt-ctl { display: grid; gap: 8px; font-weight: 600; font-size: .9rem; border: 0; padding: 0; margin: 0; min-width: 0; }
.rt-ctl legend { font-weight: 600; font-size: .9rem; margin-bottom: 8px; }
.rt-ctl input[type=number] { font: 700 1.6rem/1 'Courier Prime', monospace; width: 7ch; padding: 8px 10px; border: 2px solid var(--fl-ink); border-radius: 6px; background: #fff; caret-color: var(--fl-accent); }
.rt-chips { display: flex; gap: 8px; }
.rt-chips input, .rt-mint input { position: absolute; opacity: 0; }
.rt-chips span { display: grid; place-items: center; width: 46px; height: 46px; border: 2px solid var(--fl-ink); border-radius: 50%; font: 700 1.1rem/1 'Courier Prime', monospace; cursor: pointer; background: #fff; }
.rt-chips input:checked + span { background: var(--fl-ink); color: var(--fl-bg); }
.rt-chips input:focus-visible + span, .rt-mint input:focus-visible + span { outline: 3px solid var(--fl-accent); outline-offset: 2px; }
.rt-mints { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rt-mints legend { grid-column: 1 / -1; }
.rt-mint span { display: grid; grid-template-columns: 48px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 8px; border: 1.5px solid var(--fl-line); border-radius: 8px; background: #fff; cursor: pointer; }
.rt-mint img { grid-row: span 2; width: 48px; height: 48px; object-fit: contain; }
.rt-mint b { font-size: .84rem; line-height: 1.2; }
.rt-mint small { font-size: .78rem; color: var(--fl-muted); font-weight: 400; }
.rt-mint input:checked + span { border-color: var(--fl-accent); box-shadow: 0 0 0 2px var(--fl-accent); }
.rt-print { font-size: 1.05rem; padding: .8em 1.5em; }

.rt-printer { position: relative; padding-top: 6px; }
.rt-slot { height: 26px; border-radius: 13px; background: linear-gradient(#3a3533, #1c1917); box-shadow: inset 0 -6px 0 #000; position: relative; z-index: 2; }
.rt-paper-clip { margin: -12px 18px 0; overflow: hidden; padding-bottom: 20px; }
.rt-check { background: var(--pad); background-image: repeating-linear-gradient(transparent 0 31px, var(--rule) 31px 32px); color: #12301e; font-family: 'Courier Prime', monospace; padding: 22px 20px 16px; border-radius: 0 0 4px 4px; box-shadow: 0 14px 24px rgba(28,25,23,.18); min-height: 300px; }
.rt-check header { background: var(--pad); position: relative; display: flex; justify-content: space-between; border-bottom: 2px solid #12301e; padding-bottom: 6px; margin-bottom: 8px; font-size: .95rem; }
.rt-lines { list-style: none; margin: 0; padding: 0; }
.rt-lines li { display: flex; gap: 8px; align-items: baseline; line-height: 32px; font-size: .98rem; white-space: nowrap; }
.rt-lines li .k { overflow: hidden; text-overflow: ellipsis; }
.rt-lines li .dots { flex: 1; border-bottom: 2px dotted rgba(18,48,30,.45); transform: translateY(-6px); min-width: 12px; }
.rt-lines li .v { font-weight: 700; font-variant-numeric: tabular-nums; }
.rt-lines li.total { font-size: 1.15rem; border-top: 2px solid #12301e; margin-top: 4px; }
.rt-lines li.total .v { color: var(--fl-accent); }
.rt-check footer { text-align: center; font-size: .8rem; margin-top: 10px; opacity: .75; }
.rt-check.is-printing { animation: rt-feed .9s cubic-bezier(.16,1,.3,1); }
@keyframes rt-feed { from { transform: translateY(-100%); } to { transform: none; } }

@media (max-width: 880px) { .rt-grid { grid-template-columns: 1fr; } }
@media (max-width: 440px) { .rt-mints { grid-template-columns: 1fr; } .rt-lines li { font-size: .86rem; } }
@media (prefers-reduced-motion: reduce) { .rt-check.is-printing { animation: none; } }
