:root{--red:#ed2f32;--red-dark:#d91f24;--ink:#101217;--muted:#60646f;--line:#d9dcdf;--green:#08a94f}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:#f3f4f5;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.page-shell{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.cafeteria-card{background:#fff;border:1px solid #d1d3d6;width:min(100%,640px);padding:28px 24px 14px;box-shadow:0 14px 45px #14181f14}.brand-header{flex-direction:column;align-items:center;display:flex}.brand-header img{width:76px;height:76px}.brand-header h1{letter-spacing:-2.3px;margin:8px 0 4px;font-size:clamp(38px,7vw,54px);line-height:1.05}.section-heading{color:#4b4e56;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;width:min(100%,310px);font-size:25px;font-weight:500;display:grid}.section-heading span{background:#f16a6d;height:2px}.meal-list{gap:12px;margin-top:25px;display:grid}.meal-option{width:100%;min-height:88px;color:var(--ink);border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:15px;grid-template-columns:42px 1fr auto;align-items:center;gap:22px;padding:15px 24px;display:grid;box-shadow:0 2px 6px #14181f0d}.meal-option:hover:not(:disabled){border-color:#f07a7c}.meal-option:focus-visible{outline-offset:2px;outline:3px solid #ed2f3240}.meal-option:disabled{cursor:default;opacity:1}.checkbox{color:#fff;background:#fff;border:2px solid #c5c8cc;border-radius:4px;place-items:center;width:40px;height:40px;font-size:32px;font-weight:500;line-height:1;display:grid}.selected .checkbox{background:var(--red);border-color:var(--red)}.meal-name{font-size:25px;font-weight:600}.meal-price{font-size:24px;font-weight:650}.total-panel,.receipt-panel{border:2px solid var(--red);text-align:center;background:linear-gradient(snow 0%,#fff5f5 100%);border-radius:19px;margin-top:22px;padding:20px}.total-label{color:#555963;font-size:23px;display:block}.total-amount{letter-spacing:-2px;margin:0 0 12px;font-size:clamp(52px,9vw,68px);line-height:1.05;display:block}.inline-checkout{background:#fff;border:1px solid #dfe1e4;border-radius:16px;margin-top:12px;padding:14px;box-shadow:0 4px 14px #14181f0f}.checkout-status{color:var(--muted);text-align:center;margin:0 0 8px;font-size:14px}.sandbox-cards{color:var(--ink);text-align:left;background:#fff;border:1px solid #e1e3e6;border-radius:12px;margin:18px -2px 0;padding:0 14px 12px}.sandbox-cards summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:48px;list-style:none;display:flex}.sandbox-cards summary::-webkit-details-marker{display:none}.sandbox-cards summary span{font-weight:750}.sandbox-cards summary small{color:var(--muted);font-size:12px}.sandbox-card-list{gap:7px;display:grid}.sandbox-card{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:#fafafa;border:1px solid #ececef;border-radius:8px;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;gap:10px;padding:9px 10px;display:grid}.sandbox-card:hover{background:snow;border-color:#f08a8c}.sandbox-card>span{align-items:baseline;gap:7px;min-width:0;display:flex}.sandbox-card strong{font-size:13px}.sandbox-card small{color:var(--muted);font-size:11px}.sandbox-card>small{text-align:right}.sandbox-card code{color:#9d171a;white-space:nowrap;font:650 13px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.sandbox-cards>p{color:var(--muted);margin:10px 2px 0;font-size:12px}.receipt-panel{background:linear-gradient(#f6fff9 0%,#effcf4 100%);border:1.5px solid #67d29a;border-radius:14px;padding:18px 20px}.receipt-panel .total-amount{margin-bottom:5px}.paid-divider{grid-template-columns:1fr 34px 1fr;align-items:center;gap:10px;width:68%;margin:0 auto;display:grid}.paid-divider span{background:#51c987;height:2px}.paid-divider b{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:32px;height:32px;font-size:22px;display:grid}.paid-label{color:var(--green);font-size:45px;line-height:1.1;display:block}.paid-time{margin-top:4px;font-size:25px;font-weight:650;display:block}.transaction-id{color:#525866;overflow-wrap:anywhere;margin-top:8px;font-size:15px;display:block}.new-order{color:#087d3e;cursor:pointer;background:0 0;border:1px solid #60c990;border-radius:999px;margin-top:15px;padding:8px 18px}.checkout-host{width:100%;min-height:0}.checkout-host iframe{border:0;border-radius:12px;width:100%;display:block}.loading-box{place-items:center;min-height:120px;display:grid}.loading-box span{border:4px solid #ececef;border-top-color:var(--red);border-radius:50%;width:42px;height:42px;animation:.75s linear infinite spin}.failure-dialog{text-align:center;padding:30px 20px 18px}.failure-icon{color:#fff;background:var(--red);border-radius:50%;place-items:center;width:52px;height:52px;margin:0 auto;font-size:34px;font-weight:750;display:grid}.failure-dialog h3{margin:14px 0 5px;font-size:27px}.failure-dialog p{color:#555a64;max-width:400px;margin:0 auto 20px;line-height:1.5}.failure-dialog button{color:#fff;background:var(--red);cursor:pointer;border:0;border-radius:10px;min-height:46px;padding:0 22px;font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=560px){.page-shell{background:#fff;padding:0;display:block}.cafeteria-card{min-height:100vh;box-shadow:none;border:0;padding:22px 14px 12px}.brand-header img{width:65px;height:65px}.brand-header h1{letter-spacing:-1.8px;font-size:40px}.section-heading{gap:12px;width:280px;font-size:21px}.meal-list{gap:10px;margin-top:22px}.meal-option{border-radius:12px;grid-template-columns:36px 1fr auto;gap:14px;min-height:78px;padding:13px 16px}.checkbox{width:36px;height:36px;font-size:28px}.meal-name{font-size:20px}.meal-price{font-size:19px}.total-label{font-size:20px}.total-amount{font-size:52px}.inline-checkout{border-radius:13px;padding:10px}.sandbox-cards{padding:0 10px 10px}.sandbox-cards summary{padding:10px 0 8px;display:block}.sandbox-cards summary small{margin-top:2px;display:block}.sandbox-card{grid-template-columns:1fr auto}.sandbox-card>span{display:block}.sandbox-card>span small{margin-top:2px;display:block}.sandbox-card>small{display:none}.sandbox-card code{font-size:12px}.paid-label{font-size:39px}.paid-time{font-size:20px}}@media (prefers-reduced-motion:reduce){.loading-box span{animation:none}}
