/* 资产包堆叠卡片（平面为主，仅当前卡片带轻微投影，无透视）：当前卡片在最上层，后两张仅在底部露出细边；手机左右滑动，PC 显示左右按钮。 */
.plan-carousel { --drag: 0; position: relative; outline: none; }
.plan-carousel:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; border-radius: var(--radius-panel, 12px); }
.plan-carousel-stack { display: grid; grid-template-columns: minmax(0, 1fr); padding-bottom: 18px;
  touch-action: pan-y; user-select: none; }
.plan-card { grid-area: 1 / 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden;
  border: 1px solid var(--border); border-radius: var(--radius-panel, 12px); background: var(--surface, #181915);
  transform-origin: 50% 100%;
  transition: transform .38s cubic-bezier(.2, .8, .2, 1), opacity .3s ease; }
.plan-card[data-position="active"] { z-index: 10; border-color: var(--accent, #dfb980);
  background-color: var(--surface, #181915); /* 不透明底色，后方卡片不会透出 */
  background-image: linear-gradient(var(--selected-surface), var(--selected-surface));
  box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--shadow-color, #000) 45%, transparent); /* 轻微浮起 */
  transform: translateX(calc(var(--drag) * 1px)); }
.plan-card[data-position="queued"] { z-index: calc(10 - var(--offset)); opacity: calc(1 - var(--offset) * .3);
  transform: translateY(calc(var(--offset) * 8px)) scaleX(calc(1 - var(--offset) * .045)); }
.plan-card[data-position="past"] { z-index: 11; opacity: 0; pointer-events: none; transform: translateX(-104%); }
.plan-card[data-position="hidden"] { z-index: 0; opacity: 0; transform: translateY(16px) scaleX(.91); }
.plan-carousel.is-dragging .plan-card[data-position="active"] { transition: none; }
.plan-card-media { position: relative; aspect-ratio: 16 / 7; display: grid; place-items: center; overflow: hidden;
  background: var(--soft-surface, #ffffff06);
  border-bottom: 1px solid var(--border); }
.plan-card-media img { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.plan-card-placeholder { width: 76px; height: 76px; display: grid; place-items: center; border-radius: 50%;
  color: var(--accent, #dfb980); border: 1px solid var(--accent, #dfb980); background: var(--bg, #0c0b09); }
.plan-card-index { position: absolute; right: 12px; top: 10px; font-size: 10px; letter-spacing: .12em; color: var(--muted); }
.plan-card-body { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 14px; padding: 16px; align-items: center; }
.plan-card-term { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 10px; }
.plan-card-term strong { font: 600 30px/1.1 var(--font-display, inherit); color: var(--text); }
.plan-card-term strong small { font-size: 16px; margin-left: 2px; }
.plan-card-term span { font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
.plan-card-body h3 { grid-column: 1; font: 500 13px/1.6 var(--font-ui); margin: 0; overflow-wrap: anywhere; }
.plan-card-body p { grid-column: 1; font: 11px/1.65 var(--font-ui); margin: 0; color: var(--muted); }
.plan-card-body .button { grid-column: 2; grid-row: 2 / span 2; min-height: 40px; padding: 8px 18px; font-size: 13px; }
.plan-carousel-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 4px; }
.plan-carousel-dots { display: flex; gap: 6px; }
.plan-carousel-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 99px; cursor: pointer;
  background: var(--track, #ffffff30); transition: width .25s ease, background .25s ease; }
.plan-carousel .plan-carousel-dots button[aria-current="true"] { width: 20px; background: var(--accent, #dfb980); }
.plan-carousel-arrow { display: none; width: 34px; height: 34px; place-items: center; padding: 0; cursor: pointer;
  border: 1px solid var(--border); border-radius: 50%; background: transparent; color: var(--text); }
.plan-carousel-arrow:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); }
.plan-carousel-arrow:disabled { opacity: .3; cursor: default; }
/* 只有可悬停的精确指针（PC）显示左右按钮，手机用滑动切换。 */
@media (hover: hover) and (pointer: fine) { .plan-carousel-arrow { display: grid; } }
@media (prefers-reduced-motion: reduce) { .plan-card { transition: opacity .2s ease; } }
