/* Gemini Ultra 售后页：叠加在 forge.css 之上，只补兑换页没有的售后组件，令牌全部沿用 forge。 */
.forge [hidden] { display: none !important; }
.forge a.forge-mark, .forge a.service-tab { text-decoration: none; }
.forge .service-tab:hover { color: var(--bone); }

/* 左栏：步骤 + 受理范围；窄屏时受理范围落到表单之后 */
.after-sales-layout { grid-template-rows: auto 1fr; }
.after-sales-layout > .ticket { grid-row: span 2; }
.forge .policy-notes { display: grid; gap: 14px; align-content: start; padding-top: 22px; border-top: 1px solid var(--bronze-line); }
.forge .policy-notes .eyebrow { margin: 0; }
.forge .policy-notes h3 { margin: 0 0 4px; font: 700 17px/1.45 var(--serif); letter-spacing: .08em; color: var(--bone); }
.forge .policy-warn { display: grid; gap: 4px; padding: 14px 16px; border-left: 2px solid var(--ember); background: var(--ember-soft); font-size: 13px; }
.forge .policy-warn b { color: #f0b3a8; font-weight: 500; }
.forge .policy-warn span { color: var(--bone-dim); }
.forge .muted { margin: 0; color: var(--bone-faint); font-size: 12.5px; line-height: 1.7; }

/* 铭牌内的分段 */
.forge .redeem-form { display: grid; gap: 34px; }
.forge #accountPanel + #casePanel:not([hidden]) { padding-top: 30px; border-top: 1px solid var(--bronze-line); }
.forge .account-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.forge .account-head .eyebrow { margin: 0; }
.forge .quiet {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; cursor: pointer; white-space: nowrap;
  border: 1px solid var(--bronze-dim); background: transparent; color: var(--bronze-hi);
  font-size: 12px; letter-spacing: .08em; transition: border-color .2s, color .2s, background .2s;
}
.forge .quiet:hover:not(:disabled) { border-color: var(--bronze); color: var(--bone); background: rgba(156,124,80,.08); }
.forge .quiet:disabled { opacity: .45; cursor: not-allowed; }
.forge .quiet:focus-visible { outline: 1px solid var(--bronze-hi); outline-offset: 3px; }
.forge .notice { margin: 0; padding: 14px 18px; border: 1px solid var(--bronze-dim); background: rgba(0,0,0,.28); color: var(--bronze-hi); font-size: 13.5px; overflow-wrap: anywhere; }
.forge .notice.error { border-color: rgba(192,40,28,.6); background: rgba(125,12,16,.16); color: #f0b3a8; }

/* 上传 */
.forge .upload-zone { display: grid; gap: 12px; padding: 20px 22px; border: 1px dashed var(--bronze-dim); background: rgba(0,0,0,.28); }
.forge .upload-zone label { gap: 4px; }
.forge .upload-zone label b { font: 700 16px/1.4 var(--serif); letter-spacing: .08em; color: var(--bone); }
.forge .upload-zone span, .forge .upload-zone small { color: var(--bone-faint); font-size: 12px; letter-spacing: .02em; font-weight: 400; }
.forge .upload-zone input[type="file"] { padding: 4px 0; border: 0; background: transparent; color: var(--bone-dim); font-size: 12.5px; }
.forge .upload-zone input[type="file"]:focus { background: transparent; box-shadow: none; }
.forge input[type="file"]::file-selector-button {
  margin-right: 14px; padding: 8px 14px; cursor: pointer; border: 1px solid var(--bronze-dim); border-radius: 0;
  background: transparent; color: var(--bronze-hi); font: inherit; letter-spacing: .08em;
}
.forge .uploads:empty, .forge #uploadStatus:empty { display: none; }
.forge .upload-row { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--bronze-line); font-size: 12.5px; overflow-wrap: anywhere; }
.forge .upload-row img, .forge .upload-row video { width: 64px; height: 54px; object-fit: cover; border: 1px solid var(--bronze-line); }
.forge .upload-row > div { flex: 1; min-width: 0; color: var(--bone); }

/* 售后记录 */
.forge .case-cards { display: grid; gap: 14px; }
.forge .case-card { padding: 22px 24px; border: 1px solid var(--bronze-line); background: linear-gradient(180deg, var(--ash-2), var(--ash)); transition: border-color .25s; }
.forge .case-card:hover { border-color: var(--bronze-dim); }
.forge .case-card h3 { margin: 12px 0 4px; font: 700 18px/1.4 var(--serif); letter-spacing: .06em; color: var(--bone); }
.forge .case-card p { margin: 6px 0; color: var(--bone-dim); font-size: 13.5px; overflow-wrap: anywhere; }
.forge .case-card p.ticket-ref { font: 500 11px/1.6 var(--mono); color: var(--bone-faint); }
.forge .case-card p.muted { color: var(--bone-faint); font-size: 12.5px; }
.forge .badge { display: inline-block; padding: 4px 10px; border: 1px solid var(--bronze-dim); font-size: 11px; letter-spacing: .2em; color: var(--bronze-hi); }
.forge .badge-processing { border-color: rgba(192,40,28,.6); background: var(--ember-soft); color: var(--bone); }
.forge .badge-pending_review, .forge .badge-needs_info { border-color: rgba(233,161,92,.5); color: var(--warn); }
.forge .badge-resolved { border-color: var(--bronze); color: var(--bronze-hi); }
.forge .badge-rejected { border-color: rgba(192,40,28,.6); color: #f0b3a8; }
.forge .evidence { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.forge .evidence:empty { display: none; }
.forge .timeline { list-style: none; margin: 18px 0; padding: 0; }
.forge .timeline li { position: relative; padding: 0 0 16px 20px; border-left: 1px solid var(--bronze-dim); }
.forge .timeline li:last-child { padding-bottom: 2px; }
.forge .timeline li::before { content: ""; position: absolute; left: -4px; top: 7px; width: 7px; height: 7px; transform: rotate(45deg); background: var(--obsidian); border: 1px solid var(--bronze); }
.forge .timeline li:first-child::before { background: var(--ember); border-color: var(--ember); }
.forge .timeline small { color: var(--bone-faint); font: 500 11px/1.9 var(--mono); }
.forge .timeline p { margin: 2px 0 0; color: var(--bone); font-size: 13.5px; white-space: pre-wrap; }
.forge .case-cards > .muted { padding: 22px 24px; border: 1px dashed var(--bronze-line); }

/* 附件预览 */
.forge dialog { max-width: min(900px, 94vw); max-height: 92vh; padding: 18px; border: 1px solid var(--bronze-dim); background: var(--ash); color: var(--bone); box-shadow: 0 40px 80px rgba(0,0,0,.6); }
.forge dialog::backdrop { background: rgba(0,0,0,.75); }
.forge #previewBody img, .forge #previewBody video { display: block; max-width: 100%; max-height: 76vh; margin: 15px auto 0; }

@media (max-width: 960px) {
  .after-sales-layout { grid-template-rows: none; }
  .after-sales-layout > .ticket { grid-row: auto; }
}
@media (max-width: 600px) {
  .forge .claim-strip { grid-template-columns: 1fr; }
  .forge .claim-strip span { border-right: 0; border-bottom: 1px solid var(--bronze-line); }
  .forge .claim-strip span:last-child { border-bottom: 0; }
  .forge .case-card { padding: 18px 16px; }
  .forge .upload-zone { padding: 16px; }
}
