:root{color:#0b204c;background:#e8edf7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{color:#fff;cursor:pointer;background:#5a55ca;border:0;border-radius:12px;justify-content:center;align-items:center;min-height:50px;padding:10px 16px;font-weight:800;display:flex}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:4px solid #f9cc0e}input,select,textarea{color:#0b204c;background:#fff;border:1px solid #dce3f1;border-radius:10px;min-height:48px;padding:10px 12px}textarea{resize:vertical;min-height:92px}.gate-app{min-height:100vh;padding:20px}.gate-header,.scanner-card,.result-card,.secondary-grid>section,.offline-banner{background:#fff;border-radius:20px;max-width:1120px;margin:0 auto 18px;padding:22px;box-shadow:0 12px 36px #0b204c14}.gate-header{color:#fff;background:#22215b;justify-content:space-between;align-items:center;display:flex}.gate-header h1{margin:2px 0;font-size:clamp(1.8rem,4vw,2.6rem)}.eyebrow{color:#f26950;letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:900}.gate-active{margin:7px 0 0;font-size:.92rem}.header-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.connection{border-radius:999px;padding:7px 12px;font-size:.8rem;font-weight:900}.connection.online{color:#08785d;background:#dff8ef}.connection.offline{color:#a93424;background:#fdebe7}.secondary-button{background:#ffffff1f;border:1px solid #fff5;min-height:40px}.operations-grid,.secondary-grid{grid-template-columns:minmax(0,1fr);gap:18px;max-width:720px;margin:0 auto;display:grid}.scanner-card,.result-card{max-width:none;margin:0}.scanner-card h2,.result-card h2,.secondary-grid h2{margin:8px 0;font-size:1.45rem}.muted{color:#8490a8;line-height:1.5}.primary-actions{gap:10px;margin:20px 0;display:grid}.camera-button{background:#f26950;min-height:60px;font-size:1.05rem}.manual-access-button{background:#5a55ca;min-height:60px;font-size:1.05rem}.manual-authorization{background:#f0f4fd;border-radius:14px;padding:16px}.search-results{gap:6px;margin-top:8px;display:grid}.search-result{color:#0b204c;text-align:left;background:#fff;border:1px solid #dce3f1;justify-content:stretch;align-items:flex-start;display:grid}.search-result span{color:#66738d;font-size:.8rem}.authorization-card{border-top:1px solid #e4e9f4;gap:9px;padding:14px 0;display:grid}.authorization-card>div{gap:3px;display:grid}.authorization-card span{color:#66738d;font-size:.82rem}.request-status{border-radius:999px;justify-self:start;padding:5px 9px;font-weight:900}.request-status.pending{color:#8b6000;background:#fff3cf}.request-status.authorized{color:#08785d;background:#dff8ef}.contact-actions{background:#f0f4fd;border-radius:10px;padding:10px}.camera-frame{color:#fff;text-align:center;background:#0b204c;border-radius:16px;margin:14px 0;padding:12px;overflow:hidden}.manual-code,details{border-top:1px solid #e4e9f4;margin-top:15px;padding-top:14px}.manual-code summary,details summary{cursor:pointer;font-weight:800}.manual-code label,.gate-form label,.guest-form label{gap:6px;margin-top:10px;font-size:.84rem;font-weight:800;display:grid}.toast{color:#403ba9;background:#ecebff;border-radius:12px;margin-top:14px;padding:13px;font-weight:700}.empty-result{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:360px;display:flex}.result-icon,.brand-mark{color:#fff;background:#5a55ca;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-weight:900;display:flex}.allowed-result,.booking-result,.scheduled-result,.denied-result{border:0;margin:0;padding:0}.scheduled-result .eyebrow{color:#b66a00}.scheduled-badge{color:#8a5700;background:#fff0c7;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:900;display:inline-block}.scheduled-message{color:#6a4a0b;background:#fff8e5;border-left:5px solid #e5a52f;border-radius:12px;margin:18px 0;padding:14px 16px;line-height:1.5}.status-badge{color:#08785d;background:#dff8ef;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:900;display:inline-block}.entry-intake{background:#f7f8fc;border:1px solid #dfe5f2;border-radius:18px;gap:14px;margin-top:18px;padding:18px;display:grid}.entry-intake-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.entry-intake-heading h3{margin:5px 0 0;font-size:1.15rem}.entry-close{color:#0b204c;background:0 0;border:1px solid #cbd5e6;min-height:38px;padding:7px 11px}.access-kind-picker{grid-template-columns:1fr 1fr;gap:10px;display:grid}.access-kind-picker label{cursor:pointer;text-align:center;background:#fff;border:2px solid #dce3f1;border-radius:14px;gap:2px;min-height:112px;padding:14px;display:grid}.access-kind-picker label.selected{background:#ecebff;border-color:#5a55ca;box-shadow:0 0 0 3px #5a55ca1f}.access-kind-picker input{opacity:0;width:1px;height:1px;position:absolute}.access-kind-picker span{font-size:1.8rem}.access-kind-picker small,.entry-photo-button small{color:#66738d}.entry-person-summary{background:#fff;border-left:5px solid #399;border-radius:10px;gap:3px;padding:12px 14px;display:grid}.entry-person-summary span{color:#66738d;font-size:.78rem}.entry-intake>label:not(.entry-photo-button){gap:6px;font-size:.84rem;font-weight:800;display:grid}.entry-field-label{align-items:baseline;gap:4px;display:inline-flex}.required-mark{color:#e64c3c;line-height:1}.evidence-kind-picker{border:1px solid #dce3f1;border-radius:12px;gap:16px;margin:0;padding:12px;display:flex}.evidence-kind-picker legend{padding:0 5px;font-size:.84rem;font-weight:800}.evidence-kind-picker label{align-items:center;gap:6px;font-size:.84rem;font-weight:700;display:flex}.evidence-kind-picker input{min-height:auto}.entry-photo-label{margin:0;font-size:.84rem;font-weight:800}.entry-photo-button{cursor:pointer;text-align:center;background:#fff;border:2px dashed #9badd0;border-radius:14px;gap:4px;padding:18px;display:grid}.entry-photo-button.ready{background:#e8f8f4;border-style:solid;border-color:#399}.entry-photo-button input{opacity:0;width:1px;height:1px;position:absolute}.entry-photo-button span{font-size:1.8rem}.entry-photo-preview{aspect-ratio:16/10;object-fit:contain;background:#dfe6f2;border-radius:10px;width:min(100%,420px);max-height:230px;margin:0 auto 8px;display:block}.entry-photo-loading{color:#66738d;text-align:center;margin:0;font-size:.8rem}.privacy-note{color:#66738d;margin:0;font-size:.75rem}.entry-feedback{color:#8f2f25;background:#fff0ec;border-left:5px solid #d94d3f;border-radius:12px;gap:4px;padding:12px 14px;font-size:.82rem;display:grid}.entry-feedback strong{color:#7b251d}.denied-result .eyebrow{color:#b53d2c}dl{gap:1px;margin:18px 0;display:grid}dl div{border-bottom:1px solid #edf0f6;justify-content:space-between;align-items:center;padding:11px 0;display:flex}dt{color:#8490a8;font-size:.78rem;font-weight:700}dd{text-align:right;margin:0;font-weight:800}.guest-form{background:#f0f4fd;border-radius:14px;margin-top:18px;padding:16px}.form-columns{grid-template-columns:1fr 1fr;gap:10px;display:grid}.capacity-message{color:#b53d2c;font-size:.84rem}.guest-list{margin-top:18px}.guest-row,.movement-row{border-top:1px solid #e4e9f4;align-items:center;gap:10px;padding:12px 0;display:flex}.guest-row>div{flex:1;gap:3px;display:grid}.guest-row span,.movement-row span{color:#8490a8;font-size:.78rem}.presence{background:#f0f4fd;border-radius:999px;padding:5px 8px}.small-button{min-height:38px;padding:7px 10px;font-size:.75rem}.offline-banner{box-shadow:none;background:#fff0ec;border-left:6px solid #ec5858}.offline-banner p{margin-bottom:0}.secondary-grid{margin-top:18px}.secondary-grid>section{max-width:none;margin:0}.section-heading,.present-card-main{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.present-count{color:#08785d;background:#dff8ef;border-radius:999px;justify-content:center;align-items:center;min-width:38px;height:38px;padding:0 10px;font-size:1.05rem;font-weight:900;display:flex}.present-search label{margin-bottom:6px;font-size:.84rem;font-weight:800;display:block}.present-search>div{gap:8px;display:flex}.present-search input{flex:1;min-width:0}.clear-search,.cancel-exit{color:#403ba9;background:#f0f4fd;min-height:48px}.present-list{gap:12px;margin-top:16px;display:grid}.present-card{border:1px solid #dce3f1;border-left:5px solid #399;border-radius:16px;padding:15px}.present-card-main>div{gap:3px;display:grid}.present-card-main strong{font-size:1.05rem}.present-card-main span:not(.inside-badge),.present-details span,.present-empty span{color:#66738d;font-size:.8rem}.inside-badge{color:#08785d;background:#dff8ef;border-radius:999px;padding:6px 9px;font-size:.7rem;font-weight:900}.present-details{flex-wrap:wrap;gap:7px 14px;margin:12px 0;display:flex}.exit-button{background:#d94d3f;width:100%;min-height:44px}.exit-confirmation{background:#fff0ec;border-radius:12px;padding:12px}.exit-confirmation p{margin:0 0 10px;font-size:.86rem;font-weight:800}.exit-confirmation>div{grid-template-columns:1fr auto;gap:8px;display:grid}.present-empty{text-align:center;background:#f7f8fc;border:1px dashed #cbd5e6;border-radius:14px;gap:5px;margin-top:14px;padding:18px;display:grid}.gate-form{gap:8px;display:grid}.pending-card{background:#f0f4fd;border-radius:14px;justify-content:space-between;align-items:center;margin:15px 0;padding:14px;display:flex}.pending-card>div{display:grid}.pending-card strong{font-size:1.6rem}.movement-history-heading{justify-content:space-between;align-items:flex-start;display:flex}.movement-history-heading h2{margin-bottom:4px}.movement-history-heading p{margin:0 0 12px}.movement-count{color:#08785d;background:#e8f8f4;border-radius:18px;justify-content:center;align-items:center;min-width:36px;height:36px;font-weight:900;display:flex}.movement-list{margin:0;padding:0;list-style:none}.movement-list li{border-bottom:1px solid #e4e9f4;padding:0}.movement-list li.expanded{background:#f7f9fd;border:1px solid #dce3f1;border-radius:14px;margin:7px 0;overflow:hidden}.movement-summary{color:#0b204c;text-align:left;background:0 0;border:0;grid-template-columns:36px minmax(0,1fr) auto 20px;align-items:center;gap:10px;width:100%;min-height:70px;padding:10px 4px;display:grid}.movement-list li.expanded .movement-summary{padding:10px 12px}.movement-direction{background:#e8f8f4;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;font-weight:900;display:flex;color:#08785d!important;font-size:1.2rem!important}.movement-direction.exit{background:#fff0ec;color:#c74435!important}.movement-main-copy{gap:4px;min-width:0;display:grid}.movement-main-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.movement-main-copy small,.movement-time,.movement-time small{color:#8490a8;font-size:.8rem}.movement-time{text-align:right;gap:2px;font-weight:800;display:grid}.movement-time small{font-size:.7rem;font-weight:500}.movement-chevron{font-weight:900;color:#5a55ca!important;font-size:1rem!important}.movement-detail{border-top:1px solid #dce3f1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;display:grid}.movement-detail>div{background:#fff;border-radius:10px;gap:4px;padding:10px;display:grid}.movement-detail span{color:#8490a8;font-size:.7rem;font-weight:700}.movement-detail strong{overflow-wrap:anywhere;font-size:.82rem}.movement-detail .movement-detail-wide{grid-column:1/-1}.movement-reference strong{color:#66738d;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem}.movement-empty{color:#8490a8;text-align:center;padding:28px 0!important}.movement-pagination{justify-content:space-between;align-items:center;gap:12px;padding-top:16px;display:flex}.movement-pagination span{color:#66738d;text-align:center;font-size:.82rem}.movement-pagination .secondary-button{min-width:92px;min-height:40px;padding:8px 12px}.movement-pagination .secondary-button:disabled{cursor:not-allowed;opacity:.4}.login-page,.gate-center{background:linear-gradient(160deg,#22215b,#5a55ca);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:#fff;border-radius:24px;width:100%;max-width:440px;padding:36px;box-shadow:0 24px 70px #0b204c55}.brand-logo{object-fit:contain;width:220px;height:112px;margin:0 auto 20px;display:block}.brand-logo.compact{width:126px;height:64px;margin:0}.gate-heading{align-items:center;gap:18px;display:flex}.login-card h1,.login-card .eyebrow,.login-card .muted{text-align:center}.feedback{color:#b53d2c;text-align:center}.verbal-authorization-button{color:#08785d;background:#e8f8f4;border:1px solid #399}.verbal-authorization-panel{background:#f3fbf9;border:1px solid #9dd9cf;border-radius:14px;gap:10px;margin-top:10px;padding:14px;display:grid}.verbal-authorization-panel p{color:#52627d;margin:0;font-size:.8rem}.verbal-confirmation-check{cursor:pointer;background:#fff;border:2px solid #cbd5e6;border-radius:14px;align-items:center;gap:12px;min-height:76px;padding:14px;transition:background .12s,border-color .12s,box-shadow .12s;display:flex}.verbal-confirmation-check.selected{background:#e8f8f4;border-color:#399;box-shadow:0 0 0 3px #33999924}.verbal-confirmation-check input{opacity:0;pointer-events:none;position:absolute}.verbal-check-icon{color:#fff;border:2px solid #8490a8;border-radius:8px;flex:0 0 30px;justify-content:center;align-items:center;width:30px;height:30px;font-size:1.2rem;font-weight:900;display:flex}.verbal-confirmation-check.selected .verbal-check-icon{background:#399;border-color:#399}.verbal-check-copy{gap:3px;display:grid}.verbal-check-copy strong{color:#0b204c;font-size:.86rem}.verbal-check-copy small{color:#66738d;font-size:.75rem;font-weight:500}.verbal-authorization-feedback{background:#fff0ec;border-left:4px solid #d94d3f;border-radius:8px;padding:10px;font-weight:700;color:#9e3328!important}.verbal-authorization-actions{grid-template-columns:1fr auto;gap:8px;display:grid}.gate-center{color:#fff;text-align:center;flex-direction:column}.gate-center .brand-logo{background:#fff;border-radius:20px;padding:12px}@media (max-width:800px){.gate-app{padding:10px}.gate-header{flex-direction:column;align-items:flex-start}.header-actions{align-items:stretch;width:100%}.operations-grid,.secondary-grid,.form-columns,.access-kind-picker{grid-template-columns:1fr}.evidence-kind-picker{flex-direction:column;align-items:flex-start}.result-card{min-height:280px}.empty-result{min-height:240px}.guest-row{flex-wrap:wrap;align-items:flex-start}.present-search>div,.exit-confirmation>div{grid-template-columns:1fr;display:grid}}@media (min-width:1200px){.scanner-card,.result-card{min-height:520px}.gate-app{padding:28px}}
