@import"https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@400;600;700&family=Noto+Sans+TC:wght@300;400;500&display=swap";@keyframes barcode-scan-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.barcode-scan-shake{animation:barcode-scan-shake .2s ease-in-out}@keyframes barcode-count-pop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.barcode-count-pop{animation:barcode-count-pop .1s ease-in-out}.reservation-print,.reservation-print *,.reservation-print *:before,.reservation-print *:after{box-sizing:border-box}.reservation-print{background:#fff;color:#111;font-family:Noto Sans TC,sans-serif;font-weight:300;padding:48px 40px;max-width:860px;margin:0 auto}.reservation-print header{border-top:3px solid #111;border-bottom:1px solid #111;padding:16px 0 12px;margin-bottom:36px;display:flex;justify-content:space-between;align-items:flex-end}.reservation-print header h1{font-family:"Noto Serif TC",serif;font-size:22px;font-weight:700;letter-spacing:.14em;margin:0}.reservation-print header .meta{font-size:11.5px;color:#444;text-align:right;line-height:2;letter-spacing:.06em}.reservation-print header .meta strong{color:#111;font-size:13px}.reservation-print .section-title{font-family:"Noto Serif TC",serif;font-size:11px;font-weight:600;letter-spacing:.25em;color:#888;border-bottom:1px solid #ddd;padding-bottom:6px;margin-bottom:0}.reservation-print table{width:100%;border-collapse:collapse;margin-bottom:28px;font-size:13.5px}.reservation-print thead tr{background:#111;color:#fff}.reservation-print thead th{font-family:"Noto Serif TC",serif;font-weight:600;font-size:12px;letter-spacing:.1em;padding:10px 14px;text-align:left}.reservation-print tbody tr{border-bottom:1px solid #e8e8e8}.reservation-print tbody tr:last-child{border-bottom:2px solid #111}.reservation-print tbody td{padding:10px 14px;color:#222;line-height:1.5}.reservation-print .num{text-align:right;font-variant-numeric:tabular-nums}.reservation-print .badge{display:inline-block;font-size:10px;padding:2px 8px;border-radius:2px;letter-spacing:.08em;font-weight:500}.reservation-print .badge.done{background:#111;color:#fff}.reservation-print .badge.pend{background:#fff;color:#888;border:1px solid #bbb}.reservation-print .badge.plan{background:#e8e8e8;color:#555}.reservation-print tfoot tr{background:#f0f0f0}.reservation-print tfoot td{padding:10px 14px;font-weight:500;font-size:13px;border-top:2px solid #111}.reservation-print .payment-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;border:2px solid #111;margin-bottom:16px}.reservation-print .pay-cell{padding:16px 20px;border-right:1px solid #d0d0d0}.reservation-print .pay-cell:last-child{border-right:none}.reservation-print .pay-cell .pay-label{font-size:10px;letter-spacing:.2em;color:#888;font-family:"Noto Serif TC",serif;margin-bottom:8px}.reservation-print .pay-cell .pay-amount{font-family:"Noto Serif TC",serif;font-size:18px;font-weight:700}.reservation-print .pay-cell .pay-unit{font-size:11px;color:#777;margin-left:3px}.reservation-print .pay-cell.highlight{background:#111}.reservation-print .pay-cell.highlight .pay-label{color:#aaa}.reservation-print .pay-cell.highlight .pay-amount{color:#fff}.reservation-print .pay-cell.highlight .pay-unit{color:#bbb}.reservation-print .pay-cell.balance{background:#f7f7f7}.reservation-print .pay-cell.balance.owing .pay-amount{color:#c00}.reservation-print .pay-cell.balance.overpaid .pay-amount,.reservation-print .pay-cell.balance.settled .pay-amount{color:#2a7a2a}.reservation-print footer{margin-top:40px;border-top:1px solid #ccc;padding-top:12px;font-size:11px;color:#999;letter-spacing:.08em;display:flex;justify-content:space-between}.reservation-print .print-actions{margin:16px 0;text-align:right}.reservation-print .print-actions button{padding:8px 20px;font-family:"Noto Serif TC",serif;background:#111;color:#fff;border:none;cursor:pointer}@media print{.reservation-print .print-actions{display:none}body{padding:0}.reservation-print{padding:20px}}
