/* Shared sizing, including native iOS date/time controls. Load after feature styles. */
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.field,.form-grid>*,.product-body,.product-controls>*,.modal form{min-width:0;max-width:100%}
.field input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),.field select,.field textarea,.product-controls input,.product-controls select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:48px}
input[type=date],input[type=datetime-local]{display:block;box-sizing:border-box;min-inline-size:0;max-inline-size:100%;inline-size:100%;-webkit-appearance:none;appearance:none}
input::-webkit-date-and-time-value{min-width:0;text-align:left}
.field textarea{min-height:112px;resize:vertical}
.form-inline-actions,.modal-footer{flex-wrap:wrap}
.btn{min-height:44px;white-space:normal;line-height:1.35}
.btn svg,.modal-heading .icon-btn{flex-shrink:0}
.modal{min-width:0;box-sizing:border-box;overflow-x:hidden}
.modal-heading h2{min-width:0;overflow-wrap:anywhere}
.product-controls{grid-template-columns:minmax(0,1fr) 88px}
.catalog-row{min-width:0;flex-wrap:wrap}
.catalog-row .field{flex:1 1 130px;min-width:0}
.catalog-row input{max-width:100%}
@media(max-width:680px){
 .form-grid{grid-template-columns:minmax(0,1fr);gap:0}
 .field{margin-bottom:18px}
 .field label{display:block;line-height:1.4;margin-bottom:8px}
 .field input,.field select,.field textarea,.product-controls input,.product-controls select{font-size:16px}
 .modal{padding:20px;width:100%}
 .modal-heading{gap:12px}
 .modal .btn.full{min-height:50px}
 .page-heading{flex-wrap:wrap;align-items:center}
 .page-heading>div{min-width:0;flex:1 1 180px}
 .page-heading>.btn{font-size:14px;width:auto;min-height:44px;padding:11px 14px;gap:8px}
 .form-inline-actions>.btn,.modal-footer>.btn{flex:1 1 140px}
 .catalog-row>div:first-child{flex:1 1 100%}
 .catalog-row .btn{margin-left:0}
 .product-controls{grid-template-columns:minmax(0,1fr) 88px;gap:12px}
 .product-controls label{font-size:13px;line-height:1.4}
 .product-controls input,.product-controls select{padding:12px}
}
@media(max-width:480px){
 .product-grid{grid-template-columns:minmax(0,1fr);gap:16px}
}

/* Stable chat layout including reduced Telegram visual viewport while typing. */
input,textarea,[contenteditable="true"]{caret-color:#000}
.modal[tabindex="-1"]:focus{outline:none}
.drawer{min-height:0;overflow:hidden}
#customer-chat{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
#customer-chat>.chat-messages{min-height:0;overscroll-behavior:contain;overflow-anchor:none;-webkit-overflow-scrolling:touch}
#customer-chat>p,#chat-compose-form,.drawer>.modal-heading{flex-shrink:0}
#chat-compose-form textarea{color:#191e19;caret-color:#000;min-width:0;resize:none;height:60px}
.chat-attachment{margin:6px 0 0}.chat-attachment input{padding:6px;min-height:32px;font-size:12px}
.bubble{overflow-wrap:anywhere;flex-shrink:0}.bubble img{max-height:300px;object-fit:contain}
.broadcast-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:16px 0}
.broadcast-item{margin:12px 0}.broadcast-item p{margin-block:8px}
#broadcast-root>h2{margin:24px 0 12px}#broadcast-text{margin:12px 0;resize:vertical;caret-color:#000}
#broadcast-form>.btn,#broadcast-preview .btn{margin-top:14px}
#broadcast-preview:not(:empty){margin-top:20px}
@media(max-height:520px){.drawer .modal-heading{margin-bottom:8px}#customer-chat>p,.chat-attachment label{display:none}#chat-compose-form textarea{height:48px}.chat-compose{padding-top:8px}}

/* Composer must not trigger iOS focus-zoom or intrinsic textarea overflow. */
.chat-compose{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:10px;width:100%;max-width:100%;box-sizing:border-box}
#chat-compose-form{width:100%;min-width:0;max-width:100%}
#chat-compose-form textarea{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;font-size:16px;line-height:1.4;margin:0;scroll-margin:12px}
.chat-compose .btn{width:48px;min-width:0;padding:12px;box-sizing:border-box}
.chat-unread{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:20px;background:#d23d33;color:#fff;font-size:12px;font-weight:750;line-height:1;border:2px solid #fff;box-sizing:border-box}
.chat-unread[hidden]{display:none}.support-fab .chat-unread{position:absolute;top:-5px;right:-5px}.mode-switch .chat-unread{margin-left:auto}
@media(max-width:800px){.telegram-mini-app #app,.telegram-mini-app .modal-backdrop{touch-action:pan-y}.drawer-backdrop .drawer{width:100%;max-width:100%;margin:0}.drawer-backdrop{overflow:hidden}.chat-attachment input{width:100%;min-width:0;max-width:100%}}

/* More specific than .field label: mobile labels must not flatten a service row. */
.field label.check-row{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:12px;row-gap:6px;align-items:start;padding:14px;margin:0;line-height:1.4}
.check-row>input{grid-column:1;grid-row:1 / span 2;margin:2px 0 0;flex:none}
.check-row>.booking-service-name{grid-column:2;min-width:0;font-weight:600;overflow-wrap:anywhere}
.check-row>.booking-service-price{grid-column:2;display:block;min-width:0}
.car-saved-actions{display:grid;gap:12px}
