/* Owner rule: viewport pages, no document or nested scrolling. */
html{height:100%;overflow:hidden}
body{height:100vh;height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto}
main{width:100%;height:100%;min-height:0;max-width:1920px;padding:20px 4%;overflow:hidden;position:relative}
#viewport-pages{height:100%;width:100%;column-count:1;column-gap:32px;column-fill:auto;transform:translateX(var(--page-offset,0px));overflow:visible}
#viewport-pages>*{margin-top:0}
#viewport-pages .form{display:block}
#viewport-pages .form label{display:grid;margin-bottom:12px;break-inside:avoid}
#viewport-pages .form button{break-inside:avoid}
#viewport-pages .item,#viewport-pages .product-card,#viewport-pages .door,#viewport-pages figure,#viewport-pages tr{break-inside:avoid}
#viewport-pages img{max-height:calc(var(--page-height,500px) - 50px);object-fit:contain}
#viewport-pages pre{overflow-wrap:anywhere}
#viewport-pages .table-scroll{overflow:visible}
#viewport-pages table{table-layout:fixed}
#viewport-pages td,#viewport-pages th{overflow-wrap:anywhere}
#viewport-pages textarea{resize:none;min-height:64px;height:100px;max-height:140px;overflow:hidden}
.text-page-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 16px;break-inside:avoid}
.text-page-controls[hidden]{display:none}
.text-page-controls output{font-size:12px;max-width:100%;overflow-wrap:anywhere}
.viewport-pager{display:flex;justify-content:center;align-items:center;gap:14px;padding:6px 12px;border-top:1px solid var(--line);background:white;min-height:56px}
.viewport-pager button{padding:8px 16px;min-height:44px}
.viewport-pager button:disabled{cursor:default}
.viewport-pager output{min-width:100px;text-align:center;font-size:13px}
.menu-toggle{display:none}
footer{padding:10px 16px;gap:16px;font-size:11px}
header{padding-top:12px;padding-bottom:12px}
@media(max-width:850px){
 .local-notice{font-size:10px;letter-spacing:0;padding:4px 8px}
 header{flex-wrap:nowrap;gap:10px;padding:10px 12px}
 header .brand{min-width:90px;font-size:20px;flex:1}
 .brand strong{font-size:25px}.brand small{font-size:8px;margin-top:5px}
 .menu-toggle{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px}
 header nav{display:none;position:fixed;top:104px;left:12px;right:12px;width:auto;z-index:20;background:white;border:1px solid var(--pink);padding:8px;grid-template-columns:1fr 1fr;gap:4px;white-space:normal;overflow:visible}
 body.menu-open header nav{display:grid}
 header nav a{white-space:normal;padding:8px;font-size:13px}
 .account{gap:10px;font-size:12px}
 main{padding:16px 12px}
 h1{font-size:25px}.title-row{margin-bottom:16px;gap:8px}
 footer{gap:8px;padding:5px 8px;font-size:10px}
 footer a{display:none}
 .panel,.door,.item{padding:16px}
 .home-doors{margin:16px 0;gap:12px}
 .viewport-pager{gap:8px}
}
@media(max-height:600px){header{padding-top:6px;padding-bottom:6px}.brand small{display:none}main{padding-top:10px;padding-bottom:10px}.local-notice{font-size:10px;padding:3px}footer{padding:4px}.viewport-pager{min-height:50px;padding:3px}h1{font-size:23px}h2{font-size:19px}.form label{margin-bottom:8px!important}}
@media print{html,body{height:auto;overflow:visible;display:block}main{height:auto;overflow:visible}#viewport-pages{height:auto;columns:auto;transform:none}.viewport-pager,.menu-toggle{display:none}}

.text-editor{break-inside:avoid}.text-page-controls button{padding:8px 10px;font-size:12px;min-height:44px}

