@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--blue:#1688ca;--blue-hover:color-mix(in srgb, var(--blue), black 15%);--blue-pale:color-mix(in srgb, var(--blue), white 88%);--blue-secondary:color-mix(in srgb, var(--blue), white 15%);--text:#333;--text-light:#666;--text-muted:#999;--border:#ddd;--bg:#fff;--bg-light:#f6f6f6;--dark:#313131;--error:#d93025;--error-pale:#fef0ef;--shadow-sm:0 1px 4px #0000000d;--shadow-md:0 2px 8px #0000000f;--radius:8px;--sans:"Open Sans", Helvetica, Arial, sans-serif;--serif:var(--sans);--transition:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:pan-y;overflow-x:hidden}body{font-family:var(--sans);color:var(--text);background:var(--bg);min-height:100dvh;overflow-x:hidden}#root{flex-direction:column;min-height:100dvh;display:flex}.route-spinner{justify-content:center;align-items:center;min-height:100vh;display:flex}.route-spinner-dot{border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-loading{text-align:center;font-family:var(--sans);color:var(--text-muted);padding:40px}.page-not-found{text-align:center;font-family:var(--sans);padding:40px}.page-not-found h2{font-family:var(--serif);margin-bottom:8px}.page-not-found p{color:var(--text-light)}.post-submit{text-align:center;padding:0 20px 40px}.post-submit p{font-family:var(--sans);color:var(--text-light);margin-bottom:16px;font-size:15px}.post-submit-btn{background:var(--blue-pale);color:var(--blue);border-radius:var(--radius);font-family:var(--sans);cursor:pointer;border:none;padding:12px 28px;font-size:14px;font-weight:600}.post-submit-btn:hover{background:#daedf7}.checkin-form-body{max-width:560px;margin-left:auto;margin-right:auto;padding:18px 20px 110px}body{background:var(--bg-light,#f6f7f9);color:var(--text);font-family:var(--sans,"Open Sans", system-ui, sans-serif);margin:0}.pa-loading{text-align:center;color:var(--text-muted);padding:40px;font-size:13px}.pa-shell{flex-direction:column;min-height:100vh;display:flex}.pa-topbar{background:var(--bg,#fff);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.pa-topbar h1{font-family:var(--serif);margin:0;font-size:16px;font-weight:400}.pa-topbar .pa-user{color:var(--text-muted);align-items:center;gap:12px;font-size:13px;display:flex}.pa-signout{font-family:var(--sans);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:12px}.pa-signout:hover{background:var(--bg-light);color:var(--text)}.pa-auth{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.pa-auth-card{background:var(--bg,#fff);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow-sm);padding:28px}.pa-logo{width:auto;height:32px;margin:0 0 16px;display:block}.pa-auth h2{font-family:var(--serif);margin:0 0 4px;font-size:20px;font-weight:400}.pa-auth p.pa-sub{color:var(--text-muted);margin:0 0 20px;font-size:13px}.pa-field{flex-direction:column;gap:4px;margin-bottom:14px;font-size:13px;display:flex}.pa-field>span{font-family:var(--sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.pa-field input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:4px;padding:8px 10px;font-family:inherit;font-size:14px}.pa-btn{width:100%;font-family:var(--sans);cursor:pointer;background:var(--blue,#1688ca);color:#fff;border:1px solid #0000;border-radius:4px;padding:10px 14px;font-size:14px;font-weight:500}.pa-btn:disabled{opacity:.55;cursor:not-allowed}.pa-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin-bottom:12px;padding:8px 10px;font-size:12px}.pa-qr{border:1px solid var(--border);background:#fff;border-radius:4px;width:200px;height:200px;margin:12px auto 16px;display:block}.pa-otp{letter-spacing:.4em;text-align:center;font-size:18px!important;font-family:var(--mono,ui-monospace, SFMono-Regular, monospace)!important}.toast-container{z-index:100;pointer-events:none;flex-direction:column;gap:8px;width:calc(100% - 32px);max-width:420px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius);font-family:var(--sans);pointer-events:auto;cursor:pointer;align-items:center;gap:10px;padding:12px 16px;font-size:14px;animation:.25s toast-in;display:flex;box-shadow:0 4px 16px #0000001f}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toast-error{background:var(--error-pale);color:var(--error);border:1px solid #f5c6c2}.toast-success{color:#2e7d32;background:#e8f5e9;border:1px solid #c8e6c9}.toast-icon{flex-shrink:0;display:flex}.toast-text{line-height:1.4}.error-boundary{min-height:100vh;font-family:var(--sans);justify-content:center;align-items:center;padding:20px;display:flex}.error-boundary-card{text-align:center;max-width:420px}.error-boundary-card h2{font-family:var(--serif);color:var(--text);margin-bottom:8px;font-size:22px}.error-boundary-card p{color:var(--text-light);margin-bottom:16px;font-size:15px;line-height:1.5}.error-boundary-detail{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:#c0392b;text-align:left;white-space:pre-wrap;word-break:break-word;margin-bottom:20px;padding:12px;font-size:13px}.error-boundary-btn{background:var(--blue);color:#fff;border-radius:var(--radius);font-family:var(--sans);cursor:pointer;border:none;padding:10px 24px;font-size:14px;font-weight:600}.error-boundary-btn:hover{opacity:.9}.sa-container{max-width:1000px;margin:0 auto;padding:24px}.sa-heading{font-family:var(--serif);margin:0 0 4px;font-size:22px;font-weight:400}.sa-subtitle{color:var(--text-muted);margin:0 0 24px;font-size:13px}.sa-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:18px;padding:20px 22px}.sa-card-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sa-card-head h2{font-family:var(--sans);margin:0;font-size:14px;font-weight:600}.sa-empty{color:var(--text-muted);margin:8px 0;font-size:13px}.sa-hint{color:var(--text-muted);margin:0 0 12px;font-size:12px}.sa-hint code,.sa-id{font-family:var(--mono,"SFMono-Regular", monospace);background:var(--bg-light);border-radius:3px;padding:1px 4px;font-size:11px}.sa-muted{color:var(--text-muted)}.sa-table{border-collapse:collapse;width:100%;font-size:13px}.sa-table th,.sa-table td{text-align:left;border-bottom:1px solid #f0f0f0;padding:8px 10px}.sa-table th{font-family:var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:600}.sa-num{text-align:right}.sa-form{flex-direction:column;gap:12px;display:flex}.sa-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.sa-field{flex-direction:column;gap:4px;font-size:13px;display:flex}.sa-field>span{font-family:var(--sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.sa-field input,.sa-field select,.sa-field textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:4px;padding:6px 8px;font-family:inherit;font-size:13px}.sa-field textarea{resize:vertical;font-family:inherit}.sa-form-actions{justify-content:flex-end;margin-top:8px;display:flex}.sa-btn{font-family:var(--sans);cursor:pointer;border:1px solid #0000;border-radius:4px;padding:6px 14px;font-size:13px;font-weight:500}.sa-btn:disabled{opacity:.55;cursor:not-allowed}.sa-btn-primary{background:var(--blue,#2563eb);color:#fff}.sa-btn-ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.sa-btn-ghost:hover{background:var(--bg-light);color:var(--text)}.sa-tier-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:inline-flex}.sa-tier-toggle input{cursor:pointer;margin:0}.sa-tier-toggle--form{color:var(--text);padding:8px 0 4px}.sa-tier-toggle--form em{color:var(--text-muted);font-style:normal}
