.cart-dialog { width: min(720px, calc(100vw - 28px)); max-height: min(760px, calc(100dvh - 28px)); margin: auto; padding: 0; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text-strong); box-shadow: 0 26px 90px rgba(0,0,0,.65); overflow: hidden; }
.cart-dialog::backdrop { background: rgba(5,5,5,.78); backdrop-filter: blur(8px); }
.cart-dialog__frame { max-height: min(760px, calc(100dvh - 28px)); display: flex; flex-direction: column; }
.cart-dialog__head { min-height: 88px; padding: 18px 22px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.cart-dialog__head span, .cart-panel-title span, .cart-success > span { color: var(--accent); font-size: .6rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.cart-dialog__head h2 { margin-top: 6px; font-size: clamp(1.4rem, 2.3vw, 2rem); line-height: 1; }
.cart-dialog__head > button { width: 42px; height: 42px; border: 1px solid var(--line); color: var(--text-strong); font-size: 1.6rem; }
.cart-dialog__preview { min-height: 0; padding: 20px 22px 6px; flex: 1; overflow-y: auto; }
.cart-dialog__footer { padding: 16px 22px 20px; display: flex; align-items: end; justify-content: space-between; gap: 18px; border-top: 1px solid var(--line); background: var(--surface); }
.cart-dialog__total { min-width: 0; display: grid; gap: 3px; }
.cart-dialog__total > span { color: var(--muted); font-size: .6rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cart-dialog__total > strong { font-family: var(--font-display); font-size: 1.45rem; }
.cart-dialog__total > small { color: var(--muted); font-size: .62rem; }
.cart-dialog__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.cart-dialog__actions .button { min-height: 44px; }
.cart-dialog__actions .button--accent { gap: 18px; }
.cart-panel-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.cart-panel-title h2, .cart-panel-title h3 { margin-top: 7px; font-size: 1.2rem; }
.cart-panel-title > b { min-width: 38px; color: var(--muted); font-family: var(--font-display); font-size: 1.35rem; text-align: right; }
.cart-items { margin-top: 18px; }
.cart-item { min-width: 0; padding: 14px 0; display: grid; grid-template-columns: 82px minmax(0,1fr) auto; gap: 14px; align-items: center; border-top: 1px solid var(--line); }
.cart-item:last-child { border-bottom: 1px solid var(--line); }
.cart-item__visual { width: 82px; aspect-ratio: 1; display: block; border: 1px solid var(--line); background: var(--bg-alt); overflow: hidden; }
.cart-item__visual img { width: 100%; height: 100%; object-fit: contain; }
.cart-item__copy { min-width: 0; display: grid; gap: 4px; }
.cart-item__copy > small { color: var(--accent); font-size: .56rem; font-weight: 850; letter-spacing: .09em; }
.cart-item__copy > a, .cart-item__copy > strong { color: var(--text-strong); font-weight: 800; overflow-wrap: anywhere; }
.cart-item__copy > span { color: var(--muted); font-size: .72rem; overflow-wrap: anywhere; }
.cart-item__controls { margin-top: 6px; display: flex; align-items: center; gap: 6px; }
.cart-item__controls button { min-width: 28px; height: 28px; padding: 0 7px; border: 1px solid var(--line); color: var(--text); font-size: .7rem; }
.cart-item__controls button:last-child { margin-left: 4px; color: var(--muted); }
.cart-item__controls button:disabled { opacity: .35; }
.cart-item__controls b { min-width: 24px; text-align: center; font-size: .75rem; }
.cart-item__price { align-self: start; padding-top: 4px; font-family: var(--font-display); font-size: 1rem; white-space: nowrap; }
.cart-item--compact { grid-template-columns: 62px minmax(0,1fr) auto; padding: 11px 0; gap: 11px; }
.cart-item--compact .cart-item__visual { width: 62px; }
.cart-item--compact .cart-item__copy > a, .cart-item--compact .cart-item__copy > strong { font-size: .86rem; }
.cart-item--compact .cart-item__price { font-size: .82rem; }
.cart-item--compact .cart-item__controls { margin-top: 3px; }
.cart-item--compact .cart-item__controls button { min-width: 25px; height: 25px; }
.cart-empty { display: grid; align-content: center; justify-items: start; }
.cart-empty > span { color: var(--accent); font-size: .6rem; font-weight: 850; letter-spacing: .12em; }
.cart-empty > strong { margin-top: 10px; font-family: var(--font-display); font-size: 1.8rem; text-transform: uppercase; }
.cart-empty p { max-width: 430px; margin-top: 8px; color: var(--muted); line-height: 1.6; }
.cart-empty .button { margin-top: 22px; }
.cart-empty--compact { min-height: 230px; }
.cart-empty--compact p { font-size: .82rem; }
.cart-page__intro { padding-bottom: clamp(28px, 4vw, 48px); }
.cart-page-shell { margin-bottom: clamp(70px, 10vw, 140px); border: 1px solid var(--line-strong); background: var(--surface); }
.cart-page-content { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(350px,.88fr); }
.cart-items-panel--page, .cart-checkout-panel--page { min-width: 0; padding: clamp(20px, 3vw, 34px); }
.cart-items-panel--page { border-right: 1px solid var(--line); }
.cart-checkout-panel--page { align-self: start; }
.cart-empty--page { min-height: 470px; }
.cart-summary { margin-top: 20px; padding: 16px; border: 1px solid var(--line); background: var(--bg-alt); }
.cart-summary > div { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; }
.cart-summary span { color: var(--muted); font-size: .72rem; font-weight: 750; text-transform: uppercase; }
.cart-summary strong { font-family: var(--font-display); font-size: 1.45rem; }
.cart-summary p { margin-top: 8px; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.cart-checkout-panel__intro { margin: 18px 0 6px; color: var(--muted); font-size: .82rem; line-height: 1.55; }
.cart-checkout { display: grid; }
.cart-checkout > label:not(.cart-checkout__consent):not(.cart-honeypot) { margin-top: 11px; display: grid; gap: 6px; }
.cart-checkout label > span { color: var(--text); font-size: .65rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.cart-checkout label small { color: var(--muted); font-weight: 600; }
.cart-checkout input:not([type="checkbox"]), .cart-checkout textarea { width: 100%; border: 1px solid var(--line); background: var(--bg-alt); color: var(--text-strong); }
.cart-checkout input:not([type="checkbox"]) { min-height: 44px; padding: 0 12px; }
.cart-checkout textarea { min-height: 92px; padding: 11px 12px; resize: vertical; }
.cart-checkout input:focus, .cart-checkout textarea:focus { border-color: var(--accent); outline: none; }
.cart-checkout input[readonly] { color: var(--muted); cursor: default; }
.cart-checkout__consent { margin-top: 15px; display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 10px; align-items: start; }
.cart-checkout__consent input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--accent); }
.cart-checkout__consent span { color: var(--muted); font-size: .66rem; font-weight: 600; line-height: 1.55; letter-spacing: 0; text-transform: none; }
.cart-checkout__consent a { color: var(--text-strong); text-decoration: underline; text-underline-offset: 2px; }
.cart-checkout__message { min-height: 21px; margin-top: 10px; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.cart-checkout__message[data-tone="error"] { color: #ff7661; }
.cart-checkout__message[data-tone="success"] { color: var(--accent); }
.cart-checkout__submit { width: 100%; min-height: 50px; margin-top: 3px; display: flex; align-items: center; justify-content: space-between; }
.cart-checkout__submit:disabled { opacity: .45; cursor: not-allowed; }
.cart-checkout__fineprint { margin-top: 9px; display: block; color: var(--muted); font-size: .62rem; line-height: 1.45; }
.cart-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.cart-success { padding: clamp(34px, 7vw, 90px); align-content: center; justify-items: start; background: radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--accent) 13%, transparent), transparent 35%); }
.cart-success:not([hidden]) { display: grid; }
.cart-success h2 { max-width: 700px; margin-top: 12px; font-size: clamp(2.4rem, 6vw, 5rem); line-height: .95; text-transform: uppercase; }
.cart-success > strong { margin-top: 24px; color: var(--accent); font-family: var(--font-display); font-size: clamp(1.4rem, 3vw, 2.3rem); }
.cart-success > p { max-width: 580px; margin-top: 14px; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.cart-success > div { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 10px; }
.cart-success__account { margin-top: 18px; color: var(--accent); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.cart-success--page { min-height: 560px; }
.cart-count:not([hidden]) { background: var(--accent); color: var(--accent-contrast); }
.header-control--cart[aria-current="page"] { border-color: var(--accent); color: var(--accent); }
.header-control--cart.is-cart-bumping { animation: cart-icon-bump .62s cubic-bezier(.2,.8,.2,1); }
.cart-count.is-cart-bumping { animation: cart-count-pop .62s cubic-bezier(.2,.8,.2,1); }
.cart-dialog__total[hidden], .cart-dialog__actions [hidden], .cart-empty[hidden], .cart-summary[hidden], .cart-checkout-panel[hidden], .cart-page-content[hidden], .cart-success[hidden], .cart-count[hidden] { display: none !important; }
@keyframes cart-icon-bump {
    0%, 100% { transform: translateY(0) rotate(0); }
    28% { transform: translateY(-5px) rotate(-8deg) scale(1.08); }
    55% { transform: translateY(1px) rotate(5deg) scale(.98); }
    78% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes cart-count-pop {
    0%, 100% { transform: scale(1); }
    35% { transform: scale(1.55); box-shadow: 0 0 0 7px color-mix(in srgb, var(--accent) 20%, transparent); }
}
@media (max-width: 900px) {
    .cart-page-content { grid-template-columns: 1fr; }
    .cart-items-panel--page { border-right: 0; border-bottom: 1px solid var(--line); }
    .cart-empty--page { min-height: 330px; }
}
@media (max-width: 620px) {
    .cart-dialog { width: 100vw; max-width: none; max-height: 100dvh; height: 100dvh; border: 0; }
    .cart-dialog__frame { max-height: 100dvh; height: 100dvh; }
    .cart-dialog__head { min-height: 76px; padding: 14px 16px; }
    .cart-dialog__preview { padding: 16px 16px 4px; }
    .cart-dialog__footer { padding: 14px 16px max(16px, env(safe-area-inset-bottom)); display: grid; align-items: stretch; }
    .cart-dialog__actions { display: grid; grid-template-columns: 1fr 1fr; }
    .cart-dialog__actions .button { justify-content: center; text-align: center; }
    .cart-page-shell { margin-inline: -1px; }
    .cart-items-panel--page, .cart-checkout-panel--page { padding: 20px 16px; }
    .cart-item { grid-template-columns: 64px minmax(0,1fr); align-items: start; }
    .cart-item__visual { width: 64px; }
    .cart-item__price { grid-column: 2; padding-top: 0; }
    .cart-item--compact { grid-template-columns: 54px minmax(0,1fr); }
    .cart-item--compact .cart-item__visual { width: 54px; }
    .cart-item--compact .cart-item__price { grid-column: 2; }
    .cart-summary > div { align-items: flex-start; flex-direction: column; }
    .cart-success { padding: 34px 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .header-control--cart.is-cart-bumping, .cart-count.is-cart-bumping { animation: none; }
}
