*{box-sizing:border-box}body.visitor-page{margin:0;background:#f3f6f4;color:#273430;font:14px -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;letter-spacing:0;color-scheme:light}button,input,select{font:inherit}button,a,input,summary,select{touch-action:manipulation}button,.visitor-link-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid #ccdacf;border-radius:8px;background:#fff;color:#405548;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}button:disabled{opacity:.5;cursor:default}button.primary{background:#315d42;color:#fff;border-color:#315d42}button.danger{background:#fff7f5;color:#94493e;border-color:#dfc6bf}button:hover:not(:disabled){filter:brightness(.96)}svg{width:20px;height:20px;flex:0 0 auto;stroke-width:1.7}a{color:#315d42}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #3e7954;outline-offset:3px}[hidden]{display:none!important}.visitor-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px max(20px,calc((100% - 1080px)/2));background:#fcfdfc;border-bottom:1px solid #dce5df}.visitor-brand{display:flex;align-items:center;gap:12px;min-width:0;color:#374d43;text-decoration:none}.visitor-brand img{flex:0 0 44px;object-fit:contain}.visitor-brand strong{display:block;font-size:14px}.visitor-brand span span{display:block;margin-top:4px;font-size:11px;color:#607066}.visitor-back{display:flex;align-items:center;gap:8px;min-height:44px;font-size:12px;text-decoration:none}.visitor-main{max-width:1120px;margin:0 auto;padding:32px 20px;min-height:calc(100dvh - 170px)}.visitor-heading{margin-bottom:28px}.visitor-heading h1{margin:8px 0;font-size:27px;font-weight:600;line-height:1.35}.visitor-heading>p:not(.eyebrow){color:#607066;line-height:1.6;margin:8px 0}.eyebrow{font-size:10px;font-weight:700;text-transform:uppercase;color:#56745f;margin:0}.visitor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,430px);gap:56px;align-items:start}h2{font-size:16px;line-height:1.5;margin:0 0 20px;font-weight:600}h2:has(svg){display:flex;align-items:center;gap:10px}.visitor-details>label:not(.visitor-check){display:flex;flex-direction:column;gap:8px;margin-bottom:18px;font-size:13px;font-weight:600;color:#435349}input:not([type=checkbox]),select{width:100%;min-width:0;min-height:46px;padding:11px 14px;border:1px solid #dce5df;border-radius:8px;background:#fff;color:#273430;box-shadow:inset 0 1px 2px #22422c06}input::placeholder{color:#69786f}.visitor-privacy{margin-top:24px;border-top:1px solid #dce5df;padding-top:18px}.visitor-privacy summary{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:600;color:#435847;cursor:pointer}.visitor-privacy p{font-size:12px;line-height:1.7;color:#607066}.visitor-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;margin:18px 0;color:#435349}.visitor-check input{width:18px;height:18px;flex:0 0 18px;accent-color:#315d42;margin:2px 0 0}.visitor-capture{min-width:0}.visitor-camera{position:relative;background:#e5ece7;aspect-ratio:4/3;border-radius:8px;overflow:hidden;border:1px solid #dce5df;display:grid;place-items:center}.visitor-camera video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.visitor-camera>span{position:absolute;display:grid;place-items:center}.visitor-camera>span svg{width:36px;height:36px;color:#6d8574}.visitor-face-guide{position:absolute;width:44%;height:73%;border:2px solid #ffffffcb;border-radius:50%;pointer-events:none}.capture-prompt{font-size:15px;font-weight:600;margin:16px 0 6px;line-height:1.5}.capture-count{font-size:12px;color:#607066;margin:0 0 14px}.visitor-thumbnails{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:16px}.visitor-thumbnails:empty{display:none}.visitor-thumbnails img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid #bed4c5;border-radius:6px}.visitor-actions{display:flex;gap:10px;flex-wrap:wrap}.visitor-message{font-size:13px;line-height:1.6;color:#a33d31;overflow-wrap:anywhere}.visitor-message:empty{display:none}.visitor-submit{width:100%;margin-top:16px}.visitor-cancel{display:block;padding:16px;text-align:center;font-size:12px}.visitor-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;max-width:1080px;margin:0 auto;padding:20px 0;border-top:1px solid #dce5df;color:#607066;font-size:11px}.icon-button{width:44px;height:44px;flex:0 0 44px;padding:10px}.digital-pass{max-width:740px;border:1px solid #dce5df;background:#fcfdfc;border-radius:8px;padding:28px;box-shadow:inset 0 1px 0 white,0 8px 32px #26413008}.pass-person{display:flex;gap:24px;align-items:center}.pass-person>img{width:112px;height:132px;object-fit:cover;background:#e5ece7;border-radius:6px}.pass-person h2{font-size:22px;margin:12px 0 6px;overflow-wrap:anywhere}.pass-person p{margin:6px 0;color:#607066;line-height:1.5;overflow-wrap:anywhere}.pass-badge{display:inline-block;background:#f8edcf;color:#785d1a;border-radius:4px;font-size:12px;font-weight:600;padding:6px 8px}.pass-badge.active{background:#dfefe4;color:#315d42}.pass-validity{display:flex;gap:12px;align-items:center;padding:20px 0;margin-top:20px;border-block:1px solid #dce5df;color:#435847}.pass-validity p{margin:6px 0 0;font-size:12px;color:#607066}.pass-qr-area{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:center;margin-top:24px}.pass-qr-area>img{width:220px;height:220px}.pass-qr-area p{line-height:1.65;font-size:13px}.pass-qr-area button{margin:4px 4px 0 0}.private-note{font-size:12px;color:#607066;line-height:1.6}.gate-poster{text-align:center;max-width:600px;margin:0 auto}.gate-poster h1{font-size:30px;margin:16px 0}.gate-poster .eyebrow{margin-top:20px}.gate-qr{display:block;max-width:100%;height:auto;margin:24px auto;background:#fff}.gate-seal{object-fit:contain}.visitor-tabs{display:flex;gap:24px;border-bottom:1px solid #dce5df;margin-bottom:28px}.visitor-tabs a{padding:12px 0;text-decoration:none;color:#607066;font-weight:600}.visitor-tabs a[aria-current]{color:#315d42;border-bottom:2px solid #315d42}.visitor-lookup{display:flex;align-items:flex-end;gap:12px;padding-bottom:24px;border-bottom:1px solid #dce5df}.visitor-lookup label{flex:1;min-width:0;display:grid;gap:8px;font-size:12px}.visitor-toolbar{display:flex;align-items:flex-end;gap:16px;padding:24px 0 16px}.visitor-toolbar label{display:grid;gap:8px;font-size:12px;width:190px}.visitor-toolbar>span{margin-left:auto;color:#607066;font-size:12px;align-self:center}.visitor-review-row{display:flex;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid #dce5df}.visitor-review-row>img{width:64px;height:76px;object-fit:cover;border-radius:6px;background:#e5ece7}.visitor-review-row>div{flex:1;min-width:0}.visitor-review-row h2{margin:0 0 6px;font-size:15px;overflow-wrap:anywhere}.visitor-review-row p{margin:4px 0;font-size:12px;color:#607066;overflow-wrap:anywhere}.visitor-pagination{display:flex;gap:20px;align-items:center;justify-content:center;margin-top:24px;font-size:12px}.visitor-empty{padding:48px 16px;text-align:center;color:#607066}dialog{width:min(660px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid #dce5df;border-radius:8px;color:#273430;background:#fcfdfc}dialog::backdrop{background:#1e30264d}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.dialog-heading h2{margin:0}.visitor-review-person{display:flex;gap:20px;align-items:flex-start;margin-bottom:20px}.visitor-review-person img{width:120px;height:150px;object-fit:cover;border-radius:6px;background:#e5ece7}.visitor-review-person>div{min-width:0}.visitor-review-person h3{margin:0 0 10px;font-size:18px;overflow-wrap:anywhere}.visitor-review-person p{font-size:13px;line-height:1.6;overflow-wrap:anywhere}#visitorScanVideo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px}@supports(backdrop-filter:blur(1px)){.visitor-header,.digital-pass,dialog{background:#ffffffd1;backdrop-filter:blur(16px)}}@media(prefers-reduced-transparency:reduce){.visitor-header,.digital-pass,dialog{background:#fcfdfc;backdrop-filter:none}}@media(max-width:760px){.visitor-layout{grid-template-columns:1fr;gap:32px}.visitor-heading h1{font-size:24px}.visitor-main{padding:24px 20px}.visitor-back{font-size:11px}.visitor-brand strong{font-size:12px}.visitor-brand img{width:36px;height:36px;flex-basis:36px}.visitor-footer{margin-inline:20px}.digital-pass{padding:20px}.pass-qr-area{grid-template-columns:1fr;gap:20px}.pass-qr-area>img{justify-self:center}.visitor-lookup{flex-wrap:wrap}.visitor-lookup label{flex-basis:100%}.visitor-review-row{gap:12px}.visitor-review-row button{padding:10px}.visitor-review-person img{width:88px;height:110px}.visitor-toolbar{gap:10px}.visitor-toolbar label{width:160px}.visitor-review-person{gap:14px}input:not([type=checkbox]),select{font-size:16px}}@media(max-width:380px){.visitor-main{padding-inline:16px}.visitor-header{padding-inline:16px;gap:12px}.visitor-back{max-width:100px}.pass-person{gap:14px}.pass-person>img{width:82px;height:106px}.pass-person h2{font-size:18px}.visitor-toolbar label{width:140px}}
@media(min-width:761px) and (max-width:1000px){.visitor-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}}
@media print{.visitor-header,.visitor-footer,.gate-poster .visitor-link-button{display:none}.visitor-main{padding:0;min-height:0}.gate-poster{break-inside:avoid}}
.visitor-rejected-capture{margin:16px 0;border-left:3px solid #a33d31;padding-left:12px}.visitor-rejected-capture figcaption{font-size:13px;font-weight:600;line-height:1.6;margin-bottom:8px;color:#a33d31}.visitor-rejected-capture img{display:block;width:100%;height:auto;border-radius:6px}.visitor-thumbnails img[data-rejected="true"]{border:3px solid #a33d31}
.visitor-pose-heading{display:flex;align-items:center;gap:10px;margin-bottom:14px;min-height:44px}.visitor-pose-heading>span:first-child{display:grid;place-items:center;width:40px;height:40px;background:#e0ece5;border-radius:6px;color:#315d42;flex:0 0 40px}.visitor-pose-heading h3{font-size:15px;margin:4px 0 0}.visitor-pose-heading>span:last-child{margin-left:auto;max-width:45%;font-size:12px;line-height:1.5;text-align:right;color:#607066}.visitor-camera>.visitor-photo-review{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:scaleX(-1);background:#e5ece7}.visitor-photo-steps{gap:6px}.visitor-photo-step{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;padding:6px 3px;gap:6px;min-height:86px;font-weight:500;border-color:#dce5df}.visitor-photo-step>img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transform:scaleX(-1);border:0;border-radius:3px}.visitor-photo-step>svg{width:24px;height:24px;margin-block:8px}.visitor-photo-step>span{display:block;font-size:10px;line-height:1.4;text-align:center;overflow-wrap:anywhere}.visitor-photo-step[data-active="true"]{border:2px solid #315d42;padding:5px 2px;background:#eef5f0}.visitor-photo-step[data-rejected="true"]{border-color:#a33d31;color:#a33d31;background:#fff7f5}.visitor-photo-step:disabled{opacity:.6}
.visitor-photo-step{height:100px}.visitor-photo-step>img{height:42px;aspect-ratio:auto}.visitor-photo-step>svg{margin-block:9px}
.visitor-field-help{margin:-8px 0 18px;font-size:12px;line-height:1.6;color:#607066}
.visitor-field-error{margin:-8px 0 18px;font-size:12px;line-height:1.6;color:#a33d31}
.visitor-details input[aria-invalid="true"]{border-color:#a33d31}
.visitor-details-page{max-width:680px}.visitor-capture-page,.visitor-registration-page{max-width:680px;margin-inline:auto}
.visitor-steps{display:flex;gap:20px;flex-wrap:wrap;list-style:none;margin:0 0 28px;padding:0;font-size:12px;color:#607066}
.visitor-steps li{padding-bottom:10px;border-bottom:2px solid #dce5df}.visitor-steps [aria-current]{color:#315d42;font-weight:700;border-color:#315d42}
.visitor-capture-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 0 24px;padding:0 0 20px;border-bottom:1px solid #dce5df}
.visitor-capture-summary dt{font-size:12px;color:#607066;margin-bottom:6px}.visitor-capture-summary dd{font-size:13px;line-height:1.6;margin:0;overflow-wrap:anywhere}
.alumni-id-preview{display:block;width:100%;height:240px;object-fit:contain;margin:0 0 20px;background:#e5ece7;border:1px solid #dce5df;border-radius:6px}
.visitor-cancel-button{display:block;margin:0 auto;background:transparent;border:0;text-decoration:underline;font-size:12px}
.alumni-id-review{margin:20px 0;padding-top:20px;border-top:1px solid #dce5df}.alumni-id-review img{display:block;width:100%;max-height:400px;object-fit:contain;background:#e5ece7}
.alumni-id-review p{font-size:12px;line-height:1.6;color:#607066}.visitor-pending-count{font-size:11px;margin-left:6px}
@media(max-width:420px){.visitor-steps{gap:12px;font-size:11px}.visitor-capture-summary{grid-template-columns:1fr;gap:12px}}
.alumni-auth-page{max-width:480px}.alumni-credentials{min-width:0;margin:26px 0;padding:20px 0 0;border:0;border-top:1px solid #dce5df}.alumni-credentials legend{font-weight:600;padding:0 12px 0 0}.alumni-credentials>label{display:grid;gap:8px;margin-bottom:18px;font-size:13px;font-weight:600}.alumni-password-help{font-size:12px;line-height:1.7;color:#607066;margin:0 0 16px}.alumni-password-field{display:flex;gap:6px;min-width:0}.alumni-password-field input{flex:1}.alumni-password-field button{flex:0 0 46px;height:46px}.alumni-account-heading{display:flex;gap:16px;align-items:center;justify-content:space-between}.alumni-account-heading>div{min-width:0;overflow-wrap:anywhere}.alumni-account-heading p{line-height:1.6}.alumni-profile-summary{display:flex;gap:20px;padding-bottom:24px;border-bottom:1px solid #dce5df}.alumni-profile-summary img{width:80px;height:96px;object-fit:cover;border-radius:6px}.alumni-profile-summary>div{min-width:0;overflow-wrap:anywhere}.alumni-profile-summary p{font-size:12px;line-height:1.6;color:#607066;margin:8px 0}.alumni-profile-summary .pass-badge{margin:8px 0;color:#785d1a}.alumni-profile-summary .pass-badge.active{color:#315d42}.alumni-new-visit{padding-top:28px;margin-top:24px;border-top:1px solid #dce5df}.alumni-recovery-notice{padding:20px 0;border-bottom:1px solid #dce5df}.alumni-recovery-notice p{font-size:13px;line-height:1.6}.alumni-recovery-notice output{display:block;font:14px monospace;overflow-wrap:anywhere;padding:16px;background:#e7efe9;margin-bottom:16px}.alumni-delete{margin-top:28px;padding-top:20px;border-top:1px solid #dce5df}.alumni-delete>p{font-size:12px;line-height:1.7;color:#94493e}.visitor-tabs{flex-wrap:wrap;gap:16px}.visitor-heading h1{overflow-wrap:anywhere}
.alumni-current-visit{margin-top:24px;padding-top:24px;border-top:1px solid #dce5df}.alumni-current-visit>p{font-size:13px;line-height:1.7;overflow-wrap:anywhere}#currentAlumniPass{margin-top:20px}
.alumni-profile-summary{border-bottom:0;padding-bottom:0}.alumni-profile-summary strong{display:block}
.visitor-heading .alumni-signin-hint{font-size:13px}.alumni-signin-hint a{display:inline-block;padding:4px 2px;font-weight:600;text-underline-offset:3px}
