.mobile-menu-toggle{display:none}
@media screen and (max-width:900px){
  *,*::before,*::after{box-sizing:border-box}
  body{font-size:15px;line-height:1.45}
  .shell{display:block;min-height:100dvh}
  aside{width:100%;padding:12px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
  .brand{flex-direction:row;align-items:center;gap:12px;min-width:0}
  .brand img{width:80px;height:58px;flex:none}
  .brand .brand-label{font-size:10px;letter-spacing:.1em;line-height:1.6;border:0;padding:0;width:auto;max-width:85px}
  .brand small,.workspace,.aside-foot{display:none}
  .mobile-menu-toggle{display:block;min-height:44px;border:1px solid #ffffff70;background:none;color:white;padding:9px 12px;border-radius:4px;font-size:14px}
  #nav{display:none;grid-column:1/-1;margin:0;overflow:visible;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px 0}
  .mobile-nav-open #nav{display:grid}
  #nav button{min-height:48px;padding:12px;font-size:14px;white-space:normal;overflow-wrap:anywhere;text-align:left}
  #nav button span{display:none}
  header{height:auto;padding:12px 16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
  #breadcrumb{flex:1 1 100%;font-size:12px;overflow-wrap:anywhere;margin:0}
  .switch{flex:1;min-width:0;display:grid;grid-template-columns:1fr 1fr;padding:3px}
  .switch button{font-size:13px;min-height:44px;padding:8px 9px;white-space:normal}
  #session-controls{margin-left:auto}.avatar{display:none}
  main{width:100%;max-width:100%;padding:24px 16px 32px;min-width:0}
  h1{font-size:27px;line-height:1.2;overflow-wrap:anywhere}h2{font-size:21px;line-height:1.3}h3{line-height:1.35}
  p,.details dd,.textpreview,.notice,.file-links a,footer{overflow-wrap:anywhere}
  .titlebar{display:flex;flex-direction:column;align-items:stretch;gap:18px;margin-bottom:22px}
  .titlebar>.btn{width:100%}
  .btn,.btn.small{min-height:44px;padding:11px 14px;font-size:14px;white-space:normal;text-align:center;line-height:1.35}
  .grid2,.terms-layout,.customer-grid,.inventory{grid-template-columns:minmax(0,1fr);gap:16px}
  .panel,.card,.stat,.formgrid>*,.price-inputs>*,.finance-grid>*,.details>*,.date-booking>*,.main{min-width:0}
  .panel{padding:18px 16px;margin-bottom:18px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:22px}
  .stat{padding:14px;text-align:left}.stat span,.stat label{font-size:13px}.stat strong{font-size:28px;margin-top:8px}.stat small{font-size:12px;line-height:1.4}
  .filters,.scan-form{display:flex;flex-direction:column;gap:12px}.filters>*{width:100%}
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:46px;width:100%;min-width:0;max-width:100%;padding:11px 12px}
  input[type=date],input[type=time]{appearance:none;-webkit-appearance:none;display:block}
  input::-webkit-date-and-time-value{text-align:left;min-height:1.4em}
  input[type=checkbox],input[type=radio]{width:20px;height:20px;flex:0 0 20px}
  .field{font-size:14px;line-height:1.4;gap:7px;margin-bottom:0}
  form>.field{margin-bottom:18px}.field small,.fine,.notice{font-size:13px}
  .formgrid,.date-booking{grid-template-columns:minmax(0,1fr);gap:18px;margin-bottom:18px}
  .date-booking>div{padding:14px}.date-booking .formgrid{grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:0}
  .quickdays{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.quickdays>span{grid-column:1/-1;font-size:13px}.quickdays .btn{padding:9px 6px;font-size:13px}
  .price-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}
  .finance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.finance-grid b{font-size:19px;overflow-wrap:anywhere}
  .rate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rate-grid small,.rate-grid b{font-size:13px}
  .details{grid-template-columns:minmax(0,1fr);gap:16px}.details dt{font-size:13px}.details dd{font-size:15px}
  .actions{gap:10px}.actions>.btn{flex:1 1 145px}.panel-head{flex-wrap:wrap;align-items:flex-start}.panel-head .actions{margin-top:0;width:100%}
  .card-bottom{flex-wrap:wrap;gap:12px}.checkline{font-size:14px;align-items:flex-start}
  .hero{padding:22px;display:block}.hero-icon{display:none}
  .table-wrap{max-width:100%;overflow:auto}
  table.mobile-records{display:block;min-width:0;width:100%}
  .mobile-records thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .mobile-records tbody{display:grid;gap:16px}
  .mobile-records tbody tr{display:block;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff}
  .mobile-records tbody td{display:block;padding:12px 14px;white-space:normal;font-size:14px;overflow-wrap:anywhere;border-bottom:1px solid var(--line)}
  .mobile-records tbody td:last-child{border-bottom:0}
  .mobile-records td[data-label]::before{content:attr(data-label);display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
  .mobile-records td strong{font-size:15px}.mobile-records td small{font-size:13px}.mobile-records td .btn{width:100%}
  .mobile-records.schedule tbody th:first-child{display:block;position:static;width:auto;padding:16px;background:var(--brand-black);color:white;font-size:15px;letter-spacing:0;text-transform:none}
  .schedule th small{font-size:12px}.schedule .booking{min-height:48px;font-size:14px;padding:12px}.schedule .booking small{font-size:12px}.schedule .free{font-size:13px;padding:10px}
  body:has(dialog[open]){overflow:hidden}
  dialog,dialog.wide-dialog{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:100dvh;margin:0;padding:24px 18px max(28px,env(safe-area-inset-bottom));border-radius:0;overflow-y:auto;overscroll-behavior:contain}
  dialog .close{position:sticky;float:right;top:0;right:auto;margin:0 0 0 auto;z-index:2;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:white;line-height:1;font-size:28px}
  #dialog-content h2{padding-right:48px;margin-top:6px;margin-bottom:18px}dialog h3{margin-top:26px}dialog .formgrid{gap:16px}dialog form>.btn.primary{width:100%;margin-top:16px}dialog .price-inputs{gap:14px}
  .print-copy .print-top{flex-wrap:wrap}.print-brand{flex-wrap:wrap}.print-copy{overflow-wrap:anywhere}.print-copy table{table-layout:fixed}.print-copy td{overflow-wrap:anywhere}
  .auth-page{padding:20px 16px}.auth-wrap{padding:0;margin:0 auto}.auth-brand{padding:18px;gap:14px}.auth-brand img{width:90px;height:65px}.auth-brand .brand-motto{font-size:18px}.auth-wrap .field{margin-bottom:18px}.auth-wrap button{width:100%}
  footer{padding:20px 16px;flex-direction:column;font-size:12px;gap:8px}.save-status{font-size:11px;padding:7px 12px;line-height:1.4}
  #toast{left:16px;right:16px;bottom:16px;max-width:none;overflow-wrap:anywhere}
}
@media screen and (max-width:360px){.price-inputs,.finance-grid,.quickdays{grid-template-columns:minmax(0,1fr)}.quickdays{grid-template-columns:repeat(2,minmax(0,1fr))}.brand .brand-label{max-width:70px;font-size:9px}.mobile-menu-toggle{padding:9px;font-size:13px}}
#content h1[tabindex="-1"]:focus{outline:none}

.scan-form{flex-wrap:wrap}.scan-form input{flex:1 1 240px}.scan-form button{flex:0 1 auto}
.tool-photo-section{padding:18px;border:1px solid var(--line);background:#f7f6f3;margin:24px 0;border-radius:6px}.tool-photo-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin:16px 0}.tool-photo-gallery figure{margin:0;min-width:0}.tool-photo-gallery img{display:block;width:100%;height:150px;object-fit:contain;background:white;border:1px solid var(--line);border-radius:4px}.tool-photo-gallery figcaption{font-size:12px;overflow-wrap:anywhere;margin:8px 0}.tool-photo-gallery .btn{width:100%}
.scanner-dialog{max-height:94dvh;overflow:auto}.scanner-dialog video{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#17191a;border-radius:6px}.scanner-close{float:right;margin:0 0 12px 12px}.scanner-dialog h2{padding-right:70px}.scanner-status{min-height:3em}.scanner-photo{margin-top:24px}.scanner-manual{display:grid;gap:12px;margin-top:18px}.scanner-manual input{width:100%}
@media screen and (max-width:900px){.scan-form button{width:100%;flex:auto}.scan-form input{flex:auto}.tool-photo-section{padding:14px}.tool-photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-photo-gallery img{height:120px}.scanner-dialog video{max-height:40dvh}.scanner-dialog h2{padding-right:0;clear:both}.scanner-close{position:sticky;top:0;background:white;z-index:2}.scanner-photo input{font-size:14px}}

.purchase-option{margin-top:20px;padding-top:16px;border-top:1px solid #ddd}.purchase-option p{margin:0 0 10px}.card-body>.btn{margin-top:16px}#catalog-result{margin-top:20px}
.catalog-back{display:inline-block;margin:0 0 24px;color:inherit;text-underline-offset:5px}
.product-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:start;margin-bottom:36px}
.product-gallery{min-width:0}.product-gallery>a{display:block;background:#fff;border:1px solid #e4e1de;border-radius:12px;overflow:hidden}.product-gallery #product-image{display:block;width:100%;height:430px;object-fit:contain;padding:20px;box-sizing:border-box}.product-thumbnails{display:flex;gap:10px;overflow-x:auto;padding:4px 1px 12px}.product-thumbnails button{flex:0 0 76px;border:1px solid #ddd;background:#fff;border-radius:7px;padding:5px;cursor:pointer}.product-thumbnails button[aria-pressed=true]{border:2px solid #e51b32}.product-thumbnails img{width:64px;height:64px;object-fit:contain;display:block}.product-info h1{font-size:clamp(26px,3vw,38px);line-height:1.16;margin:12px 0 18px;font-weight:400;overflow-wrap:anywhere}.product-brand{color:#626262}.product-rates{display:flex;flex-wrap:wrap;gap:0;margin:26px 0;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.product-rates>div{flex:1 0 100px;padding:16px 12px 16px 0}.product-rates span,.product-rates strong{display:block}.product-rates span{font-size:13px;color:#626262;margin-bottom:6px}.product-rates strong{font-size:19px}.product-info>.btn{margin:12px 0}.product-details{max-width:100%;margin:24px 0 36px}.product-details details{border-bottom:1px solid #d9d6d2;padding:20px 0}.product-details summary{cursor:pointer;font-size:19px;font-weight:bold;line-height:1.4}.product-description{white-space:pre-line;line-height:1.75;max-width:900px;padding:18px 0 4px;overflow-wrap:anywhere}.product-booking{scroll-margin-top:20px}.product-booking h2{font-size:26px}.product-layout .tool-art{height:430px}.product-details .tool-resources{margin-top:24px}
@media(max-width:760px){.product-layout{grid-template-columns:1fr;gap:24px}.product-gallery #product-image,.product-layout .tool-art{height:300px}.product-thumbnails button{flex-basis:64px}.product-thumbnails img{width:52px;height:52px}.product-info h1{font-size:28px}.product-booking{padding:20px 16px}.product-rates>div{flex-basis:85px}.product-description{font-size:16px}.product-info>.btn{width:100%;box-sizing:border-box;text-align:center}}
/* Catalog image magnifier: never navigates away from the product. */
.product-gallery .product-zoom{display:block;position:relative;width:100%;padding:0;overflow:hidden;border:1px solid #e4e1de;border-radius:12px;background:#fff;cursor:zoom-in;text-align:initial}
.product-zoom #product-image{transition:transform .18s ease;pointer-events:none;-webkit-user-drag:none}.product-zoom.zoom-active{cursor:zoom-out;touch-action:none}.product-zoom.zoom-active #product-image{transform:scale(2.4)}
.zoom-lens{position:absolute;right:17px;bottom:17px;width:19px;height:19px;border:2px solid #181818;border-radius:50%;background:rgba(255,255,255,.8);pointer-events:none}.zoom-lens::after{content:'';position:absolute;width:10px;height:2px;background:#181818;right:-8px;bottom:-4px;transform:rotate(45deg)}
@media(hover:hover) and (pointer:fine){.product-zoom:hover #product-image{transform:scale(2.4)}.product-zoom:hover .zoom-lens{opacity:.4}}
.customer-content #content{-webkit-user-select:none;user-select:none}.customer-content #content input,.customer-content #content textarea,.customer-content #content .file-links,.customer-content #content .tool-resources{-webkit-user-select:text;user-select:text}.customer-content img{-webkit-user-drag:none;-webkit-touch-callout:none}
@media(prefers-reduced-motion:reduce){.product-zoom #product-image{transition:none}}
.availability-result{margin-top:24px;border:1px solid #ddd;border-radius:12px;overflow:hidden;background:#fff}.availability-status{display:flex;align-items:center;gap:16px;padding:22px 24px;background:#edf5ef;border-bottom:1px solid #d3e4d8}.availability-status h3{margin:0 0 5px;font-size:22px;line-height:1.25;color:#173d25}.availability-status p{margin:0;font-size:15px;line-height:1.5}.availability-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:50%;background:#21633b;color:#fff;font-size:26px;font-weight:bold}.is-unavailable .availability-status{background:#fff0f1;border-color:#f1d0d4}.is-unavailable .availability-status h3{color:#a31327}.is-unavailable .availability-icon{background:#cf1933}.quote-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:24px}.quote-price>span:first-child{display:block;font-size:14px;color:#555}.quote-price>strong{display:block;font-size:34px;line-height:1.2;margin:8px 0 12px;letter-spacing:-.5px}.quote-price p{font-size:14px;line-height:1.6;margin:8px 0}.quote-saving{display:inline-block;padding:6px 10px;background:#f3f2ef;border-radius:5px;font-size:14px;font-weight:bold}.quote-facts{margin:0;display:grid;gap:16px;border-left:1px solid #e6e3df;padding-left:28px}.quote-facts dt{font-size:13px;color:#666;margin:0 0 5px}.quote-facts dd{margin:0;font-size:16px;font-weight:bold}.availability-result .change-period{margin:0 24px 24px}.booking-cta,#catalog-result>.btn{margin-top:18px}
@media(max-width:600px){.availability-status{padding:18px 16px;align-items:flex-start;gap:12px}.availability-status h3{font-size:20px}.availability-icon{flex-basis:32px;height:32px;font-size:22px}.quote-layout{grid-template-columns:1fr;padding:20px 16px;gap:20px}.quote-facts{border-left:0;border-top:1px solid #e6e3df;padding:20px 0 0}.availability-result .change-period{margin:0 16px 20px}.booking-cta,#catalog-result>.btn{width:100%}}
.next-period{padding:20px 24px;background:#f7f6f3;border-top:1px solid #e5e2de}.next-period>span{display:block;font-size:13px;color:#555}.next-period>b{display:block;font-size:19px;margin:8px 0}.next-period p{font-size:14px;line-height:1.6}.suspended-banner{background:#fff0f1;color:#a31327;border:1px solid #f1cbd0;padding:14px;border-radius:8px;font-weight:bold}
/* Compact mobile layout: fixed slots, product pages and operator forms. */
@media screen and (max-width:900px){
 html,body{width:100%;margin:0} .main,main,.shell,section,article{min-width:0}
 aside{position:static;height:auto;min-height:0}.main>header{position:static}
 .brand img{width:62px;height:45px}.brand .brand-label{max-width:none}
 header #session-controls{width:100%;margin:0}header #session-controls>a{display:block;text-align:center;width:100%;white-space:normal}
 .product-layout{display:flex;flex-direction:column;gap:20px}.product-layout>div{width:100%;min-width:0}
 .product-gallery #product-image{height:260px;max-height:65vw;object-fit:contain;padding:16px}
 .product-info h1{font-size:24px;line-height:1.25}.product-rates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:18px 0}.product-rates>div{padding:14px 8px}
 .product-thumbnails{max-width:100%;overflow:auto}.product-details summary{font-size:17px}
 .product-booking .formgrid{grid-template-columns:1fr}#catalog-dates>.btn{width:100%;white-space:normal}
 .availability-result,.quote-layout,.quote-facts,.next-period{min-width:0;max-width:100%}.next-period{padding:18px 16px}
 .btn{max-width:100%;overflow-wrap:anywhere}.file-links a{display:block;max-width:100%}
 footer span{display:block;overflow-wrap:anywhere}dialog{box-sizing:border-box}
}
@media screen and (max-width:760px){.product-zoom:not(.zoom-active):hover #product-image{transform:none}.product-zoom:not(.zoom-active):hover .zoom-lens{opacity:1}}
