html,body,#root{min-width:100%;min-height:100%;margin:0}body{font-family:Arial,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{color:#111827;background:#f3f4f6;font-family:Arial,Microsoft JhengHei,PingFang TC,sans-serif}.app{background:#f3f4f6;width:100%;min-height:100vh;padding:18px 14px 35px}.checkin-container{width:100%;max-width:620px;margin:0 auto}.header{text-align:center;margin-bottom:18px;padding:4px 10px}.header h1{color:#111827;margin:0 0 6px;font-size:28px;font-weight:800}.header p{color:#6b7280;margin:0;font-size:15px}.scanner-section{background:#fff;border-radius:24px;width:100%;margin-bottom:18px;overflow:hidden;box-shadow:0 8px 24px #0000000f}.camera-wrapper{aspect-ratio:1;background:#111827;width:100%;position:relative;overflow:hidden}.camera{object-fit:cover;width:100%;height:100%;display:block}.scan-frame{pointer-events:none;width:68%;height:68%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.corner{border-style:solid;border-color:#fff;width:52px;height:52px;position:absolute}.corner.top-left{border-width:7px 0 0 7px;top:0;left:0}.corner.top-right{border-width:7px 7px 0 0;top:0;right:0}.corner.bottom-left{border-width:0 0 7px 7px;bottom:0;left:0}.corner.bottom-right{border-width:0 7px 7px 0;bottom:0;right:0}.camera-status{text-align:center;color:#4b5563;background:#fff;width:100%;padding:22px 18px;font-size:20px;font-weight:700}.status-message{text-align:center;border-radius:14px;width:100%;margin-bottom:18px;padding:15px 18px;font-size:17px;font-weight:700;line-height:1.5}.status-message.success{color:#166534;background:#dcfce7}.status-message.warning{color:#92400e;background:#fef3c7}.status-message.error{color:#991b1b;background:#fee2e2}.result-card{background:#fff;border-radius:24px;width:100%;margin-bottom:20px;padding:28px 24px 24px;box-shadow:0 8px 24px #0000000f}.result-card h2{text-align:center;color:#111827;word-break:break-word;margin:0 0 24px;font-size:34px;font-weight:800;line-height:1.25}.info-row{border-bottom:1px solid #e5e7eb;grid-template-columns:minmax(95px,.85fr) minmax(0,1.65fr);align-items:center;gap:16px;width:100%;min-height:62px;padding:14px 2px;display:grid}.info-label{color:#6b7280;word-break:break-word;font-size:18px;font-weight:500;line-height:1.4}.info-value{color:#4b5563;text-align:right;word-break:break-word;overflow-wrap:anywhere;font-size:18px;font-weight:500;line-height:1.5}.status{justify-self:end;font-size:21px;font-weight:800;line-height:1.4;display:inline-block}.status.available{color:#15803d}.status.checked{color:#d97706}.button-group{flex-direction:column;gap:12px;width:100%;margin-top:22px;display:flex}.confirm-button{color:#fff;text-align:center;cursor:pointer;appearance:none;touch-action:manipulation;background:#2563eb;border:none;border-radius:14px;width:100%;min-height:62px;margin:0;padding:15px 20px;font-family:inherit;font-size:20px;font-weight:800;transition:transform .12s,opacity .12s,background .12s;display:block}.confirm-button:hover{background:#1d4ed8}.confirm-button:active{transform:scale(.985)}.confirm-button:disabled{opacity:.55;cursor:not-allowed}.back-button{color:#111827;text-align:center;cursor:pointer;appearance:none;touch-action:manipulation;background:#e5e7eb;border:none;border-radius:14px;width:100%;min-height:62px;margin:0;padding:15px 20px;font-family:inherit;font-size:20px;font-weight:800;transition:transform .12s,background .12s;display:block}.back-button:hover{background:#d1d5db}.back-button:active{transform:scale(.985)}@media (width<=600px){.app{padding:10px 10px 28px}.checkin-container{max-width:100%}.header{margin-bottom:12px}.header h1{font-size:25px}.header p{font-size:14px}.scanner-section{border-radius:22px}.camera-status{padding:18px 12px;font-size:18px}.result-card{border-radius:22px;padding:24px 20px 22px}.result-card h2{margin-bottom:22px;font-size:32px}.info-row{grid-template-columns:minmax(90px,.8fr) minmax(0,1.5fr);gap:12px;min-height:58px}.info-label,.info-value{font-size:17px}.status{font-size:20px}.confirm-button,.back-button{border-radius:14px;width:100%;min-height:62px;font-size:20px}}@media (width<=380px){.app{padding-left:8px;padding-right:8px}.result-card{padding:22px 16px 20px}.result-card h2{font-size:29px}.info-row{grid-template-columns:88px minmax(0,1fr);gap:10px}.info-label,.info-value{font-size:16px}.confirm-button,.back-button{min-height:60px;font-size:19px}}
