:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root,[data-theme=dark]{--bg:#1a1a1a;--bg-card:#242424;--bg-card-alt:#2a2a2a;--bg-input:#ffffff0f;--bg-orb:#6366f11f;--text-primary:#f2f2f2;--text-secondary:#9ca3af;--text-muted:#6b7280;--text-hint:#4b5563;--border:#ffffff17;--border-input:#ffffff24;--border-divider:#ffffff12;--accent:#6366f1;--accent-dark:#4f46e5;--accent-bg:#6366f114;--green:#34d399;--green-bg:#10b9811f;--green-border:#10b9814d;--red:#f87171;--chk-done-bg:#22c55e1f;--chk-done-color:#4ade80;--chk-done-border:#22c55e40;--chk-pending-bg:#6b728026;--chk-pending-color:#9ca3af;--chk-pending-border:#6b728040;--footer-color:#2d2d2d;--logo-filter:brightness(0) invert(1) opacity(.85);--toggle-track:#3f3f3f;--toggle-thumb:#fff}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f4f5;--bg-card:#fff;--bg-card-alt:#f0f0ff;--bg-input:#0000000a;--bg-orb:#6366f114;--text-primary:#111;--text-secondary:#52525b;--text-muted:#71717a;--text-hint:#a1a1aa;--border:#00000012;--border-input:#0000001f;--border-divider:#0000000d;--accent:#4f46e5;--accent-dark:#3730a3;--accent-bg:#4f46e50f;--green:#059669;--green-bg:#10b9811a;--green-border:#10b9814d;--red:#ef4444;--chk-done-bg:#22c55e1f;--chk-done-color:#059669;--chk-done-border:#22c55e4d;--chk-pending-bg:#64748b1a;--chk-pending-color:#71717a;--chk-pending-border:#64748b40;--footer-color:#d4d4d8;--logo-filter:none;--toggle-track:#e4e4e7;--toggle-thumb:#fff}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{overscroll-behavior:none;height:100%}body{background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Pretendard,Apple SD Gothic Neo,Noto Sans KR,sans-serif}#attendance-root{justify-content:center;align-items:center;min-height:100dvh;padding:0;display:flex}.at-page{width:100%;max-width:420px;min-height:100dvh;padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0);flex-direction:column;display:flex;position:relative;overflow:hidden}.at-page:before{content:"";background:radial-gradient(circle, var(--bg-orb) 0%, transparent 70%);pointer-events:none;z-index:0;width:500px;height:500px;position:fixed;top:-120px;left:50%;transform:translate(-50%)}.at-header{z-index:1;align-items:center;gap:10px;padding:20px 20px 0;display:flex;position:relative}.at-header-logo{object-fit:contain;width:auto;height:20px;filter:var(--logo-filter)}.at-header-title{color:var(--text-muted);letter-spacing:-.01em;flex:1;font-size:12px;font-weight:500}.at-theme-toggle{background:var(--toggle-track);cursor:pointer;border:none;border-radius:99px;flex-shrink:0;align-items:center;width:44px;height:26px;padding:0 3px;transition:background .25s;display:flex;position:relative}.at-theme-thumb{background:var(--toggle-thumb);border-radius:50%;width:20px;height:20px;transition:transform .25s cubic-bezier(.34,1.56,.64,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0000004d}.at-theme-dark .at-theme-thumb{transform:translate(18px)}.at-theme-light .at-theme-thumb{transform:translate(0)}.at-theme-icon{pointer-events:none;font-size:11px;position:absolute;right:5px}.at-theme-dark .at-theme-icon{left:5px;right:auto}.at-theme-light .at-theme-icon{left:auto;right:5px}.at-loading{z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;padding:40px 24px;display:flex;position:relative}.at-spinner{border:3px solid #3b82f633;border-top-color:var(--accent);border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.at-loading-text{color:var(--text-secondary);letter-spacing:-.01em;font-size:15px}.at-error-screen{text-align:center;z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:40px 32px;display:flex;position:relative}.at-error-icon{margin-bottom:4px;font-size:52px;line-height:1}.at-error-title{color:var(--text-primary);letter-spacing:-.03em;font-size:20px;font-weight:700}.at-error-desc{color:var(--text-muted);font-size:14px;line-height:1.6}.at-main{z-index:1;flex-direction:column;flex:1;gap:16px;padding:24px 20px 32px;display:flex;position:relative}.at-event-card{background:var(--bg-card-alt);border-radius:20px;padding:22px 22px 20px;position:relative;overflow:hidden}.at-event-card:after{content:"";pointer-events:none;background:radial-gradient(circle,#3b82f626 0%,#0000 70%);width:120px;height:120px;position:absolute;top:-40px;right:-40px}.at-badge{background:var(--green-bg);border:1px solid var(--green-border);color:var(--green);letter-spacing:.04em;text-transform:uppercase;border-radius:99px;align-items:center;gap:5px;margin-bottom:12px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.at-badge-dot{background:var(--green);border-radius:50%;width:6px;height:6px;animation:1.8s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.at-event-name{color:var(--text-primary);letter-spacing:-.04em;margin-bottom:8px;font-size:20px;font-weight:800;line-height:1.25}.at-event-meta{flex-direction:column;gap:4px;display:flex}.at-event-meta-row{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.at-event-meta-icon{text-align:center;flex-shrink:0;width:16px;font-size:12px}.at-input-card{background:var(--bg-card);border-radius:20px;flex-direction:column;gap:20px;padding:24px 22px;display:flex}.at-input-label{color:var(--text-secondary);letter-spacing:-.01em;font-size:13px;font-weight:600}.at-input-wrap{align-items:center;gap:10px;display:flex}.at-input{background:var(--bg-input);border:1.5px solid var(--border-input);width:140px;height:52px;color:var(--text-primary);appearance:none;letter-spacing:.1em;text-align:center;border-radius:14px;outline:none;flex-shrink:0;padding:0 16px;font-size:22px;font-weight:700;transition:border-color .2s,background .2s}.at-input::placeholder{color:var(--text-hint);letter-spacing:0;font-size:15px;font-weight:400}.at-input:focus{border-color:var(--accent);background:var(--accent-bg)}.at-input:disabled{opacity:.5;cursor:not-allowed}.at-confirm-btn{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);color:#fff;cursor:pointer;letter-spacing:-.01em;border:none;border-radius:14px;flex:1;height:52px;padding:0 16px;font-size:15px;font-weight:700;transition:opacity .15s,transform .1s;position:relative;overflow:hidden}.at-confirm-btn:active:not(:disabled){transform:scale(.96)}.at-confirm-btn:disabled{opacity:.45;cursor:not-allowed}.at-confirm-btn-inner{justify-content:center;align-items:center;gap:6px;display:flex}.at-btn-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.at-input-hint{color:var(--text-hint);font-size:12px;line-height:1.5}.at-input-error{color:var(--red);align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.at-result-header{flex-direction:column;align-items:center;gap:10px;padding:8px 0 4px;display:flex}.at-result-check{background:linear-gradient(135deg,#059669 0%,#047857 100%);border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:28px;animation:.4s cubic-bezier(.175,.885,.32,1.275) forwards pop-in;display:flex;box-shadow:0 8px 24px #05966959}@keyframes pop-in{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.at-result-confirmed{color:var(--green);letter-spacing:-.02em;font-size:17px;font-weight:700}.at-person-card{background:var(--bg-card-alt);border-radius:20px;align-items:center;gap:16px;padding:20px 22px;display:flex}.at-person-avatar{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;display:flex}.at-person-info{flex-direction:column;gap:3px;display:flex}.at-person-name{color:var(--text-primary);letter-spacing:-.04em;font-size:20px;font-weight:800}.at-person-branch{color:var(--text-secondary);font-size:13px}.at-info-card{background:var(--bg-card);border-radius:20px;overflow:hidden}.at-info-card-header{border-bottom:1px solid var(--border-divider);align-items:center;gap:8px;padding:14px 20px 10px;display:flex}.at-info-card-icon{font-size:16px}.at-info-card-title{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:700}.at-room-display{align-items:baseline;gap:8px;padding:16px 20px 18px;display:flex}.at-room-no{color:var(--text-primary);letter-spacing:-.05em;font-size:32px;font-weight:900}.at-room-building{color:var(--text-muted);font-size:15px;font-weight:500}.at-room-passkey{color:#818cf8;background:#6366f11a;border:1px solid #6366f140;border-radius:6px;flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:600}.at-room-empty{color:var(--text-hint);padding:16px 20px 18px;font-size:14px}.at-roommate-list{padding:8px 0 10px}.at-roommate-item{align-items:center;gap:12px;padding:10px 20px;transition:background .15s;display:flex}.at-roommate-item:active{background:var(--border)}.at-roommate-avatar{background:var(--border);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;display:flex}.at-roommate-info{flex:1}.at-roommate-name{color:var(--text-primary);letter-spacing:-.02em;font-size:15px;font-weight:600}.at-roommate-branch{color:var(--text-muted);margin-top:1px;font-size:12px}.at-chk-badge{letter-spacing:.01em;border-radius:20px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:600}.at-chk-done{background:var(--chk-done-bg);color:var(--chk-done-color);border:1px solid var(--chk-done-border)}.at-chk-pending{background:var(--chk-pending-bg);color:var(--chk-pending-color);border:1px solid var(--chk-pending-border)}.at-roommate-empty{color:var(--text-hint);padding:16px 20px 18px;font-size:14px}.at-divider{background:var(--border-divider);height:1px;margin:4px 0}.at-footer{padding:16px 0 max(env(safe-area-inset-bottom,0px), 16px);text-align:center;color:var(--footer-color);z-index:1;font-size:11px;position:relative}.at-fade-up{animation:.35s forwards fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.at-fade-up:first-child{animation-delay:0s}.at-fade-up:nth-child(2){animation-delay:60ms}.at-fade-up:nth-child(3){animation-delay:.12s}.at-fade-up:nth-child(4){animation-delay:.18s}
