:root{color-scheme:light;--page:#f5f5f5;--ink:#172436;--muted:#718092;--line:#e1e7ef;--green:#16704b}
*{box-sizing:border-box}
body{margin:0;background:var(--page);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}
.pos-login{min-height:100vh;padding:20px 16px 30px 5px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;height:26px}
.brand img{width:160px;height:50px;object-fit:contain}
.clock{color:#808080;font:16px "Courier New",monospace;text-align:right}
.login-stage{width:390px;margin:73px 6.9% 0 auto;padding:28px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 40px #17344d0a}
.login-stage h1{font-size:22px;font-weight:700;letter-spacing:-.5px;margin:0 0 6px}
.login-subtitle{margin:0 0 22px;color:#64748b;font-size:13px;line-height:1.5}
.field{display:block;margin:0 0 6px;color:#516175;font-size:11px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}
.credential-field{display:block;width:100%;height:46px;padding:0 12px;border:1px solid #d9dfe5;border-radius:8px;background:#fff;color:var(--ink);font:15px Inter,"Segoe UI",Arial,sans-serif}
#login-username{margin-bottom:12px}
.credential-field:focus{border-color:#1b8d5b;outline:3px solid #1b8d5b1f}
.password-wrap{position:relative}
.password-wrap input{padding-right:48px}
.field-eye{position:absolute;top:0;right:0;width:48px;height:46px;border:0;background:transparent;color:#657384;cursor:pointer;font-size:17px;display:grid;place-items:center}
.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.key{display:grid;place-items:center;height:58px;border:1px solid var(--line);border-radius:9px;background:#f9fbfd;color:#111c29;cursor:pointer;font:500 23px Inter,"Segoe UI",Arial,sans-serif}
.key--action{font-size:21px}
.key:hover{background:#f3fbf7;border-color:#1b8d5b}
.key:active{background:#dff3e8}
.key--submit{background:var(--green);border-color:var(--green);color:#fff}
.key--submit:hover{background:#10563a;border-color:#10563a}
button:focus-visible,a:focus-visible{outline:3px solid #7bafee;outline-offset:2px}
.hint{margin:16px 0 0;color:var(--muted);text-align:center;font-size:11px;line-height:1.6}
.recovery{margin:18px 0 0;text-align:center;font-size:12px;line-height:1.6}
.recovery a{color:#0000ee;text-decoration:underline}
.alert{margin-bottom:12px;padding:12px;border:1px solid #e4b3b3;border-radius:8px;background:#fff1f1;color:#962727;font-size:14px}
.success{background:#effaf2;border-color:#a9d3b4;color:#236734}
.login-status{text-align:center;color:#555;font-size:14px}
[aria-busy="true"] .key{pointer-events:none;opacity:.6}
@media(min-width:1400px){.login-stage{margin-right:12%}}
@media(max-width:600px){.pos-login{padding:20px 16px}.topbar{align-items:flex-start;flex-wrap:wrap;gap:12px}.clock{font-size:12px}.login-stage{width:min(390px,100%);margin:40px auto 0;padding:22px}}
@media(max-height:650px){.login-stage{margin-top:30px}}
/* Keep the direct sign-in screen usable on narrow phones and short displays. */
.pos-login{min-height:100svh}
.login-stage{max-width:100%}
.credential-field{font-size:16px}
@media(max-width:600px){.brand img{max-width:100%;height:40px}.login-stage{margin-top:28px}.recovery a{display:inline-flex;align-items:center;min-height:44px}.key{min-height:48px}.clock{overflow-wrap:anywhere}}
@media(max-width:360px){.pos-login{padding-inline:12px}.login-stage{padding:18px}.keypad{gap:6px}.key{height:50px}}
