:root { --bg: #f3eadf; --panel: #fffaf2; --panel-strong: #f7efe3; --ink: #1f2923; --muted: #677168; --accent: #2f5d50; --accent-soft: #dbe8e2; --warm: #c9784d; --line: #d9cfbf; --danger: #b1463a; --shadow: 0 18px 40px rgba(59, 47, 34, 0.12); font-family: "Trebuchet MS", "Avenir Next", sans-serif; } * { box-sizing: border-box; } body { margin: 0; color: var(--ink); background: radial-gradient(circle at top left, rgba(201, 120, 77, 0.18), transparent 28%), linear-gradient(180deg, #f9f3ea, #efe3d3 55%, #eadcc8); } button, input, select, textarea { font: inherit; } button { cursor: pointer; } .app-shell { min-height: 100vh; padding: 1rem; } .topbar { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 1rem; padding: 1rem 1.25rem; border: 1px solid rgba(47, 93, 80, 0.15); border-radius: 24px; background: rgba(255, 250, 242, 0.92); box-shadow: var(--shadow); } .topbar h1, .panel h2, .panel h3 { margin: 0.2rem 0 0; font-family: Georgia, "Times New Roman", serif; } .eyebrow { margin: 0; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.72rem; font-weight: 700; } .tabs, .choice-row, .chip-row, .builder-actions, .ticket-header, .line-meta, .status-actions, .menu-item-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; } .screen { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 1rem; } .queue-screen, .menu-screen { display: grid; gap: 1rem; } .panel, .summary-card { background: var(--panel); border: 1px solid rgba(47, 93, 80, 0.1); border-radius: 28px; padding: 1rem; box-shadow: var(--shadow); } .panel-header, .queue-card header, .menu-form, .checkout-form, .menu-item, .ticket-line { display: grid; gap: 0.75rem; } .panel-header { grid-template-columns: 1fr auto; align-items: start; margin-bottom: 1rem; } .tab, .choice-btn, .chip, .text-btn, .status-btn { border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); padding: 0.75rem 1rem; } .tab.is-active, .choice-btn.is-active, .chip.is-active { background: var(--accent); color: #fff; border-color: var(--accent); } .text-btn { background: transparent; } .primary-btn { border: none; border-radius: 18px; padding: 0.95rem 1.2rem; background: var(--warm); color: #fff; font-weight: 700; } .primary-btn:disabled { opacity: 0.6; cursor: not-allowed; } .drink-grid, .queue-columns, .ticket-lines, .menu-list, .choice-grid, .queue-summary { display: grid; gap: 1rem; } .drink-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } .drink-card, .queue-card, .menu-item, .ticket-line { border: 1px solid var(--line); border-radius: 22px; background: #fff; padding: 1rem; text-align: left; } .drink-card.is-selected { border-color: var(--accent); box-shadow: inset 0 0 0 2px rgba(47, 93, 80, 0.15); } .muted { color: var(--muted); } .field { display: grid; gap: 0.5rem; } .field-label { font-weight: 700; } .choice-grid { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); } .checkbox-tile { display: flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1rem; border: 1px solid var(--line); border-radius: 18px; background: #fff; } textarea, input, select { width: 100%; border: 1px solid var(--line); border-radius: 16px; padding: 0.9rem 1rem; background: #fffdf8; } .ticket { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); } .ticket-line header { display: flex; justify-content: space-between; gap: 0.5rem; } .ticket-total, .line-price { font-size: 1.3rem; font-weight: 800; } .queue-summary { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); } .queue-columns { grid-template-columns: repeat(3, 1fr); } .queue-column { display: grid; gap: 0.8rem; align-content: start; } .column-head { padding: 0.75rem 1rem; border-radius: 18px; background: var(--accent-soft); } .status-btn.danger { color: var(--danger); } .empty-state, .page-state { padding: 1.25rem; border-radius: 20px; background: var(--panel-strong); color: var(--muted); } .page-state { min-height: 100vh; display: grid; place-items: center; text-align: center; } .menu-item { grid-template-columns: 1fr auto; align-items: center; } @media (max-width: 980px) { .topbar, .screen, .queue-columns, .menu-item, .panel-header { grid-template-columns: 1fr; } .tabs { width: 100%; } .tab { flex: 1 1 0; text-align: center; } }