:root{color-scheme:light;--bg:#f5f7f4;--surface:#ffffff;--surface-soft:#edf4ef;--line:#d7e1da;--text:#17231c;--muted:#637268;--brand:#176b4d;--brand-strong:#11513a;--danger:#b42318;--shadow:0 12px 26px rgba(23,35,28,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{min-height:100vh;background:var(--bg);color:var(--text);font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}input,select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:0 12px}h1,h2,p{margin:0}.visitor-main{width:min(680px,calc(100% - 28px));margin:0 auto;padding:24px 0 48px;display:grid;gap:18px}.hero-band{min-height:188px;display:grid;align-content:center;gap:10px;border-bottom:1px solid var(--line)}.hero-band.compact{min-height:132px}.hero-band h1{font-size:34px;line-height:1.15}.hero-band p:not(.eyebrow){color:var(--muted);line-height:1.55}.eyebrow{color:var(--brand);font-size:12px;font-weight:800;letter-spacing:0}.panel,.session-row{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.panel{display:grid;gap:14px;padding:18px}.title-block{display:grid;gap:6px}.muted-copy{color:var(--muted);font-size:14px;line-height:1.55}.form-grid,.record-list,.session-list{display:grid;gap:12px}.verification-form{border-top:1px solid var(--line);padding-top:14px}.entry-section{display:grid;gap:12px}.form-grid label{display:grid;gap:6px}.form-grid label span{color:var(--muted);font-size:13px}.session-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px}.session-row div:first-child{display:grid;gap:4px}.record-row span,.session-row small,.session-row span{color:var(--muted);font-size:13px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:8px;padding:0 14px;font-weight:800;white-space:nowrap}.primary-button{border:0;background:var(--brand);color:#fff}.primary-button:hover{background:var(--brand-strong)}.secondary-button{border:1px solid var(--line);background:#fff;color:var(--text)}.secondary-button.wide{width:100%}.button-row{display:flex;gap:8px;flex-wrap:wrap}.notice{border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text);padding:12px;line-height:1.5}.notice.success{border-color:#b9dbc8;background:#edf8f1;color:#15533d}.notice.success span,.notice.success strong{display:block}.notice.success span{margin-top:4px}.notice.error{border-color:#f0b8b2;background:#fff1f0;color:var(--danger)}.empty-state{color:var(--muted);text-align:center;padding:20px 0}.qr-display{display:grid;gap:8px;justify-items:center;border:1px dashed var(--line);border-radius:8px;background:#fbfcfb;padding:22px}.qr-display span{color:var(--muted);font-size:13px}.qr-display strong{font-size:42px;letter-spacing:0}.record-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:10px 0}.fixed-toast{position:fixed;right:18px;bottom:18px;max-width:min(420px,calc(100% - 36px))}.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:rgba(23,35,28,.42)}.modal-panel{width:min(720px,100%);max-height:min(720px,calc(100vh - 40px));overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 24px 70px rgba(23,35,28,.24);padding:20px}.legal-consent-modal{display:grid;gap:16px}.legal-document-stack{display:grid;gap:12px}.legal-document-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px}.legal-document-card h3{margin:0 0 4px;font-size:17px}.legal-document-card p{margin:0 0 10px;color:var(--muted);font-size:13px}.legal-document-body{max-height:240px;overflow:auto;border-radius:8px;background:var(--surface-soft);padding:12px;line-height:1.6}@media (max-width:640px){.button-row,.session-row{grid-template-columns:1fr}.button-row{display:grid}.primary-button,.secondary-button{width:100%}}