/* SmartCartUI: neutral on purpose, no dependency on Bootstrap or on the template. */

.smartcart-ui { position: fixed; right: 1rem; bottom: 1rem; z-index: 1050; font-size: .95rem; }

.smartcart-fab {
    display: block;
    margin-left: auto;
    padding: .6rem 1rem;
    border: 0;
    border-radius: 2rem;
    background: #1f3a2e;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .3);
    cursor: pointer;
}
.smartcart-count {
    display: inline-block;
    min-width: 1.4rem;
    margin-left: .25rem;
    padding: 0 .35rem;
    border-radius: 1rem;
    background: #fff;
    color: #1f3a2e;
    text-align: center;
}

.smartcart-panel {
    position: absolute;
    right: 0;
    bottom: 3.2rem;
    width: min(22rem, calc(100vw - 2rem));
    max-height: 70vh;
    overflow: auto;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: .6rem;
    background: #fff;
    color: #222;
    box-shadow: 0 6px 24px rgba(0, 0, 0, .25);
}
.smartcart-panel[hidden], .smartcart-toast[hidden] { display: none; }
.smartcart-title { font-size: 1.1rem; margin: 0 0 .5rem; }
.smartcart-empty { margin: 0; opacity: .7; }

.smartcart-line { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-top: 1px solid rgba(0, 0, 0, .1); }
.smartcart-name { font-weight: 600; }
.smartcart-variant-label { font-size: .8rem; opacity: .7; }
.smartcart-controls { display: flex; align-items: center; gap: .4rem; margin-top: .25rem; }
.smartcart-controls button { min-width: 1.8rem; border: 1px solid rgba(0, 0, 0, .25); border-radius: .3rem; background: #fff; color: #222; font: inherit; cursor: pointer; }
.smartcart-controls .smartcart-link { border: 0; text-decoration: underline; font-size: .8rem; min-width: 0; }
.smartcart-amount { white-space: nowrap; font-weight: 600; }

.smartcart-totals { margin-top: .5rem; padding-top: .5rem; border-top: 1px solid rgba(0, 0, 0, .1); }
.smartcart-totals > div { display: flex; justify-content: space-between; }
.smartcart-grand { font-weight: 700; font-size: 1.05rem; }
.smartcart-actions { display: flex; gap: .5rem; align-items: center; justify-content: flex-end; margin-top: .75rem; }
.smartcart-actions button, .smartcart-actions a { padding: .35rem .75rem; border: 1px solid rgba(0, 0, 0, .3); border-radius: .3rem; background: #fff; color: #222; font: inherit; text-decoration: none; cursor: pointer; }
/* Explicit colours on every button: templates often set their own, and white on white hides Checkout. */
.smartcart-actions .smartcart-checkout { border-color: #1f3a2e; background: #1f3a2e; color: #fff; font-weight: 600; }
.smartcart-actions .smartcart-checkout:hover, .smartcart-actions .smartcart-checkout:focus { background: #2b5240; color: #fff; }

.smartcart-toast {
    position: absolute;
    right: 6.5rem;
    bottom: .2rem;
    padding: .6rem 1rem;
    border-radius: .5rem;
    background: #222;
    color: #fff;
    white-space: nowrap;
}
.smartcart-toast button { margin-left: .5rem; border: 0; background: none; color: #ffd479; font-weight: 600; text-decoration: underline; cursor: pointer; }
