/**
 * Quick Cart Sidebar — slide-in mini cart drawer.
 * Loaded by resources/views/frontend/layout/app.blade.php.
 * Markup: resources/views/components/frontend/quick-cart-sidebar.blade.php
 *
 * z-index 1055: above content/dropdowns, below SweetAlert2 (1060)
 * so dialogs/toasts stay visible over the drawer.
 */

.qc-sidebar{position:fixed;inset:0;z-index:1055;pointer-events:none}
.qc-sidebar.open{pointer-events:auto}
.qc-sidebar-backdrop{position:absolute;inset:0;background:rgba(15,18,25,.5);backdrop-filter:blur(2px);opacity:0;transition:opacity .3s ease;pointer-events:none}
.qc-sidebar.open .qc-sidebar-backdrop{opacity:1;pointer-events:auto}
.qc-sidebar-panel{position:absolute;top:0;right:0;width:405px;max-width:94vw;height:100%;background:#fff;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .38s cubic-bezier(.32,.72,.28,1);box-shadow:-12px 0 40px rgba(15,18,25,.22)}
.qc-sidebar.open .qc-sidebar-panel{transform:translateX(0)}
[data-theme="dark"] .qc-sidebar-panel{background:#1a1d23;box-shadow:-12px 0 40px rgba(0,0,0,.55)}

/* Loading veil + spinner while an AJAX refresh is running */
.qc-loading .qc-sidebar-panel::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.55);z-index:5}
[data-theme="dark"] .qc-loading .qc-sidebar-panel::before{background:rgba(26,29,35,.6)}
.qc-loading .qc-sidebar-panel::after{content:"";position:absolute;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border:3px solid #c7ceea;border-top-color:#1f2b6c;border-radius:50%;animation:qcSpin .7s linear infinite;z-index:6}
[data-theme="dark"] .qc-loading .qc-sidebar-panel::after{border-color:#3a404d;border-top-color:#748ffc}
@keyframes qcSpin{to{transform:rotate(360deg)}}

.qc-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid #e9ecef;flex-shrink:0;background:#fff}
[data-theme="dark"] .qc-sidebar-header{border-bottom-color:#2d3139;background:#1a1d23}
.qc-sidebar-title{margin:0;font-size:1.05rem;font-weight:700;color:#1f2b6c;display:flex;align-items:center;gap:8px}
[data-theme="dark"] .qc-sidebar-title{color:#e0e6ff}
.qc-sidebar-count{background:#1f2b6c;color:#fff;font-size:.7rem;font-weight:700;min-width:22px;height:22px;line-height:22px;text-align:center;border-radius:11px;padding:0 6px}
.qc-sidebar-close{background:none;border:none;font-size:1.25rem;color:#6c757d;cursor:pointer;padding:6px 10px;border-radius:8px;transition:background .15s,color .15s;line-height:1}
.qc-sidebar-close:hover{background:#f1f3f5;color:#212529}
[data-theme="dark"] .qc-sidebar-close{color:#adb5bd}
[data-theme="dark"] .qc-sidebar-close:hover{background:#2d3139;color:#fff}
.qc-sidebar-items{flex:1;overflow-y:auto;padding:10px 16px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c5cbd6 transparent}
.qc-sidebar-items::-webkit-scrollbar{width:6px}
.qc-sidebar-items::-webkit-scrollbar-thumb{background:#c5cbd6;border-radius:3px}
[data-theme="dark"] .qc-sidebar-items{scrollbar-color:#4a5060 transparent}
[data-theme="dark"] .qc-sidebar-items::-webkit-scrollbar-thumb{background:#4a5060}
.qc-sidebar-item{display:flex;gap:12px;padding:14px 8px;margin:0 -8px;border-bottom:1px solid #f1f3f5;position:relative;border-radius:12px;transition:background .15s;animation:qcItemIn .3s ease both}
.qc-sidebar-item:hover{background:#fafbfd}
[data-theme="dark"] .qc-sidebar-item{border-bottom-color:#2d3139}
[data-theme="dark"] .qc-sidebar-item:hover{background:#20242d}
.qc-sidebar-item:last-child{border-bottom:none}
@keyframes qcItemIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.qc-item-thumb{width:76px;height:76px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#f1f3f5;box-shadow:inset 0 0 0 1px rgba(15,18,25,.05)}
.qc-item-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.qc-sidebar-item:hover .qc-item-thumb img{transform:scale(1.06)}
[data-theme="dark"] .qc-item-thumb{background:#232733}
.qc-item-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding-right:22px}
/* Item name / footer buttons are ANCHORS styled as buttons. Global dark-mode
   link rules ([data-theme="dark"] a:not(...) ≈ 0-5-1 specificity) would
   otherwise repaint their text with --theme-accent — e.g. View Bag became
   light-periwinkle-on-light-gray and vanished. Scoping colour rules under
   the sidebar's ID outranks any page-level selector without !important. */
#quickCartSidebar .qc-item-name{color:#1a1d23}
#quickCartSidebar .qc-item-name:hover{color:#1f2b6c}
[data-theme="dark"] #quickCartSidebar .qc-item-name{color:#e0e6ff}
[data-theme="dark"] #quickCartSidebar .qc-item-name:hover{color:#aebcff}
.qc-item-variant{font-size:.72rem;color:#6c757d}
[data-theme="dark"] .qc-item-variant{color:#9aa4b6}
.qc-item-vendor{font-size:.7rem;color:#868e96}
.qc-item-vendor i{font-size:.6rem}
[data-theme="dark"] .qc-item-vendor{color:#7f8aa0}

/* Stock urgency chip on drawer line items (#2) */
.qc-item-stock{display:inline-flex;align-items:center;font-size:.68rem;font-weight:600;color:#d6336c;margin-top:2px}
.qc-item-stock i{font-size:.62rem}
[data-theme="dark"] .qc-item-stock{color:#ff8fab}
.qc-item-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:8px}
.qc-item-qty{display:flex;align-items:center;border:1px solid #dee2e6;border-radius:10px;overflow:hidden;background:#fff}
[data-theme="dark"] .qc-item-qty{border-color:#3a404d;background:#1a1d23}
.qc-qty-btn{width:28px;height:30px;border:none;background:#f8f9fa;color:#495057;font-size:.62rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.qc-qty-btn:hover:not(:disabled){background:#e9ecef}
.qc-qty-btn:disabled{opacity:.35;cursor:not-allowed}
[data-theme="dark"] .qc-qty-btn{background:#232733;color:#c3c9d6}
[data-theme="dark"] .qc-qty-btn:hover:not(:disabled){background:#2d3139}
.qc-qty-value{min-width:32px;text-align:center;font-size:.82rem;font-weight:600;border-left:1px solid #dee2e6;border-right:1px solid #dee2e6;line-height:30px}
[data-theme="dark"] .qc-qty-value{border-color:#3a404d;color:#e0e6ff}
.qc-item-price{font-size:.92rem;font-weight:700;color:#1f2b6c;text-align:right}
.qc-unit-hint{display:block;font-size:.68rem;font-weight:500;color:#868e96;margin-top:1px}
[data-theme="dark"] .qc-item-price{color:#748ffc}
[data-theme="dark"] .qc-unit-hint{color:#8b93a7}
.qc-item-remove{position:absolute;top:10px;right:2px;background:none;border:none;color:#ced4da;font-size:.78rem;cursor:pointer;padding:5px;border-radius:8px;transition:color .15s,background .15s;line-height:1}
.qc-item-remove:hover{color:#e03131;background:#fff5f5}
[data-theme="dark"] .qc-item-remove:hover{background:#3a2226;color:#ff8787}
.qc-sidebar-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#868e96;text-align:center;padding:48px 24px}
[data-theme="dark"] .qc-sidebar-empty{color:#9aa3b2}
.qc-sidebar-empty i{font-size:3.2rem;margin-bottom:18px;opacity:.28}
.qc-sidebar-empty p{margin-bottom:18px;font-size:1rem;font-weight:600}
.qc-sidebar-footer{border-top:1px solid #e9ecef;padding:14px 20px calc(16px + env(safe-area-inset-bottom,0px));flex-shrink:0;background:#fff}
[data-theme="dark"] .qc-sidebar-footer{background:#1a1d23;border-top-color:#2d3139}
.qc-summary-row{display:flex;justify-content:space-between;align-items:center;font-size:.92rem}
.qc-summary-total{font-weight:700;font-size:1.08rem;color:#1f2b6c}
[data-theme="dark"] .qc-summary-total{color:#748ffc}
.qc-sidebar-actions{display:flex;gap:10px;margin-top:14px}
.qc-btn-view-cart,.qc-btn-checkout{flex:1;text-align:center;padding:12px 16px;border-radius:10px;font-weight:600;font-size:.88rem;text-decoration:none;border:none;cursor:pointer;transition:all .15s}
#quickCartSidebar .qc-btn-view-cart{background:#f1f3f5;color:#495057;border:1px solid #dee2e6}
#quickCartSidebar .qc-btn-view-cart:hover,#quickCartSidebar .qc-btn-view-cart:focus-visible{background:#e9ecef;color:#212529;text-decoration:none;transform:translateY(-1px)}
#quickCartSidebar .qc-btn-checkout{background:linear-gradient(135deg,#1f2b6c,#3f5aa9);color:#fff;box-shadow:0 4px 14px rgba(31,43,108,.28)}
#quickCartSidebar .qc-btn-checkout:hover,#quickCartSidebar .qc-btn-checkout:focus-visible{background:linear-gradient(135deg,#16205a,#35509a);color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 18px rgba(31,43,108,.36)}
[data-theme="dark"] #quickCartSidebar .qc-btn-view-cart{background:#232733;color:#e0e6ff;border-color:#3a404d}
[data-theme="dark"] #quickCartSidebar .qc-btn-view-cart:hover,[data-theme="dark"] #quickCartSidebar .qc-btn-view-cart:focus-visible{background:#2d3139;color:#ffffff}
[data-theme="dark"] #quickCartSidebar .qc-btn-checkout{color:#ffffff}
[data-theme="dark"] #quickCartSidebar .qc-btn-checkout:hover,[data-theme="dark"] #quickCartSidebar .qc-btn-checkout:focus-visible{color:#ffffff}

/* Accessibility */
#quickCartSidebar .qc-sidebar :focus-visible{outline:2px solid #3f5aa9;outline-offset:2px;border-radius:6px}
[data-theme="dark"] #quickCartSidebar .qc-sidebar :focus-visible{outline-color:#748ffc}

.qc-btn-shop{background:#1f2b6c;color:#fff;border:none;padding:11px 30px;border-radius:10px;font-weight:600;font-size:.88rem;transition:all .15s}
.qc-btn-shop:hover{background:#16205a;color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px rgba(31,43,108,.25)}
[data-theme="dark"] #quickCartSidebar .qc-btn-shop{background:#3b4cca;color:#ffffff}
[data-theme="dark"] #quickCartSidebar .qc-btn-shop:hover,[data-theme="dark"] #quickCartSidebar .qc-btn-shop:focus-visible{background:#3341b3;color:#ffffff}

/* RTL: drawer slides from the left edge */
[dir="rtl"] .qc-sidebar-panel{right:auto;left:0;transform:translateX(-100%)}
[dir="rtl"] .qc-sidebar.open .qc-sidebar-panel{transform:translateX(0)}
[dir="rtl"] .qc-item-details{padding-right:0;padding-left:22px}
[dir="rtl"] .qc-item-remove{right:auto;left:2px}
[dir="rtl"] .qc-item-price{text-align:left}

@media(max-width:480px){
.qc-sidebar-panel{width:100%;max-width:100%}
.qc-sidebar-header{padding:14px 16px 12px}
.qc-sidebar-items{padding:8px 12px}
.qc-sidebar-footer{padding-left:16px;padding-right:16px}
}
@media(prefers-reduced-motion:reduce){
.qc-sidebar-backdrop,.qc-sidebar-panel,.qc-item-thumb img,.qc-btn-shop,.qc-btn-view-cart,.qc-btn-checkout{transition:none!important}
.qc-sidebar-item{animation:none!important}
}


/* ── Free Shipping Progress Bar ──────────────────────────────────────
   Sits above the footer in the cart drawer and above the summary card
   on the full cart page. Animates smoothly on load and on refresh(). */

.qc-free-shipping, .cart-free-shipping {
    padding: 12px 16px 8px;
    flex-shrink: 0;
}
.qc-fs-bar-wrap, .cart-fs-bar-wrap {
    height: 6px;
    background: #e9ecef;
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 6px;
}
.qc-fs-bar, .cart-fs-bar {
    height: 100%;
    border-radius: 3px;
    background: linear-gradient(90deg, #1f2b6c, #3f5aa9);
    transition: width 0.5s cubic-bezier(0.32, 0.72, 0.28, 1);
}
.qc-free-shipping--met .qc-fs-bar,
.cart-free-shipping--met .cart-fs-bar {
    background: linear-gradient(90deg, #2b9a3e, #45c760);
}
[data-theme="dark"] .qc-fs-bar-wrap,
[data-theme="dark"] .cart-fs-bar-wrap {
    background: #2d3139;
}
.qc-fs-text, .cart-fs-text {
    font-size: 0.78rem;
    color: #6c757d;
    line-height: 1.4;
    padding: 0 4px;
}
.qc-free-shipping--met .qc-fs-text,
.cart-free-shipping--met .cart-fs-text {
    color: #2b9a3e;
    font-weight: 600;
}
[data-theme="dark"] .qc-fs-text,
[data-theme="dark"] .cart-fs-text {
    color: #9aa3b2;
}
[data-theme="dark"] .qc-free-shipping--met .qc-fs-text,
[data-theme="dark"] .cart-free-shipping--met .cart-fs-text {
    color: #45c760;
}

/* Cart page free shipping styling */
.cart-free-shipping {
    background: #f8f9fa;
    border-radius: 10px;
    border: 1px solid #e9ecef;
    padding: 14px 18px;
}
.cart-free-shipping--met {
    background: #f0faf3;
    border-color: #c3e6cb;
}
[data-theme="dark"] .cart-free-shipping {
    background: #232733;
    border-color: #2d3139;
}
[data-theme="dark"] .cart-free-shipping--met {
    background: #1a2e1f;
    border-color: #2b9a3e;
}
/* ── Floating cart pill ───────────────────────────────────────────────
   Standard e-commerce pattern: appears once the cart has items, shows
   live count + total, opens the Quick Cart drawer on click.
   Placement: bottom-right, stacked above the chat bubble (bottom 20px,
   ~56px tall) and clear of the mobile bottom nav (z 1035). z-index 1040
   keeps it under the drawer backdrop (1055) and SweetAlert2 (1060). */
.floating-cart{position:fixed;right:20px;bottom:88px;z-index:1040;display:flex;align-items:center;gap:10px;padding:8px 18px 8px 9px;border:none;border-radius:999px;background:#1f2b6c;color:#fff;cursor:pointer;font-family:inherit;text-align:left;box-shadow:0 10px 28px rgba(31,43,108,.38);opacity:0;transform:translateY(16px) scale(.96);pointer-events:none;transition:opacity .3s ease,transform .3s cubic-bezier(.32,.72,.28,1),background .15s,box-shadow .15s}
.floating-cart.is-visible{opacity:1;transform:none;pointer-events:auto}
.floating-cart:hover{background:#16205a;color:#fff;box-shadow:0 14px 34px rgba(31,43,108,.48);transform:translateY(-2px)}
.floating-cart:focus-visible{outline:2px solid #748ffc;outline-offset:3px}
[data-theme="dark"] .floating-cart{background:#3b4cca;box-shadow:0 10px 28px rgba(0,0,0,.55)}
[data-theme="dark"] .floating-cart:hover{background:#3341b3}

.floating-cart-icon{position:relative;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.floating-cart-count{position:absolute;top:-4px;right:-6px;background:#e03131;color:#fff;font-size:.66rem;font-weight:700;min-width:19px;height:19px;line-height:19px;text-align:center;border-radius:10px;padding:0 4px;box-shadow:0 2px 6px rgba(224,49,49,.45)}
.floating-cart-count.bump{animation:fcBump .45s cubic-bezier(.32,.72,.28,1)}
@keyframes fcBump{0%{transform:scale(1)}40%{transform:scale(1.45)}100%{transform:scale(1)}}

.floating-cart-text{display:flex;flex-direction:column;line-height:1.15}
.floating-cart-total{font-size:.95rem;font-weight:700;letter-spacing:.01em}
.floating-cart-label{font-size:.68rem;font-weight:500;opacity:.82;margin-top:1px}

/* RTL: mirror to the left edge like the drawer */
[dir="rtl"] .floating-cart{right:auto;left:20px;padding:8px 9px 8px 18px}
[dir="rtl"] .floating-cart-count{right:auto;left:-6px}

@media(max-width:767px){
.floating-cart{right:14px;bottom:calc(86px + env(safe-area-inset-bottom));padding:7px 14px 7px 8px}
.floating-cart-icon{width:36px;height:36px}
[dir="rtl"] .floating-cart{right:auto;left:14px}
}
@media(prefers-reduced-motion:reduce){
.floating-cart,.floating-cart-count{transition:none!important;animation:none!important}
}
