/* Subtle typography refinement. Category styles and dimensions are unchanged. */
/* Keep original column indexes for saved styles, but remove the customer selection column. */
#products .quantity-selection tr>:first-child{display:none!important}
/* Login and signup share type sizing, but not authenticated profile layout. */
/* Use the available main area, without changing cart/order/profile panel widths. */
#accountView:has(#loginForm:not([hidden])){width:100%;max-width:none}
#accountView .forms:has(#loginForm:not([hidden])){--account-gap:clamp(28px,3vw,64px);column-gap:var(--account-gap);align-items:start}
#accountView :is(#loginForm,#registerForm,#certificatePanel) input{width:100%;min-width:0;max-width:100%}
#accountView #loginForm,#accountView #registerForm{align-content:start;min-width:0}
#accountView #registerForm:not([hidden]){position:relative}
#accountView #registerForm:not([hidden])::before{content:"";position:absolute;left:calc(var(--account-gap) / -2);top:0;bottom:0;width:1px;background:#ddd;pointer-events:none}
#accountView #loginForm *,#accountView #registerForm *,#accountView #accountMessage{font-size:14px!important}
#accountView #loginForm input::placeholder,#accountView #registerForm input::placeholder{font-size:14px!important}
#accountView #loginForm h2,#accountView #registerForm h2{font-size:18px!important;font-weight:700!important;margin:0 0 20px}
#accountView #registerForm>.approval-notice{color:#e50000!important;font-weight:700!important}
#accountView #registerForm>.approval-sms{font-weight:400!important;color:#17202a!important}
#accountView #registerForm small,#accountView #certificatePanel small{font-size:12px!important;font-weight:400!important}
#accountView .forms:has(#loginForm:not([hidden])){grid-template-columns:repeat(3,minmax(0,1fr));max-width:none}
#certificatePanel{border-left:1px solid #ddd;padding-left:30px;min-width:0;font-size:14px}
#certificatePanel h2{font-size:18px;font-weight:700;margin:0 0 20px}
#certificatePreview{width:100%;height:auto;margin-top:16px;object-fit:contain}
#accountView .forms:has(#loginForm[hidden]) #certificatePanel{display:none}
/* Narrow desktop/tablet: keep signup wide; place the certificate below login. */
@media(min-width:801px) and (max-width:1200px){
  #accountView .forms:has(#loginForm:not([hidden])){grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto 1fr}
  #accountView #loginForm:not([hidden]){grid-column:1;grid-row:1}
  #accountView #registerForm:not([hidden]){grid-column:2;grid-row:1 / span 2}
  #accountView .forms:has(#loginForm:not([hidden])) #certificatePanel{grid-column:1;grid-row:2;border-left:0;border-top:1px solid #ddd;padding:24px 0 0}
}
@media(max-width:800px){#accountView .forms:has(#loginForm:not([hidden])){grid-template-columns:1fr}#certificatePanel{border-left:0;border-top:1px solid #ddd;padding:24px 0 0}}
#accountView #loginForm>button,#accountView #registerForm>button{background:#45743e!important;border-color:#45743e!important;color:#fff!important}
@media(max-width:800px){#accountView .forms:has(#loginForm:not([hidden])){row-gap:64px}#accountView #registerForm:not([hidden])::before{left:0;right:0;top:-32px;bottom:auto;width:auto;height:1px}}
.cart-quantity{display:flex;align-items:center;justify-content:center;gap:0}
.cart-table .cart-quantity input{appearance:textfield;width:54px;height:32px;padding:0;text-align:center;line-height:30px;border-radius:0}
.cart-quantity input::-webkit-inner-spin-button,.cart-quantity input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.cart-table .cart-quantity button{display:flex;align-items:center;justify-content:center;width:30px;height:32px;padding:0;background:#f5f5f5;color:#333;border:1px solid #ddd;border-radius:0;flex-shrink:0}
/* Cart product rows use plain white, including alternating rows. */
.cart-table tbody tr td,.cart-table tbody tr:nth-child(even) td{background:#fff}
/* Monochrome logo: white mark on black, without the white rectangular backing. */
.cart-modal header{background:#000;padding-top:10px;padding-bottom:10px}
.cart-modal img{filter:invert(1);background:transparent;border-radius:0}
.cart-modal p{font-size:13px;line-height:1.6;margin:10px 0;padding-top:4px;padding-bottom:4px}
.cart-modal footer{padding-bottom:12px}
.cart-modal footer button{font-size:13px;padding-top:7px;padding-bottom:7px}
/* Reduce vertical button padding only; retain text size and horizontal spacing. */
.panel button,form button,.cart-modal button{padding-top:9px;padding-bottom:9px}
.catalog-selection button{padding-top:10px;padding-bottom:10px}
.cart-table button{padding-top:5px;padding-bottom:5px}
.quantity-control button{padding-top:6px;padding-bottom:6px}
.topbar nav button{padding-top:3px;padding-bottom:3px}
.topbar .search button,.topbar .refine-search button{height:28px;padding-top:2px;padding-bottom:2px}
#productBack{padding-top:8px;padding-bottom:8px}
@media(max-width:800px){.catalog-selection button{padding-top:8px;padding-bottom:8px}}
/* Reference screenshot matching; do not modify sidebar categories. */
.catalog-table th,.catalog-table td,.catalog-table select,.catalog-table input,
.cart-table th,.cart-table td,.cart-table input{font-size:13px;color:#555;font-weight:400}
.catalog-table .product-title{color:#526dff;font-weight:400}
.catalog-table td.price,.catalog-table td.line-total{color:#e50000}
.cart-table td:nth-child(6),.cart-table td:nth-child(8){color:#e50000}
.delivery-guides strong,#cartTotal .cart-grand,.message{color:#e50000}
#cartView #checkoutButton{background:#e50000;color:#fff;border-color:#e50000}
.cart-heading h2{font-size:23px}
#ordersView>h2,#supportView>h2,#cartView .cart-heading h2{font-size:23px!important;font-weight:600!important}
#cartCount{display:none!important}
@media(max-width:800px){#ordersView>h2,#supportView>h2,#cartView .cart-heading h2{font-size:18px!important}}
.cart-table th,.delivery-guides p,.delivery-heading strong,.detail-specs{font-size:13px}
.delivery-guides h3,.cart-agreement h3{font-size:14px}
.cart-agreement p,#selectionTotal{font-size:12px}
#cartTotal{font-size:15px}#cartTotal .cart-grand{font-size:24px;color:#e50000}
.cart-modal header{font-size:19px}
.refine-search label{font-size:13px}
.catalog-table th{font-size:13px}
.quantity-control button{font-size:16px}
@media(max-width:800px){.cart-heading h2{font-size:18px}}
/* Cart shipping and totals: keep configured weights and sale colors. */
#cartView .delivery-guides h3{font-size:14px!important}
#cartView .delivery-guides p,#cartView .delivery-guides p *{font-size:13px!important}
#cartView .cart-memo{font-size:14px!important}
#cartView .cart-memo textarea,#cartView .cart-memo textarea::placeholder{font-size:13px!important}
#cartView .cart-agreement p{margin:0;line-height:1.5}
#cartView .cart-agreement p+p{margin-top:2px}
#cartView #cartTotal>span,#cartView #cartTotal>span *{color:#000!important}
#cartView #cartTotal .cart-grand,#cartView #cartTotal .cart-grand *{font-size:16px!important}
#cartView #cartTotal .cart-currency,#cartView #cartTotal .cart-vat-label{color:#000!important}
/* Cart numeric fields and remove action are styled independently of page text. */
#cartView .cart-table td:nth-child(3),
#cartView .cart-table td:nth-child(6),
#cartView .cart-table td:nth-child(8),
#cartView .cart-table td:nth-child(8) b,
#cartView .cart-quantity input{color:#000!important;font-weight:600!important}
#cartView .cart-table button[data-remove]{background:#e50000!important;border-color:#e50000!important;color:#fff!important}
/* Keep shipping labels independent from their input controls. */
#cartView .delivery-select{font-size:16px!important;font-weight:700!important}
#cartView .cart-memo{font-weight:600!important}
#cartView #cartTotal .cart-sale-number{font-size:20px!important}
#cartView #deliveryMethod{padding-top:6px!important;padding-bottom:6px!important;height:auto;min-height:0}
/* Change only the main search button background; retain its text settings. */
.topbar #searchButton{background:#45743e!important;border-color:#45743e!important}
/* Catalog amounts: preserve supply color and emphasize both amount columns. */
#products .catalog-table td.price{font-weight:600!important}
#products .catalog-table td[data-row-total]{color:#000!important;font-weight:600!important}
/* Order history shares the cart's compact white table design. */
#ordersView .order-search{max-width:none;display:flex;flex-wrap:wrap;align-items:end;gap:12px;background:#f6f6f6;border-top:3px solid #777;border-bottom:1px solid #aaa;padding:18px;margin-bottom:36px}
#ordersView .order-search label{display:flex;align-items:center;gap:8px}
#ordersView .order-search input,#ordersView .order-search select{width:auto;max-width:250px;padding:7px;border:1px solid #ddd}
.order-table-wrap{overflow-x:auto}.order-table{width:100%;border-collapse:collapse;border-top:2px solid #777}
#ordersView .order-table th,#ordersView .order-table td{padding:14px 9px;border:1px solid #e2e2e2;text-align:center;font-size:13px!important;color:#000!important;font-weight:600!important;background:#fff}
#ordersView .order-table th{background:#f7f7f7;font-weight:400!important}
#ordersView .order-table button{font-size:13px;padding:6px 9px}
#ordersView .order-actions td{text-align:right;padding:5px 9px}
#ordersView .order-details td{text-align:left}
/* Expanded items are a separate compact table, not inherited order columns. */
#ordersView button[data-order-items],#ordersView #orderSearch button[type="reset"]{background:#45743e!important;border-color:#45743e!important;color:#fff!important}
#ordersView .order-items-wrap{overflow-x:auto;padding:8px}
#ordersView .order-items-table{width:100%;min-width:700px;border-collapse:collapse;table-layout:auto}
#ordersView .order-items-table th,#ordersView .order-items-table td{padding:10px 8px!important;text-align:center!important;line-height:1.5;font-size:13px!important}
#ordersView .order-items-table th{background:#f7f7f7!important}
#ordersView .order-items-table td:nth-child(3),#ordersView .order-items-table td:nth-child(4){text-align:left!important}
#ordersView .order-items-table td:nth-child(6),#ordersView .order-items-table td:nth-child(7){text-align:right!important;white-space:nowrap}
#ordersView .order-items-table th:first-child{width:48px}
#ordersView .order-table{table-layout:fixed;min-width:1150px}
#ordersView .order-table td{overflow-wrap:anywhere}
#ordersView .order-table td:nth-child(4),#ordersView .order-table td:nth-child(6){text-align:left;line-height:1.6}
#ordersView .order-table th:first-child,#ordersView .order-table td:first-child,#ordersView .order-table th:nth-child(2),#ordersView .order-table td:nth-child(2){padding-left:4px;padding-right:4px}
/* Full-width reference layout: aligned filter rows and fixed search action. */
#supportView{max-width:none;width:100%}
#supportView .order-search{display:grid;grid-template-columns:minmax(0,1fr) 110px;align-items:stretch;gap:24px;background:#f6f6f6;border-top:3px solid #777;border-bottom:1px solid #aaa;padding:18px;margin-bottom:36px}
#supportView #supportSearch input{width:auto;max-width:250px;padding:7px;border:1px solid #ddd;font-size:13px!important;font-weight:400!important}
#supportView #supportSearch span{font-size:13px!important;font-weight:600!important}
#supportView #supportSearch .order-periods button{background:#eee!important;color:#333!important;border:1px solid #ccc;border-radius:0;padding:7px 10px;font-weight:400!important}
#supportView #supportSearch .order-search-submit{flex:1;min-height:90px;background:#222!important;color:#fff!important;border-radius:0;font-size:13px!important}
#supportView #supportSearch button[type=reset]{background:#45743e!important;color:#fff!important}
#supportView>h3{font-size:18px!important;font-weight:700!important}
#supportView #supportMessage{font-size:14px!important;font-weight:600!important}
@media(max-width:800px){#supportView .order-search{grid-template-columns:1fr}#supportView #supportSearch .order-search-submit{min-height:42px}}
#supportView .order-search label{font-size:13px!important;font-weight:600!important}
#supportView input,#supportView button{font-size:13px!important}
#supportView button{background:#45743e;color:#fff}
#supportView .support-table{border-collapse:collapse;width:100%;min-width:950px;border-top:2px solid #777}
#supportView .support-table th,#supportView .support-table td{border:1px solid #e2e2e2;padding:14px 9px;text-align:center;font-size:13px!important;color:#000!important;font-weight:600!important;background:#fff}
#supportView .support-table th{background:#f7f7f7;font-weight:600!important}
#supportView .support-table td:nth-child(4),#supportView .support-table td:nth-child(5){text-align:left}
#supportView .support-table input[type=number]{width:65px;text-align:center}
#supportView .support-table label{display:inline-flex;align-items:center;gap:3px;margin-right:8px;font-size:13px!important}
#ordersView{max-width:none;width:100%}
#ordersView .order-search{display:grid;grid-template-columns:minmax(0,1fr) 110px;align-items:stretch;gap:24px}
.order-filter-fields{display:grid;gap:10px;min-width:0}
/* Search labels use semibold; entered text and controls stay regular. */
#ordersView #orderSearch,#ordersView #orderSearch label,#ordersView #orderSearch span,#ordersView #orderSearch input,#ordersView #orderSearch select,#ordersView #orderSearch option,#ordersView #orderSearch button,#ordersView #orderSearch input::placeholder{font-size:13px!important;font-weight:400!important}
#ordersView .order-items-table td:nth-child(8){text-align:right!important;white-space:nowrap}
#ordersView #orderSearch label,#ordersView #orderSearch .order-date-filter>span,#ordersView #orderSearch .order-keywords>span{font-weight:600!important}
.order-filter-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
#ordersView .order-filter-row label{display:grid;grid-template-columns:70px minmax(100px,180px);gap:8px}
.order-date-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.order-periods{display:flex;gap:2px}
#ordersView .order-periods button{background:#eee;color:#333;border:1px solid #ccc;border-radius:0;padding:7px 10px}
.order-keywords>span{width:62px;flex-shrink:0}
.order-search-actions{display:flex;flex-direction:column;gap:5px}
#ordersView .order-search-submit{flex:1;min-height:90px;background:#222;color:#fff;border-radius:0;font-size:16px}
#ordersView .order-status-badge{display:inline-block;padding:5px 8px;background:#777;color:#fff!important;font-size:13px!important;font-weight:600!important;white-space:nowrap}
#ordersView .status-waiting{background:#a85ad0}
#ordersView .status-shipped{background:#327ac1}
#ordersView .status-completed{background:#45743e}
#ordersView .status-payment_pending{background:#b27922}
#ordersView .status-cancelled,#ordersView .status-refunded{background:#666}
@media(max-width:800px){#ordersView .order-search{grid-template-columns:1fr}.order-search-actions{flex-direction:row}#ordersView .order-search-submit{min-height:42px}}
/* Scope action colors to the fixed product-list toolbar. */
#catalogView .catalog-selection #addSelectedButton,
#catalogView .catalog-selection button:nth-of-type(2){background:#45743e!important;border-color:#45743e!important}
#catalogView .catalog-selection #buyNowButton{background:#e50000!important;border-color:#e50000!important}
/* Hover colors affect backgrounds only, keeping product images and text opaque. */
/* Hover changes paint only: never resize the pointer target. */
body #categories button{padding:8px 10px!important;box-sizing:border-box;border-radius:0!important}
body #categories button .category-label{display:inline-block;position:relative;z-index:0;font:inherit;color:inherit}
body #categories button:not(.active):hover{background:transparent!important;color:#111!important}
body #categories button:not(.active):hover .category-label::before{content:"";position:absolute;inset:-8px -10px;background:rgba(69,116,62,.3);z-index:-1;pointer-events:none}
#products .catalog-table tbody tr:hover>td{background-color:#fffcf4!important}
/* Compact cart icons align with the existing action labels. */
#catalogView .catalog-selection .cart-action-icon{width:15px;height:15px;display:inline-block;vertical-align:-2px;margin-right:6px;color:inherit}
/* The all-products category is a flat, compact green header. */
#products .catalog-table tbody tr:nth-child(even){background:#f8f8f8}
body #categories button.active{background:#45743e!important;color:#fff!important;padding-top:8px!important;padding-bottom:8px!important;border-radius:0!important}
/* Category heading sizing is independent of the individual category items. */
/* Use pointer cursors only on interactive header/category controls. */
body .topbar{padding-top:10px;padding-bottom:10px}
#checkoutView{max-width:1000px;margin:auto;background:#f5f6f8;padding:16px}
#checkoutForm .checkout-card{background:#fff;border:1px solid #e4e4e4;border-radius:12px;padding:20px;margin-bottom:12px}
.checkout-card-title,.checkout-product{display:flex;justify-content:space-between;align-items:center;gap:16px}
#checkoutForm h2{font-size:16px;margin:0 0 12px}
#checkoutForm p{font-size:13px;line-height:1.6}
#checkoutAddressFields:not([hidden]){display:grid;gap:10px;margin-bottom:12px}
.checkout-product{padding:12px 0;border-bottom:1px solid #eee;font-size:13px}
#checkoutForm .checkout-amount{background:#f3fbf4}
#checkoutFinalAmount{display:block;text-align:right;color:#45743e;font-size:20px}
#checkoutSubmitButton{background:#45743e;color:#fff;width:100%}
/* Checkout typography is independent of saved page-wide font settings. */
#checkoutView #checkoutForm,#checkoutView #checkoutForm p,#checkoutView #checkoutForm label,#checkoutView #checkoutForm input,#checkoutView #checkoutForm textarea,#checkoutView #checkoutForm input::placeholder,#checkoutView #checkoutForm textarea::placeholder,#checkoutView #checkoutTotal,#checkoutView #checkoutDiscount,#checkoutView .checkout-product,#checkoutView .checkout-product *{font-size:13px!important;font-weight:400!important}
#checkoutView #checkoutForm h2{font-size:15px!important;font-weight:700!important}
#checkoutView #checkoutAddressSummary .checkout-company{display:block;font-size:14px!important;font-weight:700!important}
#checkoutView #checkoutAddressSummary span{font-size:13px!important;font-weight:400!important}
#checkoutView #changeDelivery{padding-top:8px!important;padding-bottom:8px!important;background:#e50000!important;border-color:#e50000!important;color:#fff!important;font-size:13px!important;font-weight:400!important}
#checkoutView .checkout-product{display:grid;grid-template-columns:minmax(0,1fr) 70px minmax(90px,auto)}
#checkoutView .checkout-product>span:nth-child(2){text-align:center}
#checkoutView .checkout-product>strong{text-align:right}
#checkoutView #checkoutFinalAmount .checkout-final-number{color:#e50000!important;font-size:16px!important;font-weight:700!important}
#checkoutView #checkoutFinalAmount .checkout-vat{color:#000!important;font-size:14px!important;font-weight:600!important}
/* Monochrome A4 quotation, separate from storefront typography. */
#documentBody .quotation-form{color:#000;font-size:12px;background:white}
#documentBody .quotation-form h1{text-align:center;letter-spacing:12px;font-size:28px}
#documentBody .quote-date{text-align:right;font-size:10px}
#documentBody .quote-head{display:grid;grid-template-columns:40% 60%;align-items:end}
#documentBody .quote-head h2{font-size:16px;text-decoration:underline}
#documentBody .quote-head p{margin:8px 0}
#documentBody .quote-head b{float:right;margin-right:24px}
#documentBody .quotation-form table{border-collapse:collapse;width:100%;table-layout:fixed}
#documentBody .quotation-form td,#documentBody .quotation-form th{border:1px solid #777;background:#fff;padding:5px 3px;font-size:11px;color:#000;overflow-wrap:anywhere}
#documentBody .quote-head th{width:25%}
#documentBody .quote-lines td{height:25px;text-align:right}
#documentBody .quote-lines td:nth-child(2),#documentBody .quote-lines td:nth-child(3){text-align:left}
#documentBody .quote-note{border:1px solid #777;border-top:0;min-height:90px;display:grid;grid-template-columns:4% 1fr;padding:0}
#documentBody .quote-note>span:first-child{border-right:1px solid #777;display:flex;align-items:center;justify-content:center}
#documentBody .quote-note>span:last-child{padding:12px}
#documentBody .quote-lines{margin-top:30px}
#documentBody .quote-lines td:first-child,#documentBody .quote-lines td:nth-child(4){text-align:center}
/* 120 CSS pixels equal 90 PDF points; repeat margins on every printed page. */
@page quotation {size:A4 portrait;margin:10mm}
@media print{
  #documentPanel:has(.quotation-form){page:quotation;width:190mm!important;max-width:100%!important;margin:0 auto!important;padding:0!important;box-sizing:border-box}
  #documentBody .quotation-form{width:100%;max-width:190mm;box-sizing:border-box}
  #documentBody .quote-head{grid-template-columns:minmax(0,40%) minmax(0,60%)}
  #documentBody .quote-head>*{min-width:0}
  #documentBody:has(.quotation-form){width:100%!important;min-width:0!important}
  #documentBody .quotation-form{page:quotation}
  #documentBody .quotation-form{min-height:275mm;display:flex;flex-direction:column;break-after:page}
  #documentBody .quotation-form:last-child{break-after:auto}
  #documentBody .quotation-form .quote-lines{flex:1}
  #documentBody .quotation-form h1{margin-top:0}
  #documentBody .quote-head,#documentBody .quote-note{break-inside:avoid}
  #documentBody .quote-lines thead{display:table-header-group}
}
/* Also repair already-running customer previews that inject the old aside tag. */
#loginForm>aside,#loginForm>.customer-test-notice{position:static;height:auto;min-height:0;max-height:none;overflow:visible;width:auto;align-self:start;line-height:1.5}
/* Neutral category surface with muted green scrollbar accents. */
body .shell>aside{background:#f7f7f7;scrollbar-color:#a3b09e #eceee9}
/* Account name is rendered as text and has no sidebar logout action. */
body #categoryCustomer{background:#000;color:#fff!important;padding:12px 24px;font-size:14px!important;font-weight:600!important;overflow-wrap:anywhere}
body #categoryCustomer button{background:none;border:0;padding:0;color:#fff!important;font-size:14px!important;cursor:pointer}
body .shell>aside::-webkit-scrollbar{width:8px}
body .shell>aside::-webkit-scrollbar-track{background:#eceee9}
body .shell>aside::-webkit-scrollbar-thumb{background:#a3b09e;border-radius:4px}
body .shell>aside::-webkit-scrollbar-thumb:hover{background:#45743e}
body #categories button,body #categories summary,.topbar button,.topbar a{cursor:pointer}
.topbar #refineSearchButton{background:#45743e!important;border-color:#45743e!important}
@media(min-width:801px){.topbar .brand{flex:0 0 var(--aligned-brand-width,225px);width:var(--aligned-brand-width,225px);min-width:0}}
#products .catalog-table td:nth-child(8),#products .catalog-table td:nth-child(8) select,#products .catalog-table td:nth-child(8) option{font-size:13px!important}
#products .mobile-brand{display:inline-block;margin-left:12px}
/* Fit all desktop columns, including brand, without hiding horizontal overflow. */
#products .catalog-table{width:100%;min-width:0;max-width:100%;table-layout:fixed}
#products .catalog-table :is(th,td){min-width:0;overflow-wrap:anywhere}
#products .catalog-table select{min-width:0;max-width:100%}
#products .catalog-table .quantity-control{width:100%;min-width:0}
#products .catalog-table .quantity-control button{flex:0 0 22px;min-width:0;padding:7px 0}
#products .catalog-table .quantity-control input{flex:1 1 0;width:0;min-width:0;padding:7px 0}
body .shell>aside>h2{font-size:16px!important;padding-top:8px!important;padding-bottom:8px!important}
body .shell>aside>#categoryHeading{background:#fff!important;border:1px solid #45743e;color:#45743e!important;font-size:14px!important;font-weight:700!important;border-radius:0;padding:8px 24px;margin:0 0 18px}
#categoryHeading #categoryHomeButton{display:block;width:100%;text-align:left;padding:0;background:transparent;border:0;color:#45743e!important;font-size:14px!important;font-weight:700!important;cursor:pointer}

/* Account presentation only: hidden states and existing form handlers stay intact. */
/* Checkout cards: scoped +2px typography; no change to the order/payment contract. */
#checkoutView{max-width:1400px;background:#fff;padding:12px;margin:auto}
#checkoutView #checkoutForm{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:14px;align-items:start}
#checkoutView #checkoutForm .checkout-card{padding:18px;margin:0;border:1px solid #e0e5e9;border-radius:12px;box-shadow:0 3px 12px #182c1e08;background:#fff;min-width:0}
#checkoutView .checkout-delivery{grid-column:1;grid-row:1 / 3}
#checkoutView .checkout-items{grid-column:1;grid-row:3}
#checkoutView .checkout-tax{grid-column:1;grid-row:4 / 6}
#checkoutView .checkout-amount{grid-column:2;grid-row:1}
#checkoutView .checkout-payment{grid-column:2;grid-row:2 / 4}
#checkoutView .checkout-submit{grid-column:2;grid-row:4 / 6}
#checkoutView #checkoutForm,#checkoutView #checkoutForm :is(p,label,input,textarea,select,button),#checkoutView #checkoutForm input::placeholder,#checkoutView #checkoutForm textarea::placeholder,#checkoutView #checkoutTotal,#checkoutView #checkoutDiscount,#checkoutView .checkout-product,#checkoutView .checkout-product *{font-size:15px!important}
#checkoutView #checkoutForm h2{font-size:17px!important;margin:0 0 12px;font-weight:700!important}
#checkoutView #checkoutAddressSummary .checkout-company{font-size:16px!important;margin:8px 0;font-weight:700!important}
#checkoutView #checkoutAddressSummary span{display:block;font-size:15px!important;line-height:1.55;margin-bottom:6px;overflow-wrap:anywhere}
#checkoutView #changeDelivery{font-size:15px!important;background:white!important;color:#243c2e!important;border:1px solid #d5dce3!important;border-radius:6px;flex-shrink:0}
#checkoutView #checkoutFinalAmount .checkout-final-number{font-size:18px!important;color:#205e3a!important}
#checkoutView #checkoutFinalAmount .checkout-vat{font-size:16px!important}
#checkoutView #checkoutForm :is(input,select,textarea){border:1px solid #cfd7df;border-radius:6px;padding:9px;min-width:0;width:100%;background:#fff}
#checkoutView #checkoutForm textarea{min-height:48px;height:48px;resize:vertical}
#checkoutView #checkoutForm .checkout-check,.address-dialog .checkout-check{display:flex;align-items:center;gap:8px;margin-top:12px}
#checkoutView #checkoutForm .checkout-check input,.address-dialog .checkout-check input{width:18px;height:18px;accent-color:#28653e;flex-shrink:0}
#checkoutView #checkoutAddressFields:not([hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}
#checkoutView #checkoutAddressFields label:nth-last-child(-n+2){grid-column:1 / -1}
#checkoutView .checkout-product{grid-template-columns:minmax(0,1fr) 48px minmax(85px,auto);gap:8px;padding:9px 0}
#checkoutView #checkoutProducts{max-height:210px;overflow:auto}
#checkoutView #checkoutTaxInfo{font-size:15px;line-height:1.6;overflow-wrap:anywhere}
#checkoutView #checkoutForm .checkout-submit p{margin:0 0 12px}
#checkoutView #checkoutSubmitButton{min-height:44px;background:#24653c;font-size:17px!important;font-weight:700!important;border-radius:6px}
#checkoutView #deliveryAddressStatus:empty{display:none}
#checkoutView #deliveryAddressStatus{color:#365d44;line-height:1.4;margin-bottom:0}
.address-dialog{width:min(580px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #dce3e8;border-radius:14px;padding:22px;background:white;color:#202b25;box-shadow:0 12px 48px #0002;font:15px 'Malgun Gothic',sans-serif}
.address-dialog::backdrop{background:#17251e55}
.address-dialog header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.address-dialog h2{font-size:20px;margin:0}
.address-dialog button{border:1px solid #d4dce2;background:#fff;color:#24412e;padding:8px 13px;border-radius:6px;cursor:pointer;font:inherit}
.address-dialog button:disabled{opacity:.6;cursor:default}
.address-dialog header button{font-size:24px;border:0;padding:0 5px}
.address-dialog .address-add{width:100%;margin-bottom:12px}
.address-entry{padding:16px 0;border-bottom:1px solid #e5e8ec}
.address-entry p{line-height:1.6;margin:8px 0;overflow-wrap:anywhere}
.address-entry-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.address-entry-title button{margin-left:auto;background:#edf5ee}
.address-entry-title small{font-size:12px;background:#f0f2f4;padding:3px 5px;color:#5c6861}
.address-entry-actions{display:flex;gap:8px}
.address-dialog form{gap:10px}
.address-dialog label{font-size:15px}
.address-dialog input{width:100%;min-width:0;font:inherit;padding:9px;border:1px solid #cdd6de;border-radius:5px}
.address-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.address-search-row{display:flex;align-items:end;gap:10px}
.address-search-row label{flex:1}
.address-dialog button[type=submit],.address-dialog #searchDeliveryAddress{background:#28653e;color:white;border-color:#28653e}
.address-dialog [role=status]:empty{display:none}
.address-dialog [role=status]{color:#aa3333;line-height:1.5}
#addressSearchFrame{height:min(470px,65dvh);width:100%}
@media(max-width:1000px){#checkoutView #checkoutForm{grid-template-columns:1fr}#checkoutView #checkoutForm .checkout-card{grid-column:auto;grid-row:auto}}
@media(max-width:500px){.address-dialog{padding:16px}.address-two{grid-template-columns:1fr}}
#accountView:has(#loginForm:not([hidden])) {
  --account-line: #dce2e8;
  display: none;
  max-width: 1420px;
  margin: 0 auto;
  background: #fff;
}
#accountView.active:has(#loginForm:not([hidden])) {
  display: grid;
  grid-template-columns: minmax(240px, .85fr) minmax(0, 1.8fr);
  grid-template-rows: auto auto 1fr;
  gap: 12px 20px;
  align-items: start;
}
#accountView .forms:has(#loginForm:not([hidden])) { display: contents; }
#accountView:has(#loginForm:not([hidden])) :is(#loginForm, #registerForm, #emailRecoveryPanel) {
  border: 1px solid var(--account-line);
  border-radius: 12px;
  padding: 20px;
  background: #fff;
  min-width: 0;
  margin: 0;
}
#accountView #loginForm:not([hidden]) { grid-column: 1; grid-row: 1; gap: 12px; }
#accountView #registerForm:not([hidden]) {
  grid-column: 2;
  grid-row: 1 / 4;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px;
}
#accountView #registerForm::before { display: none; }
#accountView:has(#loginForm:not([hidden])) #emailRecoveryPanel { grid-column: 1; grid-row: 3; }
#accountView:has(#loginForm:not([hidden])) #accountMessage { grid-column: 1; grid-row: 2; margin: 0; padding: 0; }
#accountView:has(#loginForm:not([hidden])) #accountMessage:empty { display: none; }
#accountView:has(#loginForm:not([hidden])) :is(h2, p) { margin: 0; }
#accountView:has(#loginForm:not([hidden])) :is(#loginForm, #registerForm, #emailRecoveryPanel) h2 {
  font-size: 24px!important;
  line-height: 1.25;
  color: #173b29;
  margin: 0 0 6px;
}
#accountView:has(#loginForm:not([hidden])) label { min-width: 0; gap: 4px; line-height: 1.3; }
#accountView:has(#loginForm:not([hidden])) input {
  width: 100%; min-width: 0; height: 34px; padding: 6px 10px;
  border: 1px solid #cbd4de; border-radius: 5px; background: #fff;
}
#accountView:has(#loginForm:not([hidden])) button {
  min-height: 34px; padding: 7px 10px; border-radius: 5px; line-height: 1.3;
  cursor: pointer;
}
#accountView:has(#loginForm:not([hidden])) :is(input, button):focus-visible { outline: 2px solid #45743e; outline-offset: 2px; }
#accountView:has(#loginForm:not([hidden])) button:disabled { opacity: .55; cursor: default; }
#accountView #registerForm > :is(h2, p, section, button:last-child) { grid-column: 1 / -1; }
#accountView #registerForm > .approval-notice {
  color: #285336!important; background: #eef4ee; padding: 9px 12px;
  border-radius: 6px 6px 0 0; line-height: 1.4;
}
#accountView #registerForm > .approval-sms {
  margin-top: -10px; padding: 0 12px 9px; border-radius: 0 0 6px 6px;
  background: #eef4ee; color: #53615a!important; font-size: 12px!important; line-height: 1.4;
}
/* Email and code actions stay adjacent to their original inputs in DOM order. */
#accountView #registerForm > label:has(input[name="fax"]) { grid-column: 1; grid-row: 7; }
#accountView #registerForm > label:has(input[name="password"]) { grid-column: 2; grid-row: 7; }
#accountView #registerForm > :is(.signup-email, .signup-code) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; align-items: end; grid-row: 8; min-width: 0; }
#accountView #registerForm > .signup-email { grid-column: 1; }
#accountView #registerForm > .signup-code { grid-column: 2; }
#accountView #registerForm :is(#sendEmailCode, #verifyEmailCode) { background: #45743e; color: #fff; font-size: 12px!important; }
#accountView #emailVerifyMessage { font-size: 12px!important; line-height: 1.35; }
#accountView #emailVerifyMessage:empty { display: none; }
#accountView #registerForm #certificatePanel {
  border: 1px solid var(--account-line)!important; border-radius: 7px;
  padding: 10px 12px!important; min-width: 0; position: relative;
}
#accountView:has(#loginForm:not([hidden])) #registerForm #certificatePanel h2 { font-size: 14px!important; margin: 0 0 5px; color: #26332c; }
#accountView #registerForm #certificatePanel :is(label, p) { font-size: 12px!important; line-height: 1.4; }
#accountView #certificatePanel p { margin-top: 5px; color: #65706b; }
#accountView #certificatePanel input { padding: 4px 6px; }
#accountView #certificatePreview { width: auto; max-width: 100%; height: 52px; margin-top: 5px; }
/* A selected document thumbnail uses the card's existing height. */
#accountView #registerForm #certificatePanel:has(#certificatePreview:not([hidden])) { padding-right: 92px!important; }
#accountView #certificatePanel #certificatePreview { position: absolute; top: 10px; right: 12px; width: 64px; max-height: 64px; margin: 0; }
#accountView #loginForm > #forgotPasswordButton,
#accountView:has(#loginForm:not([hidden])) #closeEmailRecovery { background: #eef4ee!important; color: #285336!important; }
#accountView #emailRecoveryPanel form { gap: 10px; }
#accountView #emailRecoveryPanel p { font-size: 12px; line-height: 1.5; }
#accountView #emailRecoveryMessage:not(:empty) { margin: 8px 0; }
#accountView #closeEmailRecovery { width: 100%; margin-top: 10px; }
#accountView #requestPasswordResetForm > button { background: #f47b27; }
/* Compact desktop spacing fits short laptop viewports without hiding overflow. */
@media (min-width: 801px) {
  main:has(#accountView.active #loginForm:not([hidden])) { padding: 14px 20px; min-width: 0; }
}
@media (min-width: 801px) and (max-height: 850px) {
  #accountView:has(#loginForm:not([hidden])) :is(#loginForm, #registerForm, #emailRecoveryPanel) { padding: 14px; }
  #accountView #registerForm:not([hidden]) { gap: 7px 14px; }
  #accountView #registerForm > .approval-sms { margin-top: -7px; }
  #accountView:has(#loginForm:not([hidden])) :is(#loginForm, #registerForm, #emailRecoveryPanel) h2 { font-size: 22px!important; margin-bottom: 2px; }
  #accountView:has(#loginForm:not([hidden])) input { height: 30px; padding: 4px 8px; }
  #accountView:has(#loginForm:not([hidden])) button { min-height: 30px; padding: 5px 8px; }
}
/* Small screens retain readable controls and normal scrolling, never clipping fields. */
@media (max-width: 800px) {
  #accountView.active:has(#loginForm:not([hidden])) { display: flex; flex-direction: column; gap: 16px; }
  #accountView:has(#loginForm:not([hidden])) :is(#loginForm, #registerForm, #emailRecoveryPanel) { width: 100%; }
  #accountView #registerForm:not([hidden]) { padding: 16px!important; border: 1px solid var(--account-line)!important; order: 4; }
  #accountView #emailRecoveryPanel { order: 3; }
  #accountView #accountMessage { order: 2; }
  #accountView #registerForm > :is(.signup-email, .signup-code) { grid-column: 1 / -1; grid-row: auto; }
}

/* Cart shipping, consent and totals: increase existing text by one pixel only. */
#cartView .delivery-select{font-size:17px!important}
#cartView #deliveryMethod{font-size:14.3333px!important}
#cartView .delivery-guides h3{font-size:15px!important}
#cartView .delivery-guides p{font-size:14px!important}
#cartView .delivery-guides strong{font-size:14px!important}
#cartView #freightOfficeLabel{font-size:14px!important}
#cartView #freightOffice{font-size:14.3333px!important}
#cartView .cart-memo{font-size:15px!important}
#cartView .cart-memo textarea{font-size:14px!important}
#cartView .cart-agreement h3{font-size:15px!important}
#cartView .cart-agreement p{font-size:13px!important}
#cartView #cartTotal{font-size:16px!important}
#cartView #cartTotal>span{font-size:16px!important}
#cartView #cartTotal>span small{font-size:13.5px!important}
#cartView #cartTotal .cart-grand{font-size:17px!important}
#cartView #cartTotal .cart-grand small{font-size:17px!important}
#cartView #cartTotal .cart-vat-label{font-size:17px!important}
#cartView #cartTotal .cart-sale-number{font-size:21px!important}
#cartView #cartTotal .cart-currency{font-size:17px!important}
#cartView #checkoutButton{font-size:14.3333px!important}
#cartView .cart-memo textarea::placeholder{font-size:14px!important}

/* Freight picker reuses address dialogs and leaves the order input editable. */
#findFreightOffice{justify-self:start;margin-top:8px;font-size:14px}
.freight-dialog{width:min(620px,calc(100vw - 32px));font-size:15px}
.freight-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.freight-dialog h2{font-size:19px;margin:0}
.freight-dialog label{font-size:15px;min-width:0}
.freight-dialog button,.freight-dialog input,.freight-dialog select{font-size:15px}
.freight-search-row{display:flex;align-items:end;gap:10px;margin:12px 0}
.freight-search-row input,.freight-search-row label{flex:1;min-width:0}
.freight-search-row button{flex-shrink:0}
.freight-help{font-size:13px;color:#64748b;line-height:1.6}
#freightResults .address-entry{padding:16px 0}
#freightResults a{color:#315d91;font-size:14px}
#freightPostcodeFrame{width:100%;height:min(500px,65vh)}

/* Claims stay scoped to the support view. */
#supportView .claim-submit{margin:24px 0;padding:20px;background:#f8fafc;border-radius:12px}
#supportView .claim-submit textarea{min-height:85px;font-size:15px}
#supportView .claim-card{padding:18px;margin:14px 0;border:1px solid #e1e6ed;border-radius:12px;box-shadow:0 3px 10px #172a4510;font-size:15px;overflow-wrap:anywhere}
#supportView .claim-card>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
#supportView .claim-card p{white-space:pre-wrap;line-height:1.6}
#orders .tracking-link{color:#245aa0;text-decoration:underline;font-size:13px}
