/* SKU Command OS · live-v59.css
   V75 · 直播卡修复
   V81 · 电视投屏稳定版
   说明：主直播样式已经并入 styles.css；本文件保留电视投屏硬约束与验收锚点，避免生产环境请求缺失文件。 */

:root {
  --lc59-red: #d70015;
  --lc59-blue: #0071e3;
  --lc59-ink: #1d1d1f;
}

/* V88 · 单画布直播手卡 */
/* V89.1 · Final live-canvas layer */
.lc-live-stage {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: clip;
}

.lc-live-stage.is-talk .lc59-slide {
  aspect-ratio: 16 / 9 !important;
  width: min(100%, calc((100dvh - 74px) * 16 / 9)) !important;
  max-width: 100%;
  min-width: 0;
  margin-inline: auto;
}

.lc-live-stage.is-talk .lc-live-main {
  overflow: hidden !important;
}

.lc59-slide-title {
  max-width: 100%;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.lc59-price-history {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.lc59-price-history .lc59-history-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.lc59-slide-bullets article {
  border-radius: 0 !important;
  background: transparent !important;
  border-top: 2px solid rgba(0, 113, 227, .34);
  box-shadow: none !important;
}

.density-rich .lc59-slide-bullets {
  gap: 14px;
}

.density-dense .lc59-slide-bullets {
  gap: 10px;
}

.density-dense .lc59-slide-bullets article {
  padding-block: 8px;
}

.lc59-price-actions .btn {
  min-height: 44px;
}

.lc-live-product .lc-tv-picture {
  grid-row: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: clip !important;
}

.lc-live-product .lc-tv-picture-frame,
.lc-live-product .lc59-picture-frame {
  width: 100% !important;
  min-height: 0 !important;
  max-width: 196px !important;
  aspect-ratio: 1 / 1 !important;
  overflow: clip !important;
}

.lc-live-product img,
.lc-tv-picture img,
.lc-tv-picture-frame img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.lc59-opening textarea,
.lc-live-must-row textarea {
  overflow: auto;
  line-height: 1.2;
}

.lc-live-must-row textarea {
  max-height: 174px;
}

.lc-live-must-row textarea,
.lc-live-must-row textarea {
  max-height: 174px;
}

.lc-live-body {
  grid-template-columns: minmax(620px, 1.18fr) minmax(0, .82fr);
}

.lc-live-main.is-talk .lc59-card {
  height: calc(100dvh - 32px) !important;
}

.lc-live-main.is-talk .lc-live-body {
  grid-template-columns: minmax(360px, .44fr) minmax(720px, 1.56fr);
}

.lc59-opening textarea {
  max-height: 154px !important;
}

.lc59-opening textarea,
.lc59-opening textarea {
  max-height: 154px !important;
}

@media (max-width: 1500px) {
  .lc-live-main.is-talk .lc59-card {
    overflow: auto !important;
  }
}

/* Compact PC: preserve the full 16:9 card */
@media (min-width: 981px) and (max-width: 1180px) {
  .lc-live-stage.is-talk .lc59-slide {
    grid-template-columns: 158px minmax(0, 1fr) !important;
  }
}

/* V112 · 经典电视投屏硬约束
   投屏是 16:9 的远距离阅读画布，不复用后台编辑页的自适应高度规则。
   这组规则必须放在文件末尾，覆盖历史版本遗留的图片 min-height。 */
.lc-live-stage.is-talk {
  height: 100dvh !important;
  max-height: 100dvh !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-main {
  height: 100dvh !important;
  max-height: 100dvh !important;
  min-height: 0 !important;
  overflow: hidden !important;
  padding: 8px 12px 12px !important;
}

.lc-live-stage.is-talk .lc-warcard.is-tv {
  height: calc(100dvh - 72px) !important;
  max-height: calc(100dvh - 72px) !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-title-band {
  min-width: 0 !important;
  padding: 10px 14px !important;
  border-radius: 18px !important;
}

.lc-live-stage.is-talk .lc-title-copy h2 {
  font-size: clamp(25px, 2.5vw, 42px) !important;
  line-height: 1.04 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.lc-live-stage.is-talk .lc-title-copy p,
.lc-live-stage.is-talk .lc-title-copy small {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.lc-live-stage.is-talk .lc-tv-focus {
  display: grid !important;
  grid-template-columns: minmax(180px, .25fr) minmax(0, .75fr) !important;
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
  align-content: start !important;
  gap: 10px !important;
  height: calc(100dvh - 178px) !important;
  max-height: calc(100dvh - 178px) !important;
  min-height: 0 !important;
  margin-top: 8px !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-picture {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  align-self: start !important;
  padding: 8px !important;
  gap: 6px !important;
  border-radius: 18px !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-picture-frame,
.lc-live-stage.is-talk .lc-tv-picture-frame img {
  width: 100% !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
}

.lc-live-stage.is-talk .lc-tv-picture-frame img {
  object-fit: contain !important;
}

.lc-live-stage.is-talk .lc-tv-picture-meta b {
  font-size: clamp(14px, 1.2vw, 20px) !important;
}

.lc-live-stage.is-talk .lc-tv-picture-meta span,
.lc-live-stage.is-talk .lc-tv-picture-meta small {
  font-size: 11px !important;
}

.lc-live-stage.is-talk .lc-tv-open {
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 14px 18px !important;
  border-radius: 18px !important;
}

.lc-live-stage.is-talk .lc-tv-open b {
  font-size: clamp(25px, 2.45vw, 44px) !important;
  line-height: 1.08 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-deal {
  grid-column: 2 !important;
  grid-row: 2 !important;
  min-width: 0 !important;
  gap: 8px !important;
}

.lc-live-stage.is-talk .lc-tv-deal > div {
  min-width: 0 !important;
  min-height: 76px !important;
  padding: 10px 12px !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-deal b {
  font-size: clamp(18px, 1.65vw, 28px) !important;
  line-height: 1.12 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-deal > div:first-child b,
.lc-live-stage.is-talk .lc-tv-price-input {
  font-size: clamp(29px, 3vw, 48px) !important;
}

.lc-live-stage.is-talk .lc-tv-must {
  grid-column: 1 / -1 !important;
  grid-row: 3 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 10px !important;
  gap: 8px !important;
  border-radius: 18px !important;
  grid-template-columns: 120px repeat(3, minmax(0, 1fr)) !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-must h3 {
  align-self: center !important;
  font-size: clamp(19px, 1.8vw, 28px) !important;
}

.lc-live-stage.is-talk .lc-tv-line {
  min-width: 0 !important;
  padding: 9px 10px !important;
  grid-template-columns: 34px minmax(0, 1fr) !important;
  gap: 8px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-line span {
  font-size: 22px !important;
}

.lc-live-stage.is-talk .lc-tv-line b {
  font-size: clamp(15px, 1.35vw, 21px) !important;
  line-height: 1.18 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-rich,
.lc-live-stage.is-talk .lc-tv-cost,
.lc-live-stage.is-talk .lc-focus-strip,
.lc-live-stage.is-talk .lc-board,
.lc-live-stage.is-talk .lc-warning-strip {
  display: none !important;
}

.lc-live-stage.is-talk .lc-tv-risk {
  grid-column: 1 / -1 !important;
  grid-row: 4 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 8px 12px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-risk b {
  font-size: clamp(15px, 1.35vw, 22px) !important;
  line-height: 1.14 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
}

@media (max-width: 920px) {
  .lc-live-stage.is-talk .lc-tv-focus {
    grid-template-columns: minmax(130px, .28fr) minmax(0, .72fr) !important;
    grid-template-rows: auto auto minmax(0, 1fr) auto !important;
  }
  .lc-live-stage.is-talk .lc-tv-must {
    grid-template-columns: 90px repeat(3, minmax(0, 1fr)) !important;
  }
}

/* V113 · PPT 单页投屏
   画布本身就是最终投屏：16:9、白底、双栏文档，不再拼装仪表盘卡片。 */
.lc-live-stage.is-talk .lc-tv-main {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  gap: 8px !important;
  padding: 6px 10px 10px !important;
  overflow: hidden !important;
}

.lc-live-stage.is-talk .lc-tv-bar {
  min-height: 52px !important;
  padding: 4px 8px !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

.lc-live-stage.is-talk .lc59-ppt {
  --ppt-purple: #4b145f;
  --ppt-red: #e30019;
  --ppt-orange: #ee7822;
  --ppt-green: #4f9d3a;
  --ppt-blue: #0874c9;
  --ppt-cyan: #18aeb0;
  position: relative;
  display: block !important;
  width: min(100%, calc((100dvh - 78px) * 16 / 9)) !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: calc(100dvh - 78px) !important;
  aspect-ratio: 16 / 9 !important;
  margin: auto !important;
  padding: clamp(12px, 1.25vw, 24px) !important;
  color: #111 !important;
  background: #fff !important;
  border: 1px solid #d9d9db !important;
  border-radius: 4px !important;
  box-shadow: 0 12px 36px rgba(0, 0, 0, .12) !important;
  overflow: hidden !important;
  container-type: inline-size;
}

.lc59-ppt,
.lc59-ppt * {
  box-sizing: border-box;
  letter-spacing: 0;
}

.lc59-ppt-grid {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 48.4fr) minmax(0, 51.6fr);
  gap: clamp(16px, 1.65vw, 30px);
}

.lc59-ppt-left,
.lc59-ppt-right {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.lc59-ppt-left {
  display: grid;
  grid-template-rows: auto minmax(0, 1.45fr) auto auto;
  align-content: start;
  gap: clamp(7px, .75vw, 13px);
}

.lc59-ppt-title {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: clamp(8px, .75vw, 14px) 16px;
  border: 2px solid var(--ppt-purple);
  border-radius: 6px;
  color: var(--ppt-purple);
  background: #fff;
  font: 800 clamp(24px, 2.35cqw, 40px)/1.08 var(--sans);
  text-align: center;
  overflow-wrap: anywhere;
}

.lc59-ppt-product {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(138px, 31fr) minmax(0, 69fr);
  gap: clamp(10px, 1vw, 18px);
  align-items: center;
  overflow: hidden;
}

.lc59-ppt .lc59-slide-image {
  position: relative;
  width: 100%;
  min-width: 0;
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  padding: 4px;
  background: #f3f3f3;
  border: 1px solid #ececef;
  border-radius: 2px;
  overflow: hidden;
}

.lc59-ppt .lc59-slide-image img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: contain;
}

.lc59-ppt .lc59-slide-image > span {
  position: absolute;
  top: 6px;
  left: 6px;
  padding: 3px 6px;
  color: #5f5f65;
  background: rgba(255, 255, 255, .88);
  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 4px;
  font: 700 10px/1 var(--sans);
}

.lc59-ppt .lc59-slide-image > button {
  position: absolute;
  right: 6px;
  bottom: 6px;
  min-height: 30px;
  padding: 5px 8px;
  opacity: 0;
  transition: opacity .16s ease;
}

.lc59-ppt .lc59-slide-image:hover > button,
.lc59-ppt .lc59-slide-image:focus-within > button {
  opacity: 1;
}

.lc59-ppt-facts {
  min-width: 0;
  display: grid;
  gap: clamp(3px, .35vw, 7px);
  align-content: center;
  font: 700 clamp(13px, 1.12cqw, 20px)/1.25 var(--sans);
}

.lc59-ppt-facts p {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.lc59-ppt-facts b {
  font-weight: 900;
}

.lc59-inline {
  display: inline;
  min-width: 0;
  font: inherit;
}

.lc59-red { color: var(--ppt-red) !important; }
.lc59-purple { color: #6a2ca0 !important; }
.lc59-blue { color: var(--ppt-blue) !important; }
.lc59-cyan { color: var(--ppt-cyan) !important; }

.lc59-ppt-panel {
  min-width: 0;
  display: grid;
  gap: 5px;
  align-content: start;
}

.lc59-ppt-panel h2,
.lc59-ppt-sell-title {
  width: fit-content;
  min-width: 38%;
  margin: 0 0 2px;
  padding: 6px 14px;
  border: 2px solid var(--ppt-purple);
  border-radius: 5px;
  color: var(--ppt-purple);
  background: #fff;
  font: 800 clamp(18px, 1.75cqw, 30px)/1.05 var(--sans);
  text-align: center;
}

.lc59-ppt-copy {
  min-width: 0;
  display: block;
  color: #141416;
  font: 600 clamp(12px, .96cqw, 17px)/1.35 var(--sans);
  overflow-wrap: anywhere;
}

.lc59-ppt-copy > b {
  float: left;
  margin-right: 8px;
  font-weight: 900;
}

.lc59-paragraph,
.lc59-one-line {
  display: inline;
  min-width: 0;
}

.lc59-ppt-qa h2 {
  min-width: 30%;
}

.lc59-ppt-qa .lc59-ppt-copy:last-child {
  color: var(--ppt-red);
  font-weight: 800;
}

.lc59-ppt-right {
  display: block;
  padding-inline: clamp(2px, .35vw, 7px);
  overflow: hidden;
}

.lc59-ppt-sell-title {
  min-width: 40%;
  margin-inline: auto;
  margin-bottom: clamp(9px, .8vw, 15px);
}

.lc59-doc-section {
  min-width: 0;
  display: block;
  margin: 0 0 clamp(8px, .72vw, 13px);
  overflow: visible;
}

.lc59-doc-heading {
  min-width: 0;
  display: block;
  color: #111;
  font: 800 clamp(15px, 1.14cqw, 21px)/1.22 var(--sans);
  overflow-wrap: anywhere;
}

.lc59-doc-heading > span {
  float: left;
  margin-right: 6px;
  font-weight: 900;
}

.lc59-doc-check {
  width: 1.16em;
  height: 1.16em;
  display: inline-grid;
  place-items: center;
  margin-top: .08em;
  border-radius: 4px;
  color: #fff !important;
  background: #24b53f;
  font-size: .82em;
  line-height: 1;
}

.lc59-doc-title {
  display: inline;
  min-width: 0;
}

.lc59-doc-body {
  min-width: 0;
  margin-top: 3px;
  padding-left: 1.54em;
  color: #111;
  font: 600 clamp(12px, .98cqw, 18px)/1.36 var(--sans);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.lc59-doc-section.tone-orange .lc59-doc-heading,
.lc59-doc-section.tone-orange .lc59-doc-heading > span { color: var(--ppt-orange); }
.lc59-doc-section.tone-green .lc59-doc-heading,
.lc59-doc-section.tone-green .lc59-doc-heading > span { color: var(--ppt-green); }
.lc59-doc-section.tone-blue .lc59-doc-heading,
.lc59-doc-section.tone-blue .lc59-doc-heading > span { color: var(--ppt-blue); }
.lc59-doc-section.tone-purple .lc59-doc-heading,
.lc59-doc-section.tone-purple .lc59-doc-heading > span { color: #6a2ca0; }

.lc59-ppt .is-editable {
  min-width: 12px;
  outline: 0;
  border-radius: 2px;
  cursor: text;
}

.lc59-ppt.can-edit .is-editable:hover {
  background: rgba(0, 113, 227, .045);
  box-shadow: inset 0 -1px 0 rgba(0, 113, 227, .24);
}

.lc59-ppt.can-edit .is-editable:focus {
  background: #fff;
  box-shadow: 0 0 0 3px rgba(0, 113, 227, .18), inset 0 0 0 1px #0071e3;
}

.lc59-ppt-meta {
  display: none;
}

.lc59-ppt .lc59-slide-risk {
  display: none;
}

.lc59-ppt .lc59-slide-risk:has(.lc59-risk.bad) { display: none; }

.lc59-ppt .lc59-risk.bad {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 8px 12px;
  color: #b30016;
  background: rgba(255, 238, 240, .97);
  border: 1px solid rgba(227, 0, 25, .34);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(110, 0, 14, .16);
  font: 800 clamp(11px, .9cqw, 15px)/1.25 var(--sans);
}

.lc59-ppt.density-rich .lc59-ppt-left,
.lc59-ppt.density-dense .lc59-ppt-left {
  gap: 6px;
}

.lc59-ppt.density-dense .lc59-ppt-facts,
.lc59-ppt.density-dense .lc59-ppt-copy,
.lc59-ppt.density-dense .lc59-doc-body {
  font-size: clamp(11px, .88cqw, 15px);
  line-height: 1.3;
}

.lc59-ppt.density-dense .lc59-doc-heading {
  font-size: clamp(13px, 1.04cqw, 18px);
}

@media (max-width: 980px) {
  .lc-live-stage.is-talk {
    grid-template-columns: 150px minmax(0, 1fr) !important;
  }
  .lc59-ppt {
    padding: 10px !important;
  }
  .lc59-ppt-grid {
    gap: 10px;
  }
  .lc59-ppt-product {
    grid-template-columns: minmax(120px, 32fr) minmax(0, 68fr);
  }
}

/* V113.1 · PPT 的画布比例和内容流必须稳定。
   旧直播卡遗留了 100vh 高度与等分网格，导致 16:9 被拉长、正文被摊出大块空白。 */
.lc-live-stage.is-talk .lc-tv-main.is-talk .lc59-card.lc59-ppt,
.lc-live-stage.is-talk .lc59-card.lc59-slide.lc59-ppt {
  width: min(100%, calc((100dvh - 86px) * 16 / 9)) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: calc(100dvh - 86px) !important;
  aspect-ratio: 16 / 9 !important;
  padding: clamp(11px, 1vw, 19px) !important;
  overflow: hidden !important;
}

.lc59-ppt-left {
  grid-template-rows: auto auto auto auto !important;
  align-content: start !important;
  gap: clamp(6px, .55vw, 10px) !important;
}

.lc59-ppt-product {
  align-items: center !important;
}

.lc59-ppt-right { align-content: start !important; }

.lc59-ppt-grid {
  gap: clamp(13px, 1.5vw, 26px) !important;
}

/* V114 · 真正的 PPT 投屏态。
   投屏时只允许一张 16:9 白色幻灯片进入视野；链接排序、工具栏和应用外壳全部退出画面。 */
.lc-live-stage.is-presentation {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  place-items: center !important;
  padding: 0 !important;
  background: #e9e9eb !important;
}

.lc-live-stage.is-presentation .lc-live-main {
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  overflow: hidden !important;
}

#sheet .lc-live-stage.is-presentation .lc-live-main .lc59-card.lc59-ppt {
  width: min(100vw, calc(100dvh * 16 / 9)) !important;
  height: min(100dvh, calc(100vw * 9 / 16)) !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: 16 / 9 !important;
  margin: 0 !important;
  padding: clamp(14px, 1.2vw, 24px) !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.lc-ppt-exit {
  position: fixed;
  z-index: 90;
  top: 14px;
  right: 14px;
  min-width: 42px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 9px 12px;
  color: #1d1d1f;
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(0, 0, 0, .1);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
  font: 700 13px/1 var(--sans);
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .16s ease, transform .16s ease;
}

.lc-live-stage.is-presentation:hover .lc-ppt-exit,
.lc-ppt-exit:focus-visible {
  opacity: 1;
  transform: translateY(0);
}

.lc-ppt-exit svg {
  width: 16px;
  height: 16px;
}

.lc59-doc-heading {
  display: flex !important;
  align-items: baseline;
  gap: 5px;
}

.lc59-doc-heading > span {
  float: none !important;
  margin-right: 0 !important;
}

.lc59-doc-check {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 1.05em;
  height: 1.05em;
  border-radius: 3px;
  color: #fff !important;
  background: #28a745;
  font-size: .82em;
  line-height: 1;
}

.lc59-doc-title {
  flex: 1 1 auto;
}

.lc-live-stage.is-presentation .lc59-ppt .lc59-slide-image > span,
.lc-live-stage.is-presentation .lc59-ppt .lc59-slide-image > button {
  opacity: 0;
}

.lc-live-stage.is-presentation .lc59-ppt.can-edit .lc59-slide-image:hover > span,
.lc-live-stage.is-presentation .lc59-ppt.can-edit .lc59-slide-image:hover > button,
.lc-live-stage.is-presentation .lc59-ppt.can-edit .lc59-slide-image:focus-within > span,
.lc-live-stage.is-presentation .lc59-ppt.can-edit .lc59-slide-image:focus-within > button {
  opacity: 1;
}

/* V114.2 · 老版 PPT 手卡的连续阅读节奏。
   内容偏少时不缩成一团：左右栏都按整页高度铺开，但不制造新的卡片层级。 */
.lc59-ppt.density-light .lc59-ppt-left {
  grid-template-rows: auto auto auto auto !important;
  align-content: space-between !important;
  gap: clamp(10px, .85vw, 17px) !important;
}

.lc59-ppt.density-light .lc59-ppt-title {
  padding-block: clamp(10px, .9vw, 17px);
  font-size: clamp(27px, 2.5cqw, 46px);
}

.lc59-ppt.density-light .lc59-ppt-product {
  grid-template-columns: minmax(150px, 32fr) minmax(0, 68fr);
  gap: clamp(14px, 1.25vw, 24px);
}

.lc59-ppt.density-light .lc59-ppt-facts {
  gap: clamp(5px, .48vw, 9px);
  font-size: clamp(15px, 1.22cqw, 23px);
  line-height: 1.3;
}

.lc59-ppt.density-light .lc59-ppt-panel h2,
.lc59-ppt.density-light .lc59-ppt-sell-title {
  font-size: clamp(20px, 1.92cqw, 34px);
}

.lc59-ppt.density-light .lc59-ppt-copy {
  font-size: clamp(14px, 1.08cqw, 20px);
  line-height: 1.46;
}

.lc59-ppt.density-light .lc59-ppt-right {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(7px, .5vw, 10px);
}

.lc59-ppt.density-light .lc59-ppt-sell-title {
  flex: 0 0 auto;
  margin-bottom: 0;
}

.lc59-ppt.density-light .lc59-doc-section {
  flex: 0 0 auto;
  margin: 0;
}

.lc59-ppt.density-light .lc59-doc-heading {
  font-size: clamp(17px, 1.34cqw, 25px);
  line-height: 1.28;
}

.lc59-ppt.density-light .lc59-doc-body {
  margin-top: 5px;
  font-size: clamp(14px, 1.08cqw, 20px);
  line-height: 1.5;
}

/* Empty editable price stays a real empty value; the hint is visual only. */
.lc59-price-edit:empty::before {
  content: attr(data-placeholder);
  color: color-mix(in srgb, currentColor 55%, transparent);
  pointer-events: none;
}
