/* App Agenti 2.0: nero e verde Tiffany. La lista prodotti resta verticale. */
:root {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ink: #101817;
  --tiffany: #0abab5;
  --tiffany-dark: #087f7b;
  --tiffany-pale: #e3f8f5;
  --line: #dce7e5;
  --yellow: var(--tiffany);
  color: #15211f;
  background: #f5f9f8;
}
body { background: #f5f9f8; }
h1, h2 { letter-spacing: -.03em; }
button, a, input, select, textarea { transition: border-color .16s, background-color .16s, box-shadow .16s, transform .16s; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #54d7ce; outline-offset: 3px;
}
.topbar {
  background: #101817; min-height: 84px; border-bottom: 3px solid var(--tiffany);
  box-shadow: 0 6px 22px #0c363128;
}
.brand, .login-brand { color: #fff; letter-spacing: -.06em; }
.brand small, .login-brand small { color: var(--tiffany); letter-spacing: .08em; }
.brand:hover { color: #baf2ec; }
.header-search { height: 48px; }
.header-search { position: relative; }
.search-suggestions { position:absolute; top:100%; left:0; right:0; z-index:30; background:#fff; border:1px solid var(--line); border-radius:0 0 15px 15px; box-shadow:0 18px 38px #0a262239; max-height:390px; overflow:auto; }
.search-suggestion { display:flex; align-items:center; gap:11px; width:100%; background:#fff; color:var(--ink); border:0; border-bottom:1px solid var(--line); padding:9px 12px; text-align:left; }
.search-suggestion:hover { background:var(--tiffany-pale); }
.search-suggestion img { width:48px; height:48px; object-fit:contain; border-radius:7px; background:#f7faf9; }
.search-suggestion span { display:grid; gap:3px; min-width:0; }
.search-suggestion strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.search-suggestion small { color:#677873; }
.search-suggestions>.hint { padding:6px 12px; margin:0; }
.header-search input { border-radius: 15px 0 0 15px; background: #eff5f3; padding-left: 17px; }
.header-search button { border-radius: 0 15px 15px 0; background: var(--tiffany); color: #092522; padding: 0 25px; }
.header-search button:hover, .primary:hover, .go-cart:hover, .back-pill:hover, .button-link:hover { background: #34d3ca; }
.profile-button { color: #edf8f6; }
.profile-button:hover { color: var(--tiffany); }
.profile-menu { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.profile-menu button:hover, .profile-menu a:hover { background: var(--tiffany-pale); }
main { max-width: 1460px; padding-top: 31px; }
.catalog-layout, .detail-layout { grid-template-columns: minmax(0,1fr) 300px; gap: 28px; }
.catalog-layout, .detail-layout { grid-template-columns: minmax(0,1fr) 300px; }
.catalog-side { display:block; position:sticky; top:18px; align-self:start; max-height:calc(100vh - 28px); overflow:auto; scrollbar-width:thin; }
.side-order-note { display:grid; gap:7px; margin:13px 0; font-weight:700; font-size:13px; }
.side-order-note textarea { width:100%; min-height:76px; resize:vertical; font-weight:400; }
.breadcrumbs { color: #58716d; margin-bottom: 20px; }
.breadcrumbs button { color: var(--tiffany-dark); text-decoration: none; font-weight: 700; }
.breadcrumbs button:hover { color: #064d49; }
.eyebrow { color: var(--tiffany-dark); }
h1 { font-size: clamp(28px,3vw,38px); }
.intro { color: #5b706d; }
.tag { color: #08706d; background: var(--tiffany-pale); border-color: #aee4dc; font-weight: 700; }
.taxonomy-tile, .product-card, .panel, .side-card, .detail-media, .detail-box, .catalog-link-card {
  border: 1px solid var(--line); border-radius: 18px; background: #fff;
  box-shadow: 0 8px 24px #123d3710;
}
.taxonomy-tile { min-height: 118px; gap: 20px; padding: 14px 18px; }
.taxonomy-tile:hover, .taxonomy-tile:focus-visible, .catalog-link-card:hover {
  border-color: #7bd7cf; box-shadow: 0 12px 28px #0e777021; transform: translateY(-2px);
}
.taxonomy-art { width: 94px; height: 90px; border-radius: 12px; background: var(--tiffany-pale); color: var(--tiffany-dark); }
.taxonomy-label { color: #1a2c29; font-size: 16px; }
.taxonomy-arrow { color: var(--tiffany-dark); }
.product-card { padding: 21px; gap: 24px; border-left: 4px solid #a8e8e1; margin-bottom: 17px; }
.product-image { background: #f5f9f8; border-radius: 14px; overflow: hidden; }
.product-title { color: #142421; font-size: 19px; }
.product-title:hover { text-decoration-color: var(--tiffany-dark); }
.code { color: #53716c; }
.product-price { color: #087e78; font-size: 22px; }
.stock { color: #227b5c; }
.pending-price { color: #6b7876; }
.arrival-preview { color: #087f7b; }
.stepper { height: 62px; border-radius: 12px; border-color: #9bded7; }
.stepper button { min-width: 62px; width: 62px; background: var(--tiffany); color: #092522; font-size: 34px; }
.stepper button:hover { background: #40d7cf; }
.stepper button:disabled { background: #e3eae8; color: #9aa9a6; }
.stepper input { font-size: 21px; }
.stepper-label { color: #254841; }
.side-card { overflow: hidden; margin-bottom: 17px; }
.side-card h2, .detail-box h2 { background: #14211f; color: #fff; font-size: 14px; letter-spacing: .03em; padding: 15px 18px; }
.side-body { padding: 20px; gap: 12px 10px; }
.side-body strong { font-size: 18px; }
.side-body .live-total { font-size: 23px; color: #087f7b; letter-spacing: -.03em; }
.side-body span { color: #637772; }
.price-note { color: #9a5c13; background: #fff5e6; border: 1px solid #f4d7a8; border-radius: 10px; padding: 9px 11px; font-size: 12px; line-height: 1.4; }
.side-body .price-note { grid-column: 1/-1; }
.go-cart, .primary, .back-pill, .button-link { background: var(--tiffany); color: #082522; border-radius: 12px; }
.go-cart { padding: 17px; }
.secondary { border-color: #b7d4d0; color: #135f5a; border-radius: 11px; }
.secondary:hover { background: var(--tiffany-pale); }
.panel { padding: 24px; }
input, textarea, select { border-color: #c7d8d4; border-radius: 10px; padding: 12px; }
input:focus, textarea:focus, select:focus { border-color: var(--tiffany-dark); box-shadow: 0 0 0 3px #0abab525; outline: none; }
label { color: #27423e; }
.summary { position: sticky; top: 18px; }
.summary { position:static; }
.cart-flow { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.cart-products-heading { align-items:center; margin:8px 0 14px; }
.cart-products-heading h2 { margin:0; }
.customer-selection { padding:20px 24px; }
.customer-selection .heading { align-items:center; }
.customer-selection .heading h2 { margin:0; }
.customer-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:flex-end; }
.customer-actions button { padding:10px 13px; }
.new-address-form { border:1px solid #a5d8d1; border-radius:12px; background:#f3fbf9; padding:16px; margin:14px 0; }
.new-address-form h3 { margin:0 0 5px; }
.address-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:12px 0; }
.address-fields label { display:grid; gap:5px; margin:0; }
.address-fields input { width:100%; }
.customer-selection.needs-customer { border:2px solid #d65245; background:#fffafa; }
.customer-warning { color:#b73329; font-weight:800; margin:12px 0; }
.customer-selection label { margin-top:12px; }
.customer-selection select,.customer-selection input { max-width:850px; }
.danger { color:#b9322d; border-color:#dbaba7; }
.danger:hover { background:#fff0ee; }
.compact-line { display:grid; grid-template-columns:minmax(190px,1.15fr) minmax(390px,1.7fr); gap:10px 18px; padding:12px 16px; margin-bottom:9px; align-items:center; }
.cart-line-identity { display:flex; align-items:center; gap:12px; min-width:0; }
.cart-line-identity>div { min-width:0; }
.cart-line-identity .product-title { font-size:14px; margin:0 0 3px; line-height:1.2; }
.cart-line-identity .code,.cart-line-identity small { display:block; font-size:11px; line-height:1.3; }
.compact-line .cart-photo { width:54px; height:54px; flex:none; }
.catalog-cards.products .product-card { grid-template-columns:64px minmax(0,1fr); gap:12px; padding:11px 14px; margin-bottom:9px; align-items:center; }
.catalog-cards.products .product-image { width:62px; height:62px; padding:3px; }
.catalog-cards.products .product-details { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:12px; align-items:center; }
.catalog-cards.products .product-details > :not(.product-controls) { grid-column:1; margin:0 0 2px; }
.catalog-cards.products .product-title { font-size:14px; line-height:1.2; margin:0 0 2px; }
.catalog-cards.products .product-ean,.catalog-cards.products .code,.catalog-cards.products .stock,.catalog-cards.products .pending-price,.catalog-cards.products .hint,.catalog-cards.products .arrival-preview { font-size:11px; line-height:1.25; }
.catalog-cards.products .product-price { font-size:14px; }
.catalog-cards.products .product-controls { grid-column:2; grid-row:1 / span 9; margin:0; gap:9px; align-self:center; }
.catalog-cards.products .product-controls .product-price { flex-basis:100%; text-align:right; font-size:14px; margin-top:2px; }
.family-tools { display:flex; gap:12px; align-items:end; flex-wrap:wrap; margin:0 0 14px; }
.family-tools label { display:grid; gap:5px; font-size:12px; font-weight:700; }
.family-tools input { min-width:280px; }
.family-tools select { min-width:230px; }
.impersonation-banner { background:#132925; color:#fff; padding:9px 24px; display:flex; align-items:center; justify-content:center; gap:12px; font-size:13px; }
.catalog-cards.products .stepper-group { min-width:122px; }
.catalog-cards.products .stepper-label { font-size:11px; margin-bottom:3px; }
.catalog-cards.products .stepper { height:40px; }
.catalog-cards.products .stepper button { width:40px; min-width:40px; font-size:24px; }
.catalog-cards.products .stepper input { width:40px; font-size:15px; padding:2px; }
.compact-line .line-grid { display:grid; grid-template-columns:minmax(105px,1fr) minmax(105px,1fr) minmax(140px,1.15fr); gap:9px; margin:0; align-items:center; }
.compact-line .stepper { height:40px; }
.compact-line .stepper button { width:40px; min-width:40px; font-size:24px; }
.compact-line .stepper input { width:40px; font-size:15px; padding:5px 2px; }
.compact-line .stepper-label { font-size:11px; }
.compact-line .cart-price-field label { margin:0 0 3px; font-size:11px; }
.compact-line .cart-price-field input { padding:6px; height:37px; }
.cart-price-field small,.cart-price-field strong { display:block; font-size:11px; margin-top:3px; }
.cart-price-field .struck { text-decoration:line-through; color:#b93630; }
.cart-price-field .modified-price { border:2px solid #cd322b; color:#b72d29; font-weight:800; background:#fff3f1; }
.cart-line-extras { grid-column:1/-1; display:flex; gap:8px; align-items:center; }
.cart-line-extras textarea { flex:1; min-height:35px; height:35px; padding:7px 9px; font-size:12px; }
.cart-line-extras button { flex:none; padding:7px 9px; font-size:11px; }
.fulfillment-preview h2 { margin:0 0 14px; }
.fulfillment-group { border:1px solid var(--line); border-radius:12px; margin:10px 0; overflow:hidden; }
.fulfillment-group h3 { margin:0; padding:10px 12px; background:#14211f; color:#fff; font-size:14px; }
.fulfillment-row { display:flex; justify-content:space-between; gap:10px; padding:9px 12px; border-top:1px solid var(--line); font-size:13px; }
.fulfillment-row strong { white-space:nowrap; color:#087f7b; }
.detail-thumbs .detail-thumb { width:62px; height:62px; padding:3px; border:2px solid #d7e5e2; border-radius:8px; }
.detail-thumbs .detail-thumb[aria-pressed="true"] { border-color:var(--tiffany-dark); box-shadow:0 0 0 2px #a1eee7; }
.detail-thumbs .detail-thumb img { width:100%; height:100%; object-fit:contain; }
.photo-preview { max-width:min(90vw,800px); max-height:90vh; padding:28px; border:0; border-radius:16px; box-shadow:0 25px 70px #0008; }
.photo-preview::backdrop { background:#071b19bf; }
.photo-preview img { display:block; max-width:100%; max-height:75vh; object-fit:contain; margin:auto; }
.photo-preview p { text-align:center; font-weight:700; }
.photo-preview-close { position:absolute; right:8px; top:5px; border:0; background:#fff; font-size:30px; }
.admin-shell { display:grid; grid-template-columns:225px minmax(0,1fr); gap:25px; align-items:start; }
.admin-side { display:grid; gap:5px; position:sticky; top:16px; padding:11px; border-radius:16px; background:#14211f; }
.admin-side button { text-align:left; background:transparent; color:#dcf0ec; border:0; border-radius:9px; padding:11px 14px; font-weight:700; }
.admin-side button:hover,.admin-side button.admin-active { background:var(--tiffany); color:#082522; }
.admin-main { min-width:0; }
.admin-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin-bottom:20px; }
.admin-stat { text-align:left; cursor:pointer; border-color:var(--line); }
.admin-stat strong { display:block; font-size:34px; color:var(--tiffany-dark); }
.admin-stat span { color:#40534e; font-weight:700; }
.admin-row { display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid var(--line); border-radius:13px; background:#fff; padding:14px 17px; margin:9px 0; }
.admin-row p { margin:5px 0 0; font-size:13px; color:#647873; overflow-wrap:anywhere; }
.admin-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.admin-link { display:inline-block; text-decoration:none; padding:10px 12px; }
.admin-panel { margin-bottom:15px; }
.admin-form { display:grid; gap:14px; max-width:720px; margin-top:16px; }
.admin-field { display:grid; gap:5px; font-weight:700; }
.admin-form textarea { min-height:90px; }
.prizes-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.prize-card { display:grid; align-content:start; gap:10px; }
.prize-card img { width:100%; height:190px; object-fit:contain; }
.backend-mode .profile-menu { max-height:75vh; overflow:auto; }
.backend-mode .admin-tabs { overflow-x:auto; flex-wrap:nowrap; white-space:nowrap; padding-bottom:8px; }
.summary h2 { border-bottom: 1px solid var(--line); padding-bottom: 14px; }
.total-row { font-size: 21px; color: #087f7b; }
.bottom-nav { background: #14211ff7; border-top: 2px solid var(--tiffany); box-shadow: 0 -7px 26px #0b302d30; }
.bottom-nav button { color: #dceeea; }
.bottom-nav button:hover { background: #254641; }
.bottom-nav button.active { background: var(--tiffany); color: #082522; }
.bottom-nav b { background: #fff; color: #11433e; }
#cart-nav-total { display: block; font-size: 11px; font-weight: 800; white-space: nowrap; }
.search-tabs { border-color: var(--line); }
.search-tabs button { color: #526d68; }
.search-tabs button[aria-selected="true"] { border-bottom-color: var(--tiffany); color: var(--tiffany-dark); }
.customer-match, .customer-card summary { color: var(--tiffany-dark); }
.compact-customer-list,#customers-list { display:grid; gap:7px; margin-top:12px; }
.compact-customer-card { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; min-height:70px; padding:10px 14px; margin:0; border-radius:12px; }
.compact-customer-card h2 { font-size:15px; line-height:1.2; margin:0 0 3px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.compact-customer-card p { margin:0; font-size:12px; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.compact-customer-card .customer-site-count { display:block; margin-top:2px; color:var(--tiffany-dark); font-size:11px; }
.compact-customer-card button { margin:0; padding:10px 12px; white-space:nowrap; font-size:12px; }
.compact-customer-info { min-width:0; }
.selected-customer-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0; }
.selected-customer-heading strong { font-size:17px; }
#cart-customer-picker { max-width:100%; }
#cart-customer-search { width:100%; max-width:none; }
#cart-customer-results { max-height:340px; overflow:auto; }
@media (max-width:600px) { .compact-customer-card { grid-template-columns:minmax(0,1fr) 122px; gap:8px; min-height:72px; padding:8px 10px; } .compact-customer-card button { width:122px; padding:7px 6px; white-space:normal; line-height:1.1; font-size:11px; } .compact-customer-card h2 { font-size:13px; } .compact-customer-card p { font-size:11px; } }
.order-filters { display:grid; grid-template-columns:minmax(180px,2fr) repeat(2,minmax(130px,1fr)) auto; gap:12px; align-items:end; margin-bottom:10px; }
.order-filters label,.vat-check-row>label:not(.check-line),.client-fields label { display:grid; gap:6px; margin:0; font-weight:700; font-size:13px; }
.order-filters input,.vat-check-row input,.client-fields input,.client-fields select { width:100%; }
.vat-check-row { display:flex; align-items:end; flex-wrap:wrap; gap:14px; }
.vat-check-row>label:not(.check-line) { min-width:min(100%,260px); }
.vat-check-row .check-line { align-self:center; }
#vat-results { display:grid; gap:10px; margin-top:14px; }
.customer-dropzone { display:grid; gap:5px; margin-top:17px; padding:17px; border:2px dashed #89cac4; border-radius:13px; background:#f5fcfb; color:var(--ink); }
.customer-dropzone.drag-over { border-color:var(--tiffany-dark); background:#dbf6f2; }
.customer-dropzone span { color:var(--muted); font-size:13px; }
.customer-dropzone input { margin-top:7px; max-width:100%; }
.prefill-missing { margin:0; padding:12px; border-radius:10px; background:#fff5ec; color:#96451d; font-weight:700; }
.client-fields label.needs-entry input,.client-fields label.needs-entry select { border-color:#d17046; background:#fffaf6; }
.new-customer-form { display:grid; gap:19px; margin-top:16px; }
.new-customer-form h2 { margin:0; }
.client-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 20px; }
.client-flags { display:flex; gap:25px; flex-wrap:wrap; }
.new-customer-form fieldset { border:1px solid var(--line); border-radius:12px; padding:17px; }
.new-customer-form legend { font-weight:800; color:var(--tiffany-dark); }
.new-customer-form>button { justify-self:start; }
.new-customer-form.hidden { display:none; }
#address-search { background: #f7fffe; border-color: #84d8cf; }
.catalog-link-card>span:last-child, .user-menu h2 { color: var(--tiffany-dark); }
.catalog-cover { background: linear-gradient(145deg,#14211f 48%,#0abab5 48%); }
.user-menu button:hover, .user-menu a:hover { color: var(--tiffany-dark); }
.login-main { max-width: 510px; }
.login-card { box-shadow: 0 18px 52px #0c38321f; }
@media (max-width: 980px) {
  .catalog-layout, .detail-layout { grid-template-columns: minmax(0,1fr) 245px; }
  .compact-line { grid-template-columns:1fr; }
  .line-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .order-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  main { padding: 23px 14px 115px; }
  .topbar { min-height: 0; }
  .catalog-layout, .detail-layout, .layout { grid-template-columns: 1fr; }
  .catalog-side { position:static; }
  .catalog-side { max-height:none; overflow:visible; }
  .client-fields,.order-filters { grid-template-columns:1fr; }
  .compact-line .line-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .compact-line .cart-price-field { grid-column:1/-1; }
  .compact-line .cart-price-field input { max-width:180px; }
  .admin-shell { grid-template-columns:1fr; }
  .admin-side { display:flex; overflow-x:auto; position:static; white-space:nowrap; }
  .admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .prizes-grid { grid-template-columns:1fr; }
  .admin-row { align-items:flex-start; flex-direction:column; }
  .catalog-side, .summary { position: static; }
  .product-card { grid-template-columns: 100px minmax(0,1fr); padding: 13px; gap: 12px; }
  .address-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .customer-selection .heading { align-items:flex-start; flex-wrap:wrap; }
  .customer-actions { justify-content:flex-start; }
  .catalog-cards.products .product-details { display:block; }
  .catalog-cards.products .product-controls { margin-top:8px; }
  .product-image { height: 120px; }
  .product-controls { grid-column: 1/-1; }
  .stepper button { min-width: 52px; width: 52px; }
  .line .stepper button { min-width: 52px; width: 52px; }
  .bottom-nav { min-height: 72px; }
  .bottom-nav button { color: #e6f5f2; }
  #cart-nav-total { font-size: 10px; }
}
@media (max-width: 420px) {
  .product-card { grid-template-columns: 1fr; }
  .product-image { height: 170px; }
  .product-controls { gap: 9px; }
  .stepper-group { min-width: calc(50% - 5px); }
  .stepper button { min-width: 45px; width: 45px; }
  .line-grid { grid-template-columns: 1fr; }
  .address-fields { grid-template-columns:1fr; }
  .catalog-cards.products .product-controls { gap:6px; }
  .catalog-cards.products .stepper-group { min-width:calc(50% - 3px); }
}
.client-nav{display:block;width:100%;padding:0;border:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.client-nav:hover,.client-nav:focus-visible{outline:2px solid var(--accent,#30c8bb);outline-offset:3px}.ean-barcode{max-width:260px;margin:8px 0 18px}.ean-barcode svg{display:block;width:100%;height:auto;fill:#101817}
.detail-presentation{margin:14px 0}.detail-presentation button{text-align:left;line-height:1.35}
.presentation-preview{width:min(900px,96vw);height:min(900px,92vh);border:0;border-radius:14px;padding:12px;box-shadow:0 20px 80px #0006}
.presentation-preview::backdrop{background:#102a28a8}.presentation-toolbar,.presentation-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px}
.presentation-preview iframe{width:100%;height:calc(100% - 112px);border:1px solid #d7e5e2}
.order-capture{margin:14px 0 22px;padding:20px}.order-capture textarea{display:block;width:100%;margin:14px 0;min-height:130px}.order-capture .capture-file{cursor:pointer;display:inline-flex;align-items:center}.capture-line{border-left:4px solid var(--tiffany-dark);padding:7px 10px;background:#f1faf8}.capture-unresolved{border-left:4px solid #c46141;padding:7px 10px;background:#fff3ee}
.sync-status{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 20px;background:#e8f7f4;color:#1b4944;font-size:13px;font-weight:650;border-bottom:1px solid #b7ded7}
.sync-status.sync-running{background:#d8f3ed}
.sync-status.sync-stale{background:#fff1dc;color:#724d16}
.sync-status progress{width:min(260px,30vw);height:9px;accent-color:#0abab5;flex:none}
@media(max-width:700px){.sync-status{align-items:flex-start;flex-direction:column;gap:6px}.sync-status progress{width:100%}}
/* Stato dello spazio disco sul pilota locale. */
.storage-notice{border-left:5px solid #5d9ea0}
.storage-warning{border-left:5px solid #d79622}
.storage-critical{border-left:5px solid #c94738;background:#fff8f6}
.points-loading::before {
  content: "";
  display: inline-block;
  width: .72em;
  height: .72em;
  margin-right: .4em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: -.04em;
  animation: points-spin .8s linear infinite;
}
@keyframes points-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .points-loading::before { animation: none; } }

/* Variante A: quantità leggibili, con + sopra e − sotto. */
.stepper { height:58px; display:flex; align-items:stretch; }
.stepper input { flex:1; width:52px; min-width:0; border:0; padding:0 7px; text-align:center; }
.stepper-buttons { display:grid; grid-template-rows:1fr 1fr; flex:none; width:52px; }
.stepper-buttons button { display:grid; place-items:center; width:100%; min-width:0; min-height:0; height:100%; padding:0; border:0; border-radius:0; font-size:23px; line-height:1; }
.stepper-buttons button + button { border-top:1px solid #7cddd5; }
.catalog-cards.products .product-card { grid-template-columns:64px minmax(0,1fr) auto; min-height:105px; padding:8px 14px; margin-bottom:8px; }
.catalog-cards.products .product-details { display:block; grid-column:2; min-width:0; }
.catalog-cards.products .product-details > :not(.product-controls) { display:block; margin:0 0 2px; }
.catalog-cards.products .product-controls { grid-column:3; grid-row:1; align-self:center; display:flex; flex-wrap:nowrap; gap:10px; margin:0; }
.catalog-cards.products .stepper-group:first-child { min-width:180px; }
.catalog-cards.products .stepper-group:nth-child(2) { min-width:138px; }
.catalog-cards.products .stepper { height:58px; }
.catalog-cards.products .stepper-buttons { width:48px; }
.catalog-cards.products .stepper-buttons button { width:100%; min-width:0; font-size:22px; }
.catalog-cards.products .stepper input { width:50px; font-size:16px; }
.compact-line .line-grid { grid-template-columns:minmax(158px,1.1fr) minmax(110px,.8fr) minmax(140px,1fr); }
.compact-line .stepper { height:58px; }
.compact-line .stepper-buttons { width:46px; }
.compact-line .stepper-buttons button { width:100%; min-width:0; font-size:21px; }
.detail-quantity .stepper-group:first-child { min-width:210px; }
@media (max-width:700px) {
  .catalog-cards.products .product-card { grid-template-columns:64px minmax(0,1fr); }
  .catalog-cards.products .product-controls { grid-column:1/-1; grid-row:2; flex-wrap:wrap; margin-top:8px; }
  .compact-line .line-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:420px) {
  .catalog-cards.products .product-controls { gap:7px; }
  .catalog-cards.products .stepper-group:first-child { min-width:174px; }
  .catalog-cards.products .stepper-group:nth-child(2) { min-width:112px; }
}
