/* v1.0.17: fluid kiosk layouts and usable forms, touch + physical keyboard */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
body{min-width:0}main,main>section,.admin-shell,.admin-content{min-width:0;max-width:100%}
img,svg,canvas,video{max-width:100%}
input,select,textarea,button{font-family:inherit;font-size:max(16px,1rem)}
input,select,textarea{max-width:100%;min-width:0}
button,[type=submit],a.primary,.verify-keypad button{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e9c779;outline-offset:3px}
/* Do not trap administrator or form pages in the kiosk's landscape viewport lock. */
body:has(.admin-shell),body:has(.glass-form),body:has(.profile-search){height:auto!important;min-height:100dvh!important;overflow-y:auto!important}
body:has(.admin-shell)>main,body:has(.glass-form)>main,body:has(.profile-search)>main{height:auto!important;max-height:none!important;overflow:visible!important;display:block!important}
body:has(.admin-shell)>main>section,body:has(.glass-form)>main>section{height:auto!important;max-height:none!important;overflow:visible!important}
.admin-shell{width:min(1480px,100%);margin-inline:auto;gap:clamp(12px,2vw,28px);padding-inline:clamp(12px,2vw,28px)}
.admin-content{flex:1 1 0;min-width:0;overflow-wrap:anywhere}
.admin-content .glass-form,.admin-content .profile-search{width:100%;max-width:100%;padding:clamp(14px,2vw,26px)}
.admin-content .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.5vw,22px)}
.admin-content .fields label,.admin-content .prize-row label,.profile-search label{min-width:0;display:flex;flex-direction:column;gap:7px}
.admin-content .fields label.wide{grid-column:1/-1}
.admin-content input:not([type=checkbox]):not([type=radio]),.admin-content select,.admin-content textarea{width:100%;min-height:48px;border-radius:12px;padding:10px 13px}
.admin-content textarea{min-height:100px;resize:vertical}
.admin-content button,.admin-content .primary,.admin-content .profile-edit-link{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;max-width:100%;white-space:normal;text-align:center}
.admin-content .prize-editor{display:grid;gap:12px}
.admin-content .prize-row{display:grid;grid-template-columns:auto minmax(150px,2fr) minmax(110px,1fr) minmax(90px,1fr) auto;align-items:end;gap:12px;min-width:0}
.admin-content .table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.admin-content .table-wrap table{width:100%;min-width:560px}
.admin-content .profile-search{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.admin-content .profile-search label{flex:1 1 220px}
.admin-content .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:14px}
.verify-keypad button{min-width:44px;min-height:44px}
.otp-boxes{max-width:100%;gap:clamp(3px,1vw,12px)}
@media(max-width:1100px){.admin-content .prize-row{grid-template-columns:auto minmax(0,2fr) minmax(100px,1fr);}.admin-content .prize-row label:nth-of-type(3),.admin-content .prize-row .stock{grid-column:auto}}
@media(max-width:760px){.admin-shell{display:flex;flex-direction:column;padding-inline:12px}.admin-shell .admin-nav{position:static!important;width:100%;max-height:none!important;display:flex;flex-wrap:wrap;gap:8px}.admin-content .fields{grid-template-columns:minmax(0,1fr)}.admin-content .prize-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px;border:1px solid #d2ae6f55;border-radius:14px}.admin-content .prize-row .prize-num{grid-column:1/-1}.admin-content .prize-row label:first-of-type{grid-column:1/-1}.admin-content .prize-row .stock{grid-column:1/-1}.admin-content .profile-search button,.admin-content .profile-search a{flex:1 1 auto}}
@media(max-width:420px){.kiosk-session-controls{max-width:calc(100% - 16px);gap:5px}.kiosk-timer{min-width:0;padding:8px!important}.kiosk-exit{padding:8px!important}.admin-content h1{font-size:clamp(22px,7vw,30px)}.admin-content .glass-form{padding:12px}}
@media(hover:none){button:hover,a:hover{transform:none}}
