/* Echo Devis — front-end styles */
.ed-wrap{max-width:860px;margin:0 auto;font-family:inherit;color:#212529}
.ed-title{font-size:1.8rem;margin:0 0 .25rem}
.ed-sub{color:#6e6e6e;margin:0 0 1.5rem}
.ed-card{background:#fff;border:1px solid #e5e9e7;border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:1.25rem}
.ed-card h3{margin:0 0 1rem;font-size:1.15rem;color:#0d6e50}
.ed-empty{color:#888;padding:1rem 0;text-align:center}
.ed-items{width:100%;border-collapse:collapse}
.ed-items th{text-align:left;border-bottom:2px solid #0d6e50;padding:.5rem .25rem;font-size:.85rem;color:#555}
.ed-items td{border-bottom:1px solid #eee;padding:.6rem .25rem}
.ed-qty-col{width:120px;text-align:center}
.ed-act-col{width:44px;text-align:center}
.ed-items input[type=number]{width:80px;padding:.35rem;text-align:center}
.ed-row-remove{background:none;border:none;color:#a11;font-size:1.3rem;line-height:1;cursor:pointer;padding:0 .25rem}
.ed-item-row.ed-row-added{animation:edFlash .8s ease}
@keyframes edFlash{from{background:#d8f0e2}to{background:transparent}}
/* Product search */
.ed-search{margin-bottom:1rem}
.ed-search-label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.35rem}
.ed-search-box{position:relative}
.ed-search-input{width:100%;padding:.6rem .7rem;border:1px solid #ccd2cf;border-radius:7px;box-sizing:border-box}
.ed-search-input:focus{border-color:#0d6e50;outline:none}
.ed-search-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;background:#fff;border:1px solid #ccd2cf;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:320px;overflow-y:auto;overflow-x:hidden}
.ed-search-item{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid #f0f0f0;padding:.5rem .7rem;cursor:pointer}
.ed-search-item:hover{background:#f3faf6}
.ed-search-item img,.ed-search-noimg{width:38px;height:38px;object-fit:cover;border-radius:6px;background:#eef2f0;flex:0 0 auto}
.ed-search-name{font-size:.9rem;color:#212529;display:flex;flex-direction:column;min-width:0;flex:1 1 auto;overflow:hidden}
.ed-search-name span{word-break:break-word;overflow-wrap:anywhere;max-width:100%}
.ed-search-sku{font-size:.75rem;color:#999}
.ed-search-loading,.ed-search-empty{padding:.7rem;color:#888;font-size:.85rem;text-align:center}
.ed-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ed-field{margin:0 0 1rem;display:block}
.ed-field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.35rem}
.ed-field label span{color:#d63638}
.ed-field input,.ed-field textarea{width:100%;padding:.6rem .7rem;border:1px solid #ccd2cf;border-radius:7px;box-sizing:border-box}
.ed-field input:focus,.ed-field textarea:focus{border-color:#0d6e50;outline:none}
.ed-btn{display:inline-block;padding:.7rem 1.4rem;border-radius:7px;border:none;cursor:pointer;font-size:1rem;text-decoration:none;font-weight:600}
.ed-btn-primary{background:#0d6e50;color:#fff}
.ed-btn-primary:hover{background:#0a5a41;color:#fff}
.ed-btn-primary:disabled{opacity:.5;cursor:not-allowed}
.ed-btn-ghost{background:transparent;color:#444;border:1px solid #ccd2cf}
.ed-btn-light{background:#eef4f1;color:#0d6e50}
.ed-alert{padding:.85rem 1.1rem;border-radius:8px;margin-bottom:1.25rem;font-size:.95rem}
.ed-alert-success{background:#e6f5ec;color:#176a3a;border:1px solid #b7e0c6}
.ed-alert-error{background:#fdecec;color:#a11;border:1px solid #f3c2c2}
.ed-alert-info{background:#eaf2fb;color:#1c4e80;border:1px solid #c3dbf2}
/* Document */
.ed-view-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.ed-doc{background:#fff;border:1px solid #e5e9e7;border-radius:10px;padding:2rem}
.ed-doc-head{display:flex;justify-content:space-between;border-bottom:2px solid #0d6e50;padding-bottom:1.25rem;margin-bottom:1.5rem}
.ed-doc-logo{max-height:110px;max-width:280px;height:auto;width:auto;margin-bottom:.5rem;display:block}
.ed-doc-company h3{margin:.25rem 0;font-size:1.2rem}
.ed-doc-company p{margin:0;color:#6e6e6e;font-size:.85rem}
.ed-doc-meta{text-align:right}
.ed-doc-meta h2{margin:0;color:#0d6e50;letter-spacing:2px}
.ed-doc-number{font-weight:700;font-size:1.05rem;margin:.25rem 0}
.ed-doc-meta p{margin:.15rem 0;color:#6e6e6e;font-size:.85rem}
.ed-doc-client{margin-bottom:1.5rem}
.ed-doc-label{display:block;font-size:.75rem;text-transform:uppercase;color:#999;letter-spacing:1px;margin-bottom:.25rem}
.ed-doc-client strong{font-size:1.1rem}
.ed-doc-client div{font-size:.9rem;color:#444}
.ed-doc-table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}
.ed-doc-table th{background:#0d6e50;color:#fff;padding:.65rem .75rem;font-size:.85rem;text-align:left}
.ed-doc-table td{padding:.65rem .75rem;border-bottom:1px solid #eee}
.ed-doc-table .ed-c{text-align:center}
.ed-doc-table .ed-r{text-align:right}
.ed-sku{display:block;font-size:.75rem;color:#999}
.ed-doc-totals{margin-left:auto;max-width:320px}
.ed-tot-row{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid #f0f0f0}
.ed-tot-grand{border:none;background:#0d6e50;color:#fff;padding:.7rem 1rem;border-radius:7px;margin-top:.5rem;font-size:1.1rem;font-weight:700}
.ed-doc-notes{margin-top:1.5rem;background:#f7faf8;border-radius:8px;padding:1rem}
.ed-doc-notes p{margin:.35rem 0 0;color:#555;font-size:.9rem}
.ed-actions{margin-top:1.5rem;text-align:center;background:#fff;border:1px solid #e5e9e7;border-radius:10px;padding:1.5rem}
.ed-actions p{font-size:1.1rem;margin:0 0 1rem}
.ed-resp-form{display:flex;gap:.75rem;justify-content:center}
.ed-badge{display:inline-block;padding:.3rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600}
.ed-st-pending{background:#fff3cd;color:#7a5b00}
.ed-st-quoted{background:#cfe2ff;color:#0a3977}
.ed-st-accepted{background:#d1e7dd;color:#0f5132}
.ed-st-rejected{background:#f8d7da;color:#842029}
.ed-st-expired{background:#e2e3e5;color:#41464b}
@media(max-width:640px){.ed-grid{grid-template-columns:1fr}.ed-doc-head{flex-direction:column;gap:1rem}.ed-doc-meta{text-align:left}.ed-resp-form{flex-direction:column}
/* Mobile search dropdown: keep it anchored to the search box, full card
   width, scroll vertically only. Title wraps onto multiple lines so image
   stays left and name stays right and fully visible without side scroll. */
.ed-search-box{position:relative;overflow:visible}
.ed-search-results{position:absolute;left:0;right:0;top:calc(100% + 4px);max-width:none;width:100%;max-height:50vh;overflow-y:auto;overflow-x:hidden;z-index:9999;box-sizing:border-box}
.ed-search-item{padding:.6rem .7rem;gap:.7rem}
.ed-search-item img,.ed-search-noimg{width:48px;height:48px;flex:0 0 48px}
.ed-search-name{font-size:.95rem;line-height:1.25;flex:1 1 auto;min-width:0}
.ed-search-sku{font-size:.78rem;margin-top:2px}
/* Items list: stack each product vertically on mobile. Hide the table
   header, turn each row into a card-like block: product name on top, then
   a row with quantity input and the remove button below. */
.ed-items{display:block;width:100%}
.ed-items thead{display:none}
.ed-items tbody,.ed-items tr,.ed-items th,.ed-items td{display:block}
.ed-item-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem 0;border-bottom:1px solid #eee}
.ed-item-row>td:first-child{flex:1 1 100%;padding-bottom:.2rem}
.ed-item-row .ed-qty-col{flex:0 0 auto;width:auto;display:flex;align-items:center;gap:.4rem}
.ed-item-row .ed-qty-col:before{content:"Qté :";font-size:.8rem;color:#666}
.ed-item-row .ed-act-col{flex:0 0 auto;width:auto;margin-left:auto}
.ed-items input[type=number]{width:64px}
}
/* Shop buttons */
.ed-price-label{font-weight:600;color:#0d6e50}
.ed-single-actions{margin:1rem 0;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.ed-variation-hint{flex-basis:100%;margin:0 0 .25rem;font-size:.85rem;color:#6e6e6e}
.ed-add-list.ed-loading{opacity:.6;cursor:wait}
/* Floating quote widget */
.ed-widget{position:fixed;right:18px;bottom:18px;z-index:9999;font-family:inherit;display:none}
.ed-widget.is-active{display:block}
.ed-widget-toggle{position:relative;background:#0d6e50;color:#fff;border:none;border-radius:50%;width:56px;height:56px;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.2);font-size:1.4rem}
.ed-widget-count{position:absolute;top:-4px;right:-4px;background:#d63638;color:#fff;border-radius:999px;min-width:20px;height:20px;line-height:20px;font-size:.75rem;font-weight:700;padding:0 4px}
.ed-widget-panel{position:absolute;right:0;bottom:68px;width:300px;background:#fff;border:1px solid #e5e9e7;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.18);padding:1rem}
.ed-widget-panel h4{margin:0 0 .75rem;color:#0d6e50;font-size:1rem}
.ed-widget-lines{max-height:260px;overflow:auto;margin-bottom:.75rem}
.ed-widget-line{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid #f0f0f0}
.ed-widget-line img{width:34px;height:34px;object-fit:cover;border-radius:6px}
.ed-widget-name{flex:1;font-size:.85rem}
.ed-widget-qty{font-size:.8rem;color:#666}
.ed-line-remove{background:none;border:none;color:#a11;font-size:1.1rem;cursor:pointer;line-height:1}
.ed-widget-empty{color:#888;font-size:.85rem;text-align:center;padding:.5rem 0}
.ed-widget .ed-widget-go{display:block;text-align:center;width:100%;box-sizing:border-box}
/* Hide native add-to-cart on variable product pages (we use our own button) */
.single-product.ed-quote-mode form.cart .single_add_to_cart_button{display:none}
