body.access-locked> :not(#access-gate):not(script),body.access-away> :not(#access-gate):not(script){display:none!important}
body.access-locked,body.access-away{overflow:auto;background:#f4f7fb!important}
#access-gate[hidden]{display:none!important}
#access-gate{position:relative;z-index:2000;min-height:100dvh;display:grid;place-items:center;padding:24px 18px;font:18px/1.5 "Segoe UI",Arial,sans-serif;color:#102d52;background:radial-gradient(ellipse at top,#e7f1fa,#f4f7fb 65%)}
.access-card{width:min(100%,390px);padding:28px 32px;background:white;border:1px solid #dce5ef;border-radius:20px;box-shadow:0 10px 45px #102d520b;text-align:center}
.access-card img{width:82px;height:88px;object-fit:contain}.access-card h1{font-size:28px;letter-spacing:-.5px;margin:8px 0}.access-card p{font-size:17px;color:#5c6f86;margin:6px 0 20px}
.access-card label{display:block;text-align:left;font-weight:600;font-size:17px;margin-bottom:8px}
.access-card input{box-sizing:border-box;width:100%;height:58px;text-align:center;font:30px "Segoe UI",Arial,sans-serif;letter-spacing:14px;padding-left:20px;border:1px solid #aebfd3;border-radius:10px;color:#102d52;background:#fff}
.access-card input:focus{outline:3px solid #419bdb;outline-offset:2px}.access-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px 0}
.access-keypad button{min-height:56px;font:24px "Segoe UI",Arial,sans-serif;border:1px solid #dce5ef;border-radius:10px;background:#f5f8fc;color:#102d52;cursor:pointer;touch-action:manipulation}.access-keypad button:hover{background:#e7f1fa}.access-keypad button[data-key=clear],.access-keypad button[data-key=back]{font-size:16px}
.access-submit{width:100%;min-height:54px;border:0;border-radius:10px;background:#102d52;color:#fff;font:600 19px "Segoe UI",Arial,sans-serif;cursor:pointer}.access-submit:disabled{opacity:.6}.access-card .access-error{min-height:26px;color:#ad3038;font-size:16px;margin:14px 0 0}.access-card .access-note{font-size:14px;margin:16px 0 0;line-height:1.5}
.access-card select{box-sizing:border-box;width:100%;min-height:52px;border:1px solid #aebfd3;border-radius:10px;background:#fff;color:#102d52;padding:10px 12px;font:20px "Segoe UI",Arial,sans-serif}.access-card .access-role{min-height:22px;text-align:left;font-size:15px;margin:6px 0 16px;color:#5c6f86}.access-card input{letter-spacing:8px}
@media(max-width:440px){#access-gate{padding:16px}.access-card{padding:22px}.access-card img{height:65px}.access-keypad button{min-height:52px}}
@media print{body.access-locked> :not(#access-gate),body.access-away> :not(#access-gate){display:none!important}#access-gate{min-height:0}.access-keypad,.access-card form,.access-card img{display:none!important}}
