/* 投诉页仅补充表单结构，字体、色彩和卡片沿用信息中心。 */
.complaint-page [hidden] { display: none !important; }
.complaint-form { display: grid; gap: 28px; }
.complaint-page fieldset { min-width: 0; border: 0; padding: 0; margin: 0; display: grid; gap: 12px; }
.complaint-page legend { font-size: 16px; font-weight: 600; padding: 0 0 14px; }
.complaint-page label { font-size: 14px; color: var(--info-ink); }
.complaint-page input:not([type=checkbox]):not([type=radio]), .complaint-page select, .complaint-page textarea { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid var(--info-border); border-radius: 8px; background: white; color: var(--info-ink); font: inherit; font-size: 14px; }
.complaint-page textarea { resize: vertical; }
.complaint-page :focus-visible { outline: 2px solid var(--info-active-blue); outline-offset: 3px; }
.complaint-page .complaint-check { display: flex; gap: 9px; align-items: flex-start; line-height: 1.7; }
.complaint-page input[type=checkbox] { flex: 0 0 auto; margin-top: 5px; accent-color: var(--info-active-blue); }
.complaint-options { display: flex; gap: 10px 18px; flex-wrap: wrap; }
.complaint-row { display: flex; gap: 12px; align-items: center; }
.complaint-row input { flex: 1; }
.complaint-row button { flex: 0 0 auto; }
.complaint-page .complaint-hint { color: var(--info-muted); font-size: 12px; line-height: 1.7; margin: 0; }
.complaint-guide { padding: 14px 0; }
.complaint-guide summary { cursor: pointer; color: var(--info-active-blue); }
.complaint-upload { padding: 14px; border: 1px solid var(--info-border); border-radius: 8px; display: grid; gap: 8px; }
.complaint-files { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.complaint-files li { overflow-wrap: anywhere; display: grid; gap: 6px; }
.complaint-files img, .complaint-target img { max-height: 110px; max-width: 120px; object-fit: contain; }
.complaint-link { border: 0; padding: 0; color: var(--info-active-blue); background: transparent; font: inherit; cursor: pointer; text-align: left; }
.complaint-target { padding: 12px; border: 1px solid var(--info-border); border-radius: 8px; display: flex; gap: 16px; align-items: center; overflow-wrap: anywhere; }
.complaint-page [data-case-detail], .complaint-page [data-case-list] { display: grid; gap: 16px; overflow-wrap: anywhere; }
.complaint-entry { white-space: pre-wrap; border-bottom: 1px solid var(--info-border); padding: 12px 0; }
.complaint-page [data-state=error] { color: #b91c1c; }
.complaint-page button:disabled { opacity: .55; cursor: wait; }
@media(max-width: 540px) { .complaint-row { flex-direction: column; align-items: stretch; } .complaint-page .info-feedback-submit { width: 100%; } }

/* 下拉始终在选择框下方，长列表在菜单内滚动。 */
.complaint-select { position: relative; min-width: 0; }
.complaint-page .complaint-select-native { position: absolute; width: 1px !important; height: 1px; padding: 0 !important; border: 0 !important; overflow: hidden; clip-path: inset(50%); pointer-events: none; }
.complaint-select-trigger { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 12px; border: 1px solid var(--info-border); border-radius: 8px; background: white; color: var(--info-ink); font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.complaint-select-trigger::after { content: ''; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin: -4px 3px 0; flex: 0 0 auto; transition: transform 160ms ease; }
.complaint-select-trigger[aria-expanded=true]::after { transform: translateY(4px) rotate(225deg); }
.complaint-select-list { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 30; max-height: min(280px, 45vh); overflow-y: auto; overscroll-behavior: contain; padding: 5px; border: 1px solid var(--info-border); border-radius: 10px; background: white; box-shadow: 0 8px 24px rgb(25 30 55 / 12%); animation: complaint-select-enter 160ms ease-out; }
.complaint-select-option { padding: 10px 12px; border-radius: 6px; font-size: 14px; line-height: 1.5; cursor: pointer; overflow-wrap: anywhere; }
.complaint-select-option:hover, .complaint-select-option.is-active { background: #f1efff; }
.complaint-select-option[aria-selected=true] { color: var(--info-active-blue); font-weight: 600; }
.complaint-select-option[aria-selected=true]::after { content: ' ✓'; }
.complaint-select-option[aria-disabled=true] { opacity: .5; cursor: default; }
@keyframes complaint-select-enter { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .complaint-select-list { animation: none; } .complaint-select-trigger::after { transition: none; } }

/* 原生文件输入覆盖整个方形卡片，保留文件选择器的键盘行为。 */
.complaint-upload-picker { position: relative; width: 112px; height: 112px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; margin: 8px 0 4px; border-radius: 12px; background: #f5f5f6; box-shadow: 0 2px 8px rgb(25 30 55 / 6%); color: #85858b; transition: background 160ms ease, box-shadow 160ms ease; }
.complaint-upload-picker:hover:not(.is-disabled) { background: #efedf8; box-shadow: 0 3px 12px rgb(25 30 55 / 10%); }
.complaint-upload-picker:focus-within { outline: 2px solid var(--info-active-blue); outline-offset: 3px; }
.complaint-upload-plus { font-size: 42px; font-weight: 300; line-height: 1; }
.complaint-upload-count { color: #72727c; font-size: 13px; line-height: 1; font-variant-numeric: tabular-nums; }
.complaint-page .complaint-upload-input { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; opacity: 0; cursor: pointer; }
.complaint-page .complaint-upload-input:disabled { cursor: not-allowed; }
.complaint-upload-picker.is-disabled { opacity: .55; }
.complaint-identity-guide summary { cursor: pointer; color: var(--info-active-blue); font-size: 13px; line-height: 1.7; }
.complaint-identity-guide img { display: block; width: 100%; max-width: 560px; height: auto; margin: 12px 0; border-radius: 10px; }
.complaint-identity-guide .complaint-hint + .complaint-hint { margin-top: 6px; }
@media (prefers-reduced-motion: reduce) { .complaint-upload-picker { transition: none; } }
