/* 前台样式补充
   原版样式之外新增的少量规则：弹层定位、分页、聊天悬浮窗、提示条 */

/* 搜索表单不参与盒模型，保持原有输入框布局 */
.dm-search-form {
    display: contents;
}

/* 城市与用户弹层：原版由组件库动态挂载，这里改为页头内绝对定位 */
.dm-city-popover,
.dm-user-popover {
    display: none;
    position: absolute;
    top: 60px;
    left: 0;
    z-index: 2000;
    background: #fff;
    border: 1px solid #e4e7ed;
    border-radius: 4px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .1);
    line-height: normal;
    font-size: 14px;
    color: #606266;
    padding: 6px 0;
    text-align: left;
}

.dm-city-popover {
    width: 700px;
    padding: 16px 20px;
}

.dm-city-popover.is-open,
.dm-user-popover.is-open {
    display: block;
}

.dm-city-popover .city .now-city,
.dm-city-popover .city .hot-city,
.dm-city-popover .city .others-city {
    display: flex;
    align-items: flex-start;
    margin-bottom: 10px;
}

.dm-city-popover .city .title-city {
    flex: none;
    width: 76px;
    color: #999;
    line-height: 28px;
}

.dm-city-popover .city .select-city {
    color: #ff2d51;
}

.dm-city-popover .city .list-city {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
}

.dm-city-popover .city .city-name {
    padding: 0 12px;
    height: 28px;
    line-height: 28px;
    cursor: pointer;
    border-radius: 2px;
    white-space: nowrap;
}

.dm-city-popover .city .city-name:hover,
.dm-city-popover .city .city-name.is-current {
    color: #ff2d51;
    background: #fff3f5;
}

.dm-city-popover .city .others-city .list-city {
    max-height: 190px;
    overflow-y: auto;
}

.dm-user-popover {
    width: 138px;
    top: 58px;
    left: auto;
    right: -14px;
    padding: 0;
    border-radius: 2px;
    border-color: #ececec;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .08);
}

/* 上方小三角：指向上面的登录入口 */
.dm-user-popover::before {
    content: "";
    position: absolute;
    top: -6px;
    right: 34px;
    width: 10px;
    height: 10px;
    background: #fff;
    border-left: 1px solid #ececec;
    border-top: 1px solid #ececec;
    transform: rotate(45deg);
}

.dm-user-popover .loginInfo {
    padding-left: 0;
    margin: 0;
    list-style: none;
}

.dm-user-popover .loginInfo li {
    height: 49px;
    line-height: 49px;
    padding-left: 22px;
    cursor: pointer;
    border-bottom: 1px solid #f2f2f2;
    white-space: nowrap;
}

.dm-user-popover .loginInfo li:last-child {
    border-bottom: 0;
}

.dm-user-popover .loginInfo li a {
    display: block;
    color: #2d2d2d;
    font-size: 16px;
    text-decoration: none;
}

.dm-user-popover .loginInfo li:hover {
    background: #fafafa;
}

.dm-user-popover .loginInfo li:hover a {
    color: #ff2d51;
}

/* 悬浮显示：鼠标移到登录入口或菜单上时保持展开 */
.app-header .header .rightHeader .box-left:hover .dm-user-popover,
.dm-user-popover:hover {
    display: block;
}

/* 分页条 */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 30px 0 50px;
}

.pager-btn {
    display: inline-block;
    min-width: 34px;
    height: 34px;
    line-height: 34px;
    padding: 0 10px;
    text-align: center;
    border: 1px solid #e4e7ed;
    border-radius: 2px;
    color: #606266;
    text-decoration: none;
    background: #fff;
}

.pager-btn:hover {
    border-color: #ff2d51;
    color: #ff2d51;
}

.pager-btn.is-active {
    background: #ff2d51;
    border-color: #ff2d51;
    color: #fff;
}

/* 提示条 */
.dm-flash {
    width: 1200px;
    margin: 12px auto 0;
    padding: 10px 16px;
    border-radius: 4px;
    font-size: 14px;
    background: #f0f9eb;
    color: #529b2e;
    border: 1px solid #e1f3d8;
}

.dm-flash.is-error {
    background: #fef0f0;
    color: #c45656;
    border-color: #fde2e2;
}

/* 服务端渲染下的轮播：只显示当前一张 */
.el-carousel__item {
    display: none;
}

.el-carousel__item.is-active {
    display: block;
}

/* 空状态 */
.dm-empty {
    width: 1200px;
    margin: 60px auto;
    text-align: center;
    color: #909399;
    font-size: 15px;
}

.dm-empty a {
    color: #ff2d51;
}

/* 客服聊天悬浮窗 */
.dm-chat {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 3000;
    font-size: 14px;
    font-family: inherit;
}

.dm-chat__toggle {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #ff2d51;
    color: #fff;
    border: none;
    cursor: pointer;
    box-shadow: 0 6px 16px rgba(255, 45, 81, .35);
    font-size: 13px;
    line-height: 1.2;
    position: relative;
}

.dm-chat__badge {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: #fff;
    color: #ff2d51;
    font-size: 12px;
    line-height: 18px;
    display: none;
}

.dm-chat__badge.is-show {
    display: block;
}

.dm-chat__panel {
    display: none;
    position: absolute;
    right: 0;
    bottom: 70px;
    width: 340px;
    height: 460px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, .16);
    overflow: hidden;
}

.dm-chat__panel.is-open {
    display: flex;
    flex-direction: column;
}

.dm-chat__head {
    flex: none;
    height: 48px;
    line-height: 48px;
    padding: 0 16px;
    background: #ff2d51;
    color: #fff;
    font-weight: 600;
}

.dm-chat__body {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
    background: #f7f8fa;
}

.dm-chat__msg {
    margin-bottom: 10px;
    display: flex;
}

.dm-chat__msg--user {
    justify-content: flex-end;
}

.dm-chat__bubble {
    max-width: 220px;
    padding: 8px 12px;
    border-radius: 6px;
    background: #fff;
    color: #2d2d2d;
    line-height: 1.6;
    word-break: break-word;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
}

.dm-chat__msg--user .dm-chat__bubble {
    background: #ff2d51;
    color: #fff;
}

.dm-chat__foot {
    flex: none;
    display: flex;
    border-top: 1px solid #ebeef5;
    background: #fff;
}

.dm-chat__input {
    flex: 1;
    border: none;
    outline: none;
    padding: 12px;
    font-size: 14px;
    font-family: inherit;
    resize: none;
    height: 44px;
    box-sizing: border-box;
}

.dm-chat__send {
    flex: none;
    width: 72px;
    border: none;
    background: #ff2d51;
    color: #fff;
    cursor: pointer;
    font-size: 14px;
}

.dm-chat__send:disabled {
    background: #f5a3b3;
    cursor: not-allowed;
}

/* 登录后昵称过长会把页头右侧挤到第二行：
   原版给昵称设了 48 像素上限，但行内元素吃不到宽度限制，这里补成行内块 */
.app-header .header .rightHeader .box-left .log {
    display: inline-block;
    max-width: 48px;
    vertical-align: middle;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.app-header .header .rightHeader {
    white-space: nowrap;
}

/* 官方标志与轮播大图的长宽比与占位尺寸略有差异，用等比方式呈现避免拉伸 */
.app-header .header .link img {
    object-fit: contain;
}

.app-container .carousel-lamp img {
    object-fit: cover;
}


/* 页头客服入口：图标与文字同色，跟随主题红 */
.app-header .header .rightHeader .box-right .dm-kefu {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: inherit;
    font-size: 16px;
    text-decoration: none;
    vertical-align: middle;
}

.app-header .header .rightHeader .box-right .dm-kefu__icon {
    width: 22px;
    height: 22px;
    flex: none;
    color: currentColor;
    vertical-align: middle;
}

.app-header .header .rightHeader .box-right .dm-kefu:hover {
    color: #ff2d51;
}

/* ---------------------------------------------------------------- 确认弹窗 */
/* 系统 confirm 的样式跟站内对不上，统一换成自己的 */
.dm-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.dm-modal__mask {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .45);
    opacity: 0;
    transition: opacity .18s cubic-bezier(.23, 1, .32, 1);
}

.dm-modal__panel {
    position: relative;
    width: 100%;
    max-width: 380px;
    overflow: hidden;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .18);
    opacity: 0;
    transform: scale(.96);
    transition: opacity .18s cubic-bezier(.23, 1, .32, 1),
                transform .18s cubic-bezier(.23, 1, .32, 1);
}

.dm-modal.is-show .dm-modal__mask {
    opacity: 1;
}

.dm-modal.is-show .dm-modal__panel {
    opacity: 1;
    transform: scale(1);
}

.dm-modal__body {
    padding: 26px 26px 22px;
}

.dm-modal__title {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    color: #1a1a1a;
}

.dm-modal__text {
    margin: 10px 0 0;
    color: #6b7280;
    font-size: 14px;
    line-height: 1.65;
}

.dm-modal__acts {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 0 26px 22px;
}

.dm-modal__acts button {
    height: 38px;
    padding: 0 22px;
    border-radius: 19px;
    font-size: 14px;
    cursor: pointer;
    transition: background-color .12s ease, border-color .12s ease;
}

.dm-modal__cancel {
    border: 1px solid #dcdfe6;
    background: #fff;
    color: #606266;
}

.dm-modal__cancel:hover {
    border-color: #c8ccd6;
    background: #f7f8fa;
}

.dm-modal__ok {
    border: 1px solid #ff2d51;
    background: #ff2d51;
    color: #fff;
    font-weight: 600;
}

.dm-modal__ok:hover {
    background: #ef2346;
    border-color: #ef2346;
}

.dm-modal__ok.is-danger {
    border-color: #e0334f;
    background: #e0334f;
}

.dm-modal__ok.is-danger:hover {
    background: #c92a43;
    border-color: #c92a43;
}

/* 城市弹层里的「获取地区」：点了重新按 IP 定位 */
.dm-geo-btn {
    flex: none;
    margin-left: 8px;
    height: 24px;
    padding: 0 10px;
    border: 1px solid #ffd0d9;
    border-radius: 12px;
    background: #fff5f7;
    color: #ff2d51;
    font-size: 12px;
    line-height: 22px;
    cursor: pointer;
    transition: background-color .12s ease;
}

.dm-geo-btn:hover {
    background: #ffe6ec;
}

.dm-geo-btn:disabled {
    color: #b6bac4;
    border-color: #e8eaef;
    background: #f7f8fa;
    cursor: not-allowed;
}

.dm-geo-tip {
    margin-left: 8px;
    color: #9aa0ac;
    font-size: 12px;
    line-height: 24px;
}

.dm-geo-tip.is-error {
    color: #e0334f;
}

/* ---------------------------------------------------------------- 我要卖：页头入口 */
.dm-sell-entry {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 32px;
    margin-right: 18px;
    padding: 0 14px;
    border-radius: 16px;
    background: #fff1f4;
    color: #ff2d51;
    font-size: 14px;
    font-weight: 600;
    transition: background-color .12s ease;
}

.dm-sell-entry:hover {
    background: #ffe3e9;
    color: #ff2d51;
}

.dm-sell-entry__icon {
    width: 17px;
    height: 17px;
}

/* ---------------------------------------------------------------- 我要卖：页内弹窗 */
.dm-sell-modal {
    position: fixed;
    inset: 0;
    z-index: 2100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 24px;
}

.dm-sell-modal[hidden] {
    display: none;
}

.dm-sell-modal__mask {
    position: absolute;
    inset: 0;
    background: rgba(20, 22, 28, .5);
    opacity: 0;
    transition: opacity .2s cubic-bezier(.23, 1, .32, 1);
}

.dm-sell-modal__panel {
    position: relative;
    width: 100%;
    max-width: 620px;
    max-height: calc(100vh - 64px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 24px 64px rgba(0, 0, 0, .22);
    opacity: 0;
    transform: scale(.97);
    transition: opacity .2s cubic-bezier(.23, 1, .32, 1),
                transform .2s cubic-bezier(.23, 1, .32, 1);
}

.dm-sell-modal.is-show .dm-sell-modal__mask {
    opacity: 1;
}

.dm-sell-modal.is-show .dm-sell-modal__panel {
    opacity: 1;
    transform: scale(1);
}

.dm-sell-modal__head {
    position: relative;
    flex: none;
    padding: 20px 24px 12px;
    border-bottom: 1px solid #f0f1f3;
}

.dm-sell-modal__head h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.dm-sell-modal__head p {
    margin: 6px 26px 0 0;
    color: #8a90a2;
    font-size: 12.5px;
    line-height: 1.6;
}

.dm-sell-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    color: #9aa0ac;
    cursor: pointer;
}

.dm-sell-modal__close:hover {
    background: #f5f6f8;
    color: #606266;
}

.dm-sell-modal__close svg {
    width: 18px;
    height: 18px;
}

.dm-sell-modal__body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 16px 24px 0;
}

.dm-sell-field {
    display: block;
    margin-bottom: 14px;
}

.dm-sell-field__label {
    display: block;
    margin-bottom: 6px;
    color: #8a90a2;
    font-size: 12px;
}

.dm-sell-field__label em {
    margin-left: 4px;
    color: #b0b5bf;
    font-style: normal;
}

.dm-sell-field__input {
    width: 100%;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #e4e7ee;
    border-radius: 8px;
    background: #fff;
    color: #1a1a1a;
    font: inherit;
    font-size: 14px;
    outline: none;
    transition: border-color .12s ease;
}

.dm-sell-field__input:focus {
    border-color: #ff2d51;
}

.dm-sell-row {
    display: flex;
    gap: 12px;
}

.dm-sell-row > .dm-sell-field {
    flex: 1;
    min-width: 0;
}

.dm-sell-row > .dm-sell-field--short {
    flex: 0 0 120px;
}

.dm-sell-price {
    display: flex;
    align-items: center;
    gap: 4px;
}

.dm-sell-price em {
    color: #ff2d51;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
}

.dm-sell-intro {
    height: auto;
    min-height: 76px;
    padding: 10px 12px;
    line-height: 1.6;
    resize: vertical;
}

/* 图片区 */
.dm-sell-pics {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px;
    border: 1px dashed #dfe3ea;
    border-radius: 10px;
    background: #fafbfc;
    transition: border-color .12s ease, background-color .12s ease;
}

.dm-sell-pics.is-drag {
    border-color: #ff2d51;
    background: #fff6f8;
}

/* 主图放大在左，其余小图排在右边 */
.dm-sell-pics__main {
    position: relative;
    width: 132px;
    height: 132px;
    border-radius: 8px;
    overflow: hidden;
    background: #eef0f4;
}

.dm-sell-pics__main[hidden] {
    display: none;
}

.dm-sell-pics__main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dm-sell-pics__badge {
    position: absolute;
    left: 6px;
    bottom: 6px;
    padding: 2px 9px;
    border-radius: 9px;
    background: rgba(20, 22, 28, .58);
    color: #fff;
    font-size: 11px;
    line-height: 16px;
}

.dm-sell-pics__grid {
    display: grid;
    grid-template-columns: repeat(2, 84px);
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.dm-sell-pics__grid > li {
    position: relative;
    width: 84px;
    height: 84px;
    border-radius: 8px;
    overflow: hidden;
    background: #eef0f4;
    cursor: pointer;
}

.dm-sell-pics__tip {
    margin: 8px 0 0;
    color: #b0b5bf;
    font-size: 12px;
}

.dm-sell-assure {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 0 0 14px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #f2fbf6;
    color: #2c7a58;
    font-size: 12.5px;
    line-height: 1.55;
}

.dm-sell-assure svg {
    flex: none;
    width: 15px;
    height: 15px;
    margin-top: 1px;
}

.dm-sell-pics__grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dm-sell-pics__del {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(20, 22, 28, .55);
    color: #fff;
    font-size: 12px;
    line-height: 20px;
    text-align: center;
    cursor: pointer;
}

/* 没图时占满主图那块 */
/* 空态铺满整条虚线框，比一个小方块更像「待上传」；写在基础规则前，所以多加一层选择器提权 */
.dm-sell-pics .dm-sell-pics__add.is-empty {
    width: 100%;
    height: 132px;
    margin: 0;
}

.dm-sell-pics__add {
    width: 84px;
    height: 84px;
    border: 1px dashed #d6dae2;
    border-radius: 8px;
    background: #fff;
    color: #9aa0ac;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-size: 11.5px;
    cursor: pointer;
    transition: border-color .12s ease, color .12s ease;
}

.dm-sell-pics__add:hover {
    border-color: #ff2d51;
    color: #ff2d51;
}

.dm-sell-pics__add svg {
    width: 20px;
    height: 20px;
}

.dm-sell-pics__add.is-hidden {
    display: none;
}

.dm-sell-msg {
    margin: 0 0 12px;
    padding: 9px 12px;
    border-radius: 8px;
    background: #fff1f1;
    color: #c8352a;
    font-size: 13px;
}

.dm-sell-msg.is-ok {
    background: #eefaf3;
    color: #12855a;
}

/* 底部发布条吸在弹窗底部，表单再长也不用滚到最下面才点得到 */
.dm-sell-modal__foot {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 -24px;
    padding: 14px 24px 20px;
    background: #fff;
    border-top: 1px solid #f0f1f3;
}

.dm-sell-modal__foot > span {
    flex: 1;
    color: #9aa0ac;
    font-size: 12px;
    line-height: 1.5;
}

.dm-sell-submit {
    flex: none;
    height: 42px;
    padding: 0 34px;
    border: 0;
    border-radius: 21px;
    background: linear-gradient(90deg, #ff2d51, #ff6a3d);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.dm-sell-submit:disabled {
    background: #f5a3b3;
    cursor: not-allowed;
}

/* 提交成功后的整块替换 */
.dm-sell-done[hidden] {
    display: none;
}

.dm-sell-done {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 40px 24px 34px;
    text-align: center;
}

.dm-sell-done svg {
    width: 54px;
    height: 54px;
    color: #12a06a;
}

.dm-sell-done b {
    font-size: 16px;
}

.dm-sell-done span {
    color: #8a90a2;
    font-size: 13px;
}

.dm-sell-done__acts {
    display: flex;
    gap: 12px;
    margin-top: 10px;
}

.dm-sell-done__ghost,
.dm-sell-done__ok {
    height: 38px;
    padding: 0 20px;
    border-radius: 19px;
    font-size: 14px;
    line-height: 38px;
}

.dm-sell-done__ghost {
    border: 1px solid #e4e7ee;
    color: #606266;
}

.dm-sell-done__ok {
    background: #ff2d51;
    color: #fff;
    font-weight: 600;
}

.dm-sell-done__ok:hover {
    background: #ef2346;
    color: #fff;
}

/* ---------------------------------------------------------------- 售卖管理 */
.dm-page-head__act {
    position: absolute;
    top: 0;
    right: 0;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 34px;
    padding: 0 18px;
    border-radius: 17px;
    background: #ff2d51;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
}

.dm-page-head__act:hover {
    background: #ef2346;
    color: #fff;
}

.dm-page-head__act svg {
    width: 15px;
    height: 15px;
}

.dm-sells__stats {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1px;
    margin-bottom: 16px;
    border-radius: 10px;
    overflow: hidden;
    background: #eef0f4;
}

.dm-sells__stat {
    padding: 16px 12px;
    background: #fff;
    text-align: center;
}

.dm-sells__stat b {
    display: block;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -.4px;
}

.dm-sells__stat span {
    display: block;
    margin-top: 3px;
    color: #9aa0ac;
    font-size: 12px;
}

.dm-sells__stat--income b {
    color: #ff2d51;
    font-size: 18px;
}

.dm-sells {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dm-sell {
    display: flex;
    gap: 14px;
    padding: 14px;
    border-radius: 10px;
    background: #fff;
}

.dm-sell__pic {
    position: relative;
    flex: none;
    width: 104px;
    height: 104px;
    border-radius: 8px;
    overflow: hidden;
    background: #f2f3f5;
}

.dm-sell__pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dm-sell__stamp {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.dm-sell__stamp svg {
    width: 92px;
    height: 92px;
    color: #e0334f;
    opacity: .82;
    transform: rotate(-16deg);
}

.dm-sell__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dm-sell__top {
    display: flex;
    align-items: baseline;
    gap: 12px;
}

.dm-sell__title {
    flex: 1;
    min-width: 0;
    font-size: 15px;
    font-weight: 600;
    color: #1a1a1a;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.dm-sell__title:hover {
    color: #ff2d51;
}

.dm-sell__price {
    flex: none;
    color: #ff2d51;
    font-size: 16px;
    font-weight: 700;
}

.dm-sell__price small {
    color: #9aa0ac;
    font-size: 11px;
    font-weight: 400;
}

.dm-sell__meta {
    margin: 0;
    color: #8a90a2;
    font-size: 12.5px;
}

.dm-sell__foot {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
}

.dm-sell__chip {
    padding: 3px 10px;
    border-radius: 11px;
    background: #f2f3f5;
    color: #6b7280;
    font-size: 12px;
}

.dm-sell__chip.is-pending { background: #fff7e8; color: #b5760a; }
.dm-sell__chip.is-on      { background: #eafaf1; color: #12855a; }
.dm-sell__chip.is-locked  { background: #fff1f4; color: #e0334f; }
.dm-sell__chip.is-sold    { background: #eef2f8; color: #55627a; }
.dm-sell__chip.is-off     { background: #f2f3f5; color: #9aa0ac; }

.dm-sell__note {
    color: #9aa0ac;
    font-size: 12.5px;
}

.dm-sell__act {
    height: 28px;
    padding: 0 14px;
    border: 1px solid #e4e7ee;
    border-radius: 14px;
    background: #fff;
    color: #606266;
    font-size: 12.5px;
    cursor: pointer;
}

.dm-sell__act:hover {
    border-color: #c8ccd6;
    background: #f7f8fa;
}

/* ---------------------------------------------------------------- 用户发布详情 */
.dm-sd {
    width: 1200px;
    margin: 0 auto;
    padding: 24px 0 60px;
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.dm-sd__main {
    flex: 1;
    min-width: 0;
    display: flex;
    gap: 20px;
    padding: 20px;
    border-radius: 10px;
    background: #fff;
}

.dm-sd__gallery {
    flex: none;
    width: 380px;
}

.dm-sd__gallery-main {
    width: 380px;
    height: 285px;
    border-radius: 8px;
    overflow: hidden;
    background: #f2f3f5;
}

.dm-sd__gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dm-sd__thumbs {
    display: flex;
    gap: 8px;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
    flex-wrap: wrap;
}

.dm-sd__thumbs img {
    width: 56px;
    height: 56px;
    border-radius: 6px;
    object-fit: cover;
    cursor: pointer;
    border: 2px solid transparent;
}

.dm-sd__thumbs img.is-active {
    border-color: #ff2d51;
}

.dm-sd__info {
    flex: 1;
    min-width: 0;
}

.dm-sd__price {
    color: #ff2d51;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -.6px;
}

.dm-sd__price small {
    margin-left: 6px;
    color: #9aa0ac;
    font-size: 13px;
    font-weight: 400;
}

.dm-sd__title {
    margin: 10px 0 12px;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.45;
}

.dm-sd__rows {
    margin: 0 0 14px;
}

.dm-sd__row {
    display: flex;
    gap: 12px;
    padding: 7px 0;
    font-size: 13.5px;
}

.dm-sd__row span {
    flex: none;
    width: 64px;
    color: #9aa0ac;
}

.dm-sd__row b {
    font-weight: 500;
    color: #3d4350;
}

.dm-sd__seller {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #f7f8fa;
    color: #8a90a2;
    font-size: 13px;
}

.dm-sd__seller b {
    color: #1a1a1a;
}

.dm-sd__buy {
    height: 46px;
    padding: 0 44px;
    border: 0;
    border-radius: 23px;
    background: linear-gradient(90deg, #ff2d51, #ff6a3d);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

.dm-sd__buy:disabled,
.dm-sd__buy.is-off {
    background: #d0d4dc;
    cursor: not-allowed;
}

.dm-sd__aside {
    flex: none;
    width: 280px;
    padding: 20px;
    border-radius: 10px;
    background: #fff;
}

.dm-sd__aside h3 {
    margin: 0 0 10px;
    font-size: 15px;
}

.dm-sd__intro {
    margin: 16px 0 0;
    color: #4a4f5c;
    font-size: 14px;
    line-height: 1.8;
    white-space: pre-wrap;
    word-break: break-word;
}

.dm-sd__empty {
    padding: 80px 0;
    text-align: center;
    color: #9aa0ac;
}

/* ---------------------------------------------------------------- 用户购票收银台 */
.dm-pay-page {
    width: 1200px;
    margin: 0 auto;
    padding: 28px 0 60px;
}

.dm-pay-box {
    max-width: 620px;
    margin: 0 auto;
    padding: 24px;
    border-radius: 10px;
    background: #fff;
}

.dm-pay-box__amount {
    padding: 22px;
    border-radius: 10px;
    background: linear-gradient(135deg, #ff2d51, #ff6a3d);
    color: #fff;
    text-align: center;
}

.dm-pay-box__amount.is-ok {
    background: linear-gradient(135deg, #12a06a, #3cc78d);
}

.dm-pay-box__amount span {
    display: block;
    font-size: 13px;
    opacity: .9;
}

.dm-pay-box__amount em {
    font-style: normal;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -.8px;
}

.dm-pay-box__ticket {
    display: flex;
    gap: 14px;
    margin-top: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid #f0f1f3;
}

.dm-pay-box__ticket img {
    flex: none;
    width: 92px;
    height: 92px;
    border-radius: 8px;
    object-fit: cover;
}

.dm-pay-box__ticket h2 {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
}

.dm-pay-box__ticket p {
    margin: 3px 0 0;
    color: #8a90a2;
    font-size: 12.5px;
}

.dm-pay-box__methods {
    margin-top: 16px;
}

.dm-pay-box__methods h3 {
    margin: 0 0 10px;
    font-size: 14px;
}

.dm-pay-box__method {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 12px 14px;
    border: 1px solid #eef0f4;
    border-radius: 8px;
    font-size: 13.5px;
}

.dm-pay-box__method.is-active {
    border-color: #ffd0d9;
    background: #fff8fa;
}

.dm-pay-box__method span {
    color: #8a90a2;
}

.dm-pay-box__method img {
    width: 120px;
    height: 120px;
    margin-top: 6px;
    border-radius: 6px;
    object-fit: cover;
}

.dm-pay-box__acts {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}

.dm-pay-box__acts form {
    margin: 0;
}

.dm-pay-box__ok,
.dm-pay-box__cancel {
    height: 44px;
    padding: 0 32px;
    border-radius: 22px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.dm-pay-box__ok {
    border: 0;
    background: linear-gradient(90deg, #ff2d51, #ff6a3d);
    color: #fff;
}

.dm-pay-box__cancel {
    border: 1px solid #e4e7ee;
    background: #fff;
    color: #606266;
    font-weight: 400;
}

.dm-pay-box__done {
    margin-top: 18px;
    padding: 24px 0;
    text-align: center;
}

.dm-pay-box__done b {
    font-size: 16px;
}

.dm-pay-box__done p {
    margin: 8px 0 12px;
    color: #8a90a2;
    font-size: 13px;
}

.dm-pay-box__done a {
    color: #ff2d51;
    font-size: 14px;
}

/* ---------------------------------------------------------------- 首页用户出让 */
.dm-usells {
    width: 1200px;
    margin: 24px auto 0;
    padding: 18px 20px 20px;
    border-radius: 10px;
    background: #fff;
}

.dm-usells__head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 14px;
}

.dm-usells__head h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.dm-usells__head span {
    color: #9aa0ac;
    font-size: 12.5px;
}

.dm-usells__list {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.dm-usell {
    display: flex;
    flex-direction: column;
    gap: 5px;
    height: 100%;
}

.dm-usell__pic {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 7px;
    overflow: hidden;
    background: #f2f3f5;
}

.dm-usell__pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s cubic-bezier(.23, 1, .32, 1);
}

/* 没封面时用票券轮廓占位，和真图同高 */
.dm-usell__pic.is-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f6f7f9, #eef0f4);
}

.dm-usell__ph {
    width: 34px;
    height: 34px;
    color: #cfd4dc;
}

.dm-usell:hover .dm-usell__pic img {
    transform: scale(1.04);
}

.dm-usell__title {
    min-height: 38px;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: #1a1a1a;
}

.dm-usell__meta {
    color: #9aa0ac;
    font-size: 12px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.dm-usell__price {
    color: #ff2d51;
    font-size: 15px;
    font-weight: 700;
}

.dm-usell__price small {
    color: #9aa0ac;
    font-size: 11px;
    font-weight: 400;
}

/* ---------------------------------------------------------------- 页头重排 */
/* 原版是 float 布局，加了「我要卖」之后右侧整块被挤到第二行；
   这里改成不换行的 flex，并把搜索框放在剩下空间的中间。
   原样式带 [data-v-...] 属性选择器，权重更高，所以这里用 #app 提权 */
#app .app-header .header {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    height: 72px;
}

#app .app-header .header .link {
    float: none;
    flex: none;
    margin: 0;
}

#app .app-header .header .localHeader {
    float: none;
    flex: none;
    display: flex;
    align-items: center;
    gap: 4px;
    width: auto;
    height: auto;
    margin-left: 34px;
    line-height: 1;
}

/* 城市名与定位图标都要按中线对齐，否则会比「首页 / 分类」低几像素 */
#app .app-header .header .localHeader .city-location {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    font-size: 16px;
}

#app .app-header .header .localHeader .city-location i {
    display: inline-flex;
    align-items: center;
    margin-left: 2px;
}

#app .app-header .header .recommendHeader {
    float: none;
    flex: none;
    display: flex;
    align-items: center;
    max-width: none;
    height: auto;
    margin: 0 0 0 16px;   /* 与「分类」之间的 16px 保持一致，三个入口的间距看起来才齐 */
    line-height: 1;
    overflow: visible;
}

#app .app-header .header .recommendHeader .routeHome,
#app .app-header .header .recommendHeader .routeType {
    display: inline-flex;
    align-items: center;
    margin-right: 16px;
    line-height: 1;
    font-size: 16px;
}

/* 搜索框固定居中：脱离文档流放在头部正中，两侧内容各自靠边，互不挤压 */
#app .app-header .header .searchHeader {
    position: absolute;
    top: 13px;
    left: 50%;
    transform: translateX(-50%);
    width: 435px;
    height: 46px;
    margin: 0;
}

#app .app-header .header .searchHeader .input-with-search {
    width: calc(100% - 82px);
}

#app .app-header .header .rightHeader {
    float: none;
    flex: none;
    display: flex;
    align-items: center;
    height: auto;
    margin-left: auto;
    min-width: 0;
    line-height: 1;
    white-space: nowrap;
}

#app .app-header .header .rightHeader .box-left,
#app .app-header .header .rightHeader .box-right {
    display: flex;
    align-items: center;
    height: auto;
    line-height: 1;
    margin-left: 18px;
}

#app .app-header .header .rightHeader .box-left img {
    width: 24px;
    height: 24px;
}

#app .app-header .header .rightHeader .box-left .log {
    max-width: 64px;
}

#app .app-header .header .rightHeader .box-right .dm-kefu {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/* 空态里那颗「去发布一张」按钮；多加一层 .dm-empty 才压得住 .dm-empty a 的链接色 */
.dm-empty .dm-empty__act {
    display: inline-flex;
    align-items: center;
    height: 38px;
    margin-top: 8px;
    padding: 0 24px;
    border-radius: 19px;
    background: linear-gradient(90deg, #ff2d51, #ff6a3d);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
}

.dm-empty .dm-empty__act:hover {
    background: #ef2346;
    color: #fff;
}

/* ---------------------------------------------------------------- 编辑发布（电脑页） */
.dm-sell-page {
    width: 1200px;
    margin: 0 auto;
    padding: 24px 0 60px;
}

.dm-sell-page__box {
    max-width: 720px;
    margin: 0 auto;
    padding: 22px 24px 24px;
    border-radius: 10px;
    background: #fff;
}

.dm-sell-page__head h1 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.dm-sell-page__head p {
    margin: 6px 0 16px;
    color: #8a90a2;
    font-size: 13px;
}

.dm-sell-page__reject {
    margin: 0 0 14px;
    padding: 10px 12px;
    border-radius: 8px;
    background: #fff3f3;
    color: #c8352a;
    font-size: 13px;
}

.dm-sell-page__pics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 10px;
    padding: 0;
    list-style: none;
}

.dm-sell-page__pics li {
    position: relative;
    width: 84px;
    height: 84px;
    border-radius: 8px;
    overflow: hidden;
    background: #eef0f4;
}

.dm-sell-page__pics img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dm-sell-page__file {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 44px;
    border: 1px dashed #dfe3ea;
    border-radius: 8px;
    background: #fafbfc;
    color: #8a90a2;
    font-size: 13px;
    cursor: pointer;
}

.dm-sell-page__file:hover {
    border-color: #ff2d51;
    color: #ff2d51;
}

.dm-sell-page__file input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.dm-sell-page__foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 6px;
    padding-top: 16px;
    border-top: 1px solid #f0f1f3;
}

.dm-sell-page__back {
    color: #8a90a2;
    font-size: 13.5px;
}

.dm-sell-page__back:hover {
    color: #ff2d51;
}

/* ---------------------------------------------------------------- 售卖管理：与后台「用户发布」同款表格 */
.dm-sells__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}

.dm-sells__tab {
    padding: 7px 16px;
    border-radius: 16px;
    background: #f4f5f7;
    color: #4a4f5c;
    font-size: 13.5px;
    line-height: 1.4;
}

.dm-sells__tab:hover {
    background: #fdeef1;
    color: #ff2d51;
}

.dm-sells__tab.is-active {
    background: #fff1f4;
    color: #ff2d51;
    font-weight: 600;
}

.dm-sells__table-wrap {
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
}

.dm-sells__table {
    width: 100%;
    border-collapse: collapse;
}

.dm-sells__table th {
    padding: 12px 14px;
    background: #fafbfc;
    color: #8a90a2;
    font-size: 12.5px;
    font-weight: 500;
    text-align: left;
    white-space: nowrap;
}

.dm-sells__table td {
    padding: 14px;
    border-top: 1px solid #f2f3f5;
    vertical-align: middle;
    font-size: 13.5px;
}

.dm-sells__table tbody tr:hover {
    background: #fcfcfd;
}

.dm-sells__pic {
    position: relative;
    width: 60px;
    height: 60px;
    border-radius: 8px;
    overflow: hidden;
    background: #eef0f4;
}

.dm-sells__pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.dm-sells__pic .dm-sell__stamp svg {
    width: 56px;
    height: 56px;
}

.dm-sells__title {
    display: block;
    color: #1d2129;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}

.dm-sells__title:hover {
    color: #ff2d51;
}

.dm-sells__sub {
    margin-top: 4px;
    color: #9aa0ac;
    font-size: 12.5px;
}

.dm-sells__note {
    margin-top: 4px;
    color: #c07a16;
    font-size: 12.5px;
}

.dm-sells__price {
    color: #ff2d51;
    font-size: 15px;
    font-weight: 700;
}

.dm-sells__price small {
    color: #9aa0ac;
    font-size: 12px;
    font-weight: 400;
}

.dm-sells__table td:last-child {
    white-space: nowrap;
}

.dm-sells__btn {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 12px;
    margin-right: 6px;
    border: 1px solid #e3e6ec;
    border-radius: 6px;
    background: #fff;
    color: #4a4f5c;
    font-size: 13px;
    cursor: pointer;
}

.dm-sells__btn:hover {
    border-color: #ff2d51;
    color: #ff2d51;
}

.dm-sells__btn--primary {
    border-color: #ffd3dc;
    background: #fff1f4;
    color: #ff2d51;
}

.dm-sells__pager {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
    color: #8a90a2;
    font-size: 13px;
}

/* ---------------------------------------------------------------- 用户发布详情：沿用节目详情版式 */
.dm-sell-detail__qty {
    display: inline-flex;
    align-items: center;
    height: 34px;
    padding: 0 14px;
    border: 1px solid #e3e6ec;
    border-radius: 4px;
    color: #1d2129;
    font-size: 14px;
}

.dm-sell-detail__buy {
    width: 200px;
    height: 46px;
    border: 0;
    border-radius: 4px;
    background: linear-gradient(90deg, #ff2d51, #ff6a3d);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

.dm-sell-detail__buy:hover {
    background: #ef2346;
}

.dm-sell-detail__tip {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 14px;
    border-radius: 4px;
    background: #f6f7f9;
    color: #6b7280;
    font-size: 13px;
    text-align: center;
}

.dm-sell-detail__tip b {
    color: #1d2129;
    font-size: 14px;
}

.dm-sell-detail__tip a {
    color: #ff2d51;
}

.dm-sell-detail__note {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 0;
    border-bottom: 1px dashed #eceef2;
    font-size: 13px;
    line-height: 1.7;
    color: #6b7280;
}

.dm-sell-detail__note:last-child {
    border-bottom: 0;
}

.dm-sell-detail__note b {
    color: #1d2129;
    font-size: 13.5px;
}

.dm-sell-detail__intro {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed #eceef2;
}

/* ---------------------------------------------------------------- 用户发布详情：行距与右侧说明 */
.dm-sell-detail__gap {
    margin-top: 22px;      /* 城市与数量两行别贴在一起 */
}

.dm-sell-detail__note {
    padding: 12px 14px;
    border-radius: 8px;
    background: #fafbfc;
    border: 1px solid #eef0f4;
    margin-bottom: 12px;
}

/* 文本框右下角的字数统计 */
.dm-sell-field.has-counter {
    position: relative;
}

.field-counter {
    position: absolute;
    right: 18px;
    bottom: 8px;
    color: #b0b5bf;
    font-size: 11px;
    line-height: 1;
    pointer-events: none;
}

.field-counter.is-over {
    color: #ff2d51;
}

/* 项目详情里的其余票图 */
.dm-sell-detail__gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-top: 18px;
}

.dm-sell-detail__gallery img {
    width: 100%;
    height: auto;
    max-height: 520px;
    object-fit: contain;
    display: block;
    border-radius: 8px;
    background: #f7f8fa;
}

/* 只有一张时占满整行 */
.dm-sell-detail__gallery img:only-child {
    grid-column: 1 / -1;
}

/* ---------------------------------------------------------------- 个人信息页的用户公告 */
.dm-user-notice {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: linear-gradient(120deg, #fff1f4 0%, #fff7f2 60%, #fff9f4 100%);
    color: #a8324a;
    font-size: 13px;
    line-height: 1.7;
}

.dm-user-notice svg {
    flex: none;
    width: 15px;
    height: 15px;
    margin-top: 3px;
    color: #ff2d51;
}

/* 售卖管理：名额提示 */
.dm-page-head__quota {
    margin: 6px 0 0;
    color: #d2374f;
    font-size: 13px;
}

/* 钱包管理：余额卡、提现表单、记录表 */
.dm-wallet {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: 16px;
    padding: 22px 24px;
    border-radius: 12px;
    background: linear-gradient(120deg, #ff2d51, #ff5a3c);
    color: #fff;
}

.dm-wallet__main {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dm-wallet__label {
    font-size: 13px;
    opacity: .86;
}

.dm-wallet__amount {
    font-size: 34px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .5px;
}

.dm-wallet__meta {
    font-size: 12.5px;
    opacity: .9;
}

.dm-wallet__off {
    margin-left: auto;
    padding: 10px 14px;
    border-radius: 10px;
    background: rgba(0, 0, 0, .22);
    font-size: 12.5px;
}

.dm-wallet__off b {
    display: block;
    margin-bottom: 2px;
    font-size: 13px;
}

.dm-wallet__issues {
    margin: 0;
    padding: 12px 16px 12px 32px;
    border-radius: 10px;
    background: #fff5f6;
    color: #c8352a;
    font-size: 13px;
    line-height: 1.8;
}

.dm-wallet__goauth {
    margin: 10px 0 0;
    font-size: 13px;
    color: #8a90a2;
}

.dm-wallet__goauth a {
    color: #ff2d51;
}

.dm-wallet__form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dm-wallet__inputwrap {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 220px;
}

.dm-wallet__inputwrap i {
    font-style: normal;
    color: #8a90a2;
}

.dm-wallet__actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.dm-wallet__fee {
    color: #9aa0ac;
    font-size: 12.5px;
}

.dm-empty__text {
    margin: 0;
    padding: 24px 0;
    color: #9aa0ac;
    font-size: 13px;
    text-align: center;
}

.dm-wstate {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 12px;
    line-height: 18px;
}

.dm-wstate.is-pass { background: #e9f7ee; color: #12855a; }
.dm-wstate.is-reject { background: #f2f3f5; color: #8a90a2; }
.dm-wstate.is-wait { background: #fff4e5; color: #c07a16; }

.dm-sells__table td.is-plus { color: #12855a; }
.dm-sells__table td.is-minus { color: #c8352a; }

/* 钱包页：提现状态 / 冻结状态（只在发生过时出现） */
.dm-wallet-status {
    margin: 0 0 14px;
    padding: 4px 16px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #f0f2f5;
}

.dm-wallet-status__row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid #f7f8fa;
}

.dm-wallet-status__row:last-child {
    border-bottom: 0;
}

.dm-wallet-status__row span {
    flex: none;
    color: #8a90a2;
    font-size: 13px;
}

.dm-wallet-status__row b {
    flex: 1;
    min-width: 0;
    text-align: right;
    font-size: 13.5px;
    font-weight: 500;
}

.dm-wallet-status__row b i {
    margin-left: 8px;
    color: #b0b5bf;
    font-style: normal;
    font-size: 12px;
}

.dm-wallet-status__row b.is-pass { color: #12855a; }
.dm-wallet-status__row b.is-wait { color: #c07a16; }
.dm-wallet-status__row b.is-reject { color: #c8352a; }

/* 提现被挡住时：输入与按钮置灰，但表单还在，用户看得到要补什么 */
.dm-wallet__form .dm-input:disabled,
.dm-wallet__form .dm-btn:disabled {
    opacity: .55;
    cursor: not-allowed;
}

/* 钱包充值：收款方式单选、待付款卡片 */
.dm-recharge-methods {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.dm-recharge-method {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border: 1px solid #e8eaef;
    border-radius: 10px;
    cursor: pointer;
}

.dm-recharge-method:has(input:checked) {
    border-color: #ff2d51;
    background: #fff5f6;
}

.dm-recharge-method input {
    accent-color: #ff2d51;
}

.dm-recharge-method__body {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.dm-recharge-method__body b {
    font-size: 13.5px;
    font-weight: 500;
}

.dm-recharge-method__body i {
    color: #8a90a2;
    font-size: 11.5px;
    font-style: normal;
}

.dm-recharge-pending {
    margin: 0 0 14px;
    padding: 14px 16px;
    border-radius: 10px;
    background: #fff8f4;
    border: 1px solid #ffe3d6;
}

.dm-recharge-pending__head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 8px;
}

.dm-recharge-pending__head b {
    font-size: 15px;
    color: #d2374f;
}

.dm-recharge-pending__head span {
    color: #8a90a2;
    font-size: 12.5px;
}

.dm-recharge-pending__qr {
    width: 180px;
    height: 180px;
    object-fit: contain;
    border-radius: 8px;
    background: #fff;
}

.dm-recharge-pending__account,
.dm-recharge-pending__tip {
    margin: 6px 0 0;
    color: #4a4f5c;
    font-size: 13px;
}

.dm-recharge-pending__account code {
    font-family: ui-monospace, Menlo, Consolas, monospace;
}

.dm-recharge-pending form {
    margin-top: 12px;
}

/* 钱包：余额卡右侧的充值 / 提现按钮 */
.dm-wallet__btns {
    margin-left: auto;
    display: flex;
    gap: 10px;
}

.dm-wallet__act {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 40px;
    padding: 0 20px;
    border: 0;
    border-radius: 20px;
    background: #fff;
    color: #e0334f;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: transform .12s ease, background-color .12s ease;
}

.dm-wallet__act svg {
    width: 16px;
    height: 16px;
}

.dm-wallet__act:hover {
    transform: translateY(-1px);
}

.dm-wallet__act.is-ghost {
    background: rgba(255, 255, 255, .18);
    color: #fff;
}

.dm-wallet__act.is-ghost:hover {
    background: rgba(255, 255, 255, .28);
}

/* 钱包弹窗：比确认框宽一点，里面放表单 */
.dm-walletmodal {
    max-width: 460px !important;
}

.dm-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px 12px;
}

.dm-modal__head h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
}

.dm-modal__close {
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: none;
    color: #9aa0ac;
    cursor: pointer;
}

.dm-modal__close svg {
    width: 16px;
    height: 16px;
}

.dm-modal__close:hover {
    background: #f4f5f8;
}

.dm-modal__body {
    padding: 4px 24px 22px;
}

.dm-modal__empty {
    margin: 0;
    padding: 24px;
    color: #9aa0ac;
    font-size: 13.5px;
    text-align: center;
}

.dm-modal__actions {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 6px;
}

/* 充值付款页 */
.dm-paycard {
    max-width: 520px;
    padding: 24px 26px;
}

.dm-paycard__amount {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: 18px;
    border-bottom: 1px solid #f2f3f5;
}

.dm-paycard__amount span {
    color: #8a90a2;
    font-size: 12.5px;
}

.dm-paycard__amount b {
    font-size: 30px;
    line-height: 1.2;
    color: #e0334f;
}

.dm-paycard__amount em {
    color: #8a90a2;
    font-size: 12.5px;
    font-style: normal;
}

.dm-paycard__method {
    padding: 18px 0 4px;
}

.dm-paycard__qr {
    display: block;
    width: 190px;
    height: 190px;
    margin: 0 0 12px;
    object-fit: contain;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #f0f2f5;
}

.dm-paycard__account,
.dm-paycard__tip {
    margin: 0 0 8px;
    color: #2b3040;
    font-size: 14px;
}

.dm-paycard__account code {
    font-family: ui-monospace, Menlo, Consolas, monospace;
    color: #e0334f;
}

.dm-paycard__note {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 8px 0 0;
    padding: 8px 10px;
    border-radius: 8px;
    background: #f7f9f8;
    color: #6b7a74;
    font-size: 12.5px;
    line-height: 1.6;
}

.dm-paycard__note svg {
    flex: none;
    width: 15px;
    height: 15px;
    margin-top: 1px;
    color: #2ba471;
}

.dm-paycard__acts {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
}

.dm-paycard__done {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 26px 0 6px;
    color: #12855a;
}

.dm-paycard__done svg {
    width: 42px;
    height: 42px;
}

.dm-paycard__done b {
    font-size: 17px;
}

.dm-paycard__done span {
    color: #9aa0ac;
    font-size: 12.5px;
}

/* 钱包弹窗默认隐藏：display:flex 会盖过 hidden，必须显式写一条 */
.dm-modal[hidden] {
    display: none;
}

/* 弹窗底部按钮：文字不折行，说明可以折 */
.dm-modal__actions .dm-btn {
    flex: none;
    white-space: nowrap;
}

/* 电脑钱包卡：充值 / 提现挪到右下角 */
.dm-wallet {
    position: relative;
}

.dm-wallet__btns {
    position: absolute;
    right: 24px;
    bottom: 18px;
    margin-left: 0;
}

.dm-wallet__act {
    height: 34px;
    padding: 0 16px;
    font-size: 13px;
}

/* 弹窗里的说明文字单独一行，别把按钮挤窄 */
.dm-modal__actions + .dm-wallet__note {
    margin-top: 10px;
}

/* 提现收款账号：实名信息只读展示 */
.dm-wallet__account {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 11px 14px;
    border-radius: 8px;
    background: #f7f8fa;
    font-size: 13.5px;
    color: #2b3040;
}

.dm-wallet__account b {
    font-weight: 600;
}

.dm-wallet__account b.is-muted {
    color: #9aa0ac;
    font-weight: 400;
}

.dm-wallet__account span {
    color: #6b7280;
}

.dm-wallet__acctip {
    margin-top: 6px;
    color: #9aa0ac;
    font-size: 12px;
}

.dm-wallet__acctip a {
    color: #ff2d51;
}

/* 钱包弹窗里的字段：标签在上、控件在下，不再套账号页的左右两列 */
.dm-modal__field {
    margin-bottom: 16px;
}

.dm-modal__label {
    display: block;
    margin-bottom: 6px;
    color: #8a90a2;
    font-size: 12.5px;
}

.dm-wallet__inputwrap--wide {
    width: 100%;
}

/* 钱包冻结印章：盖在提现弹窗右侧，当背景水印，不挡操作 */
.dm-stamp {
    position: absolute;
    right: 10px;
    top: 92px;
    width: 186px;
    height: 186px;
    color: #d2374f;
    opacity: .18;
    transform: rotate(-8deg);
    pointer-events: none;
    user-select: none;
    /* 盖在最上层，整枚印章都要看得见 */
    z-index: 3;
}

.dm-walletmodal .dm-modal__body {
    position: relative;
}

.dm-walletmodal .dm-modal__body > *:not(.dm-stamp) {
    position: relative;
    z-index: 1;
}

/* 钱包表单的行内错误：替代浏览器原生校验气泡 */
.dm-form-err {
    display: block;
    margin-top: 6px;
    color: #d2374f;
    font-size: 12.5px;
    font-style: normal;
    line-height: 1.5;
}

/* 充值付款页：待审核 / 已拒绝的配色 */
.dm-paycard__done.is-wait { color: #c07a16; }
.dm-paycard__done.is-reject { color: #c8352a; }

/* 充值弹窗：按钮居中，说明文字小一号 */
.dm-modal__actions--center {
    justify-content: center;
}

.dm-wallet__note {
    margin: 8px 0 0;
    color: #9aa0ac;
    font-size: 12px;
    line-height: 1.6;
}

.dm-wallet__note--center {
    text-align: center;
}

/* ---------------- 充值弹窗 ---------------- */
.dm-rcg {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 4px 26px 26px;
}

.dm-rcg__block {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dm-rcg__caption {
    color: #9aa0ac;
    font-size: 12px;
    letter-spacing: .06em;
}

/* 金额：边框收紧、数字居中放大，去掉浏览器上下箭头 */
.dm-rcg__amount {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 66px;
    padding: 0 18px;
    border: 1px solid #e8eaef;
    border-radius: 12px;
    background: #fff;
    transition: border-color .16s, box-shadow .16s;
}

.dm-rcg__amount:focus-within {
    border-color: #ff7d94;
    box-shadow: 0 0 0 3px rgba(255, 45, 81, .10);
}

.dm-rcg__cur {
    color: #4b5563;
    font-size: 20px;
    font-weight: 500;
}

.dm-rcg__input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #1d2129;
    font-size: 34px;
    font-weight: 600;
    letter-spacing: -.01em;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.dm-rcg__input::placeholder {
    color: #d5d8e0;
    font-weight: 500;
}

.dm-rcg__input::-webkit-outer-spin-button,
.dm-rcg__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.dm-rcg__input[type=number] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.dm-rcg__unit {
    color: #9aa0ac;
    font-size: 13px;
}

/* 快捷金额 */
.dm-rcg__quick {
    display: flex;
    gap: 8px;
}

.dm-rcg__chip {
    height: 30px;
    padding: 0 14px;
    border: 1px solid #eceef2;
    border-radius: 15px;
    background: #fff;
    color: #4b5563;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    transition: border-color .16s, color .16s, background .16s;
}

.dm-rcg__chip:hover {
    border-color: #ffb3c1;
    color: #ff2d51;
}

.dm-rcg__chip.is-on {
    border-color: #ff2d51;
    background: #fff5f7;
    color: #ff2d51;
}

/* 收款方式：整块可点，选中描边 + 勾 */
.dm-rcg__methods {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dm-rcg__method {
    position: relative;
    display: block;
    cursor: pointer;
}

.dm-rcg__radio {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
}

.dm-rcg__method-body {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #e8eaef;
    border-radius: 12px;
    background: #fff;
    transition: border-color .16s, background .16s;
}

.dm-rcg__method:hover .dm-rcg__method-body {
    border-color: #dfe2e9;
}

.dm-rcg__radio:checked + .dm-rcg__method-body {
    border-color: #ff8199;
    background: #fff7f9;
}

.dm-rcg__radio:focus-visible + .dm-rcg__method-body {
    box-shadow: 0 0 0 3px rgba(255, 45, 81, .12);
}

.dm-rcg__method-ico {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: #f5f6f8;
    color: #6b7280;
}

.dm-rcg__radio:checked + .dm-rcg__method-body .dm-rcg__method-ico {
    background: #ffeef2;
    color: #ff2d51;
}

.dm-rcg__method-ico svg {
    width: 20px;
    height: 20px;
}

.dm-rcg__method-txt {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.dm-rcg__method-txt b {
    color: #1d2129;
    font-size: 14px;
    font-weight: 600;
}

.dm-rcg__method-txt i {
    color: #9aa0ac;
    font-size: 12px;
    font-style: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dm-rcg__tick {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid #dfe2e9;
    color: transparent;
    transition: border-color .16s, background .16s, color .16s;
}

.dm-rcg__tick svg {
    width: 11px;
    height: 11px;
}

.dm-rcg__radio:checked + .dm-rcg__method-body .dm-rcg__tick {
    border-color: #ff2d51;
    background: #ff2d51;
    color: #fff;
}

/* 底部：按钮铺满、说明小字居中 */
.dm-rcg__foot {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 2px;
}

.dm-rcg__submit {
    width: 100%;
    height: 46px;
    border-radius: 23px;
    font-size: 15px;
}

.dm-rcg__hint {
    margin: 0;
    color: #9aa0ac;
    font-size: 12px;
    text-align: center;
}

/* 付款页：收款方式名称带品牌图标，账号支持多行 */
.dm-paycard__methodname {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    color: #4b5563;
    font-size: 13px;
}

.dm-paycard__methodname i,
.dm-paycard__methodname svg {
    width: 16px;
    height: 16px;
    display: inline-flex;
}

.dm-paycard__account code {
    white-space: pre-line;
    line-height: 1.7;
}

/* 付款页收款账号：整块可复制，多行左对齐不串位 */
.dm-paycard__accountbox {
    margin-top: 12px;
    padding: 10px 12px 12px;
    border: 1px solid #eef0f4;
    border-radius: 10px;
    background: #fafbfc;
}

.dm-paycard__accounthead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    color: #8a90a0;
    font-size: 12px;
}

.dm-paycard__copy {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 24px;
    padding: 0 8px;
    border: 1px solid #e6e8ee;
    border-radius: 6px;
    background: #fff;
    color: #4b5563;
    font-size: 12px;
    transition: border-color .15s, color .15s;
}

.dm-paycard__copy:hover {
    border-color: #ffb3c1;
    color: #ff2d51;
}

.dm-paycard__copy svg {
    width: 12px;
    height: 12px;
}

.dm-paycard__copy.is-done {
    border-color: #bfe6cf;
    color: #2ba471;
}

.dm-paycard__accounttext {
    margin: 0;
    color: #1d2129;
    font-size: 13.5px;
    line-height: 1.75;
    font-variant-numeric: tabular-nums;
    white-space: pre-wrap;
    word-break: break-all;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* 付款页二维码：居中，外面套一圈扫描取景框 */
.dm-qrbox {
    display: flex;
    justify-content: center;
    margin: 4px 0 14px;
}

.dm-qrbox__inner {
    position: relative;
    width: 214px;
    height: 214px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: #fff;
    box-shadow:
        0 1px 0 rgba(20, 24, 40, .03),
        0 10px 26px rgba(20, 24, 40, .07),
        inset 0 0 0 1px #f1f2f6;
}

.dm-qrbox__img {
    width: 174px;
    height: 174px;
    object-fit: contain;
    border-radius: 8px;
    background: #fff;
}

.dm-qrbox__frame {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    color: #ff8fa3;
    pointer-events: none;
}

/* 充值付款：电脑端做成居中弹窗，像支付通道 */
body:has(.dm-paymodal) {
    overflow: hidden;
}

.dm-paymodal {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.dm-paymodal__mask {
    position: absolute;
    inset: 0;
    background: rgba(15, 18, 26, .52);
    backdrop-filter: blur(3px);
}

.dm-paymodal__panel {
    position: relative;
    width: 460px;
    max-width: 100%;
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(12, 16, 24, .35);
    animation: dmPayIn .24s cubic-bezier(.23, 1, .32, 1);
}

@keyframes dmPayIn {
    from { opacity: 0; transform: translateY(12px) scale(.99); }
    to   { opacity: 1; transform: none; }
}

.dm-paymodal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px 12px;
}

.dm-paymodal__head h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.dm-paymodal__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    color: #9aa0ac;
    transition: background .15s, color .15s;
}

.dm-paymodal__close:hover {
    background: #f4f5f8;
    color: #1d2129;
}

.dm-paymodal__close svg {
    width: 16px;
    height: 16px;
}

.dm-paymodal__flash {
    margin: 0 22px 8px;
    padding: 9px 12px;
    border-radius: 8px;
    background: #eaf7ee;
    color: #2f9e51;
    font-size: 12.5px;
}

.dm-paymodal__flash.is-error {
    background: #fdecec;
    color: #c33;
}

.dm-paymodal__body {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0 22px 22px;
}

/* 弹窗里的付款卡去掉自己的外框，跟面板合成一张 */
.dm-paymodal .dm-paycard {
    border: 0;
    box-shadow: none;
    padding: 0;
    background: transparent;
}

/* ---------------- 充值付款弹窗：排版 ---------------- */
.dmp {
    padding: 2px 22px 22px;
}

/* 金额：居中大数字 + 方式 / 单号小字 */
.dmp__amount {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 6px 0 18px;
    text-align: center;
}

.dmp__label {
    color: #9aa0ac;
    font-size: 12px;
    letter-spacing: .04em;
}

.dmp__num {
    color: #e0334f;
    font-size: 34px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}

.dmp__meta {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 4px;
    color: #8a90a2;
    font-size: 12px;
}

.dmp__method {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 24px;
    padding: 0 9px;
    border-radius: 12px;
    background: #f5f6f8;
    color: #4b5563;
}

.dmp__method i,
.dmp__method svg {
    width: 14px;
    height: 14px;
    display: inline-flex;
}

.dmp__no {
    font-variant-numeric: tabular-nums;
}

/* 二维码：留出上下呼吸 */
.dmp .dm-qrbox {
    margin: 4px 0 16px;
}

/* 收款账号：可复制 */
.dmp__account {
    margin-top: 2px;
    padding: 11px 13px 13px;
    border: 1px solid #eef0f4;
    border-radius: 12px;
    background: #fafbfc;
}

.dmp__accounthead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 7px;
    color: #8a90a0;
    font-size: 12px;
}

.dmp__copy {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 24px;
    padding: 0 9px;
    border: 1px solid #e6e8ee;
    border-radius: 7px;
    background: #fff;
    color: #4b5563;
    font-size: 12px;
    transition: border-color .15s, color .15s;
}

.dmp__copy:hover {
    border-color: #ffb3c1;
    color: #ff2d51;
}

.dmp__copy svg {
    width: 12px;
    height: 12px;
}

.dmp__copy.is-done {
    border-color: #bfe6cf;
    color: #2ba471;
}

.dmp__accounttext {
    margin: 0;
    color: #1d2129;
    font-size: 13px;
    line-height: 1.75;
    font-variant-numeric: tabular-nums;
    white-space: pre-wrap;
    word-break: break-all;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.dmp__tip {
    margin: 10px 0 0;
    color: #9aa0ac;
    font-size: 12px;
    line-height: 1.6;
}

.dmp__note {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 14px 0 0;
    padding: 9px 11px;
    border-radius: 9px;
    background: #f6f9f7;
    color: #6b7a74;
    font-size: 12px;
    line-height: 1.6;
}

.dmp__note svg {
    flex: none;
    width: 14px;
    height: 14px;
    margin-top: 1px;
    color: #2ba471;
}

/* 底部按钮：右对齐，主操作最右 */
.dmp__acts {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin: 18px 0 0;
    padding-top: 16px;
    border-top: 1px solid #f2f3f6;
}

/* 状态：待审核 / 已到账 / 已拒绝 */
.dmp__state {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 22px 0 6px;
    text-align: center;
    color: #12855a;
}

.dmp__state svg {
    width: 38px;
    height: 38px;
}

.dmp__state b {
    font-size: 16px;
    font-weight: 600;
}

.dmp__state span {
    color: #9aa0ac;
    font-size: 12.5px;
    line-height: 1.6;
}

.dmp__state.is-wait { color: #c07a16; }
.dmp__state.is-reject { color: #c8352a; }

/* 二手收银台：钱包支付 */
.dm-pay-box__wallet {
    margin: 4px 0 18px;
    padding: 14px 16px;
    border: 1px solid #f0f2f5;
    border-radius: 12px;
    background: #fafbfc;
}

.dm-pay-box__walletrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5px 0;
    font-size: 13.5px;
    color: #6b7280;
}

.dm-pay-box__walletrow b {
    color: #1d2129;
    font-size: 15px;
    font-variant-numeric: tabular-nums;
}

.dm-pay-box__walletrow b.is-need {
    color: #e0334f;
    font-size: 17px;
}

.dm-pay-box__warn {
    margin: 8px 0 0;
    color: #d2374f;
    font-size: 12.5px;
}

.dm-pay-box__ok {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-sizing: border-box;
}

/* 首页闲置出售：和其它板块一样加外框 */
.dm-usells {
    width: 1200px;
    margin: 15px auto 0;
    padding: 20px;
    border: 1px solid #EBEBEB;
    border-radius: 0;
    box-sizing: border-box;
}

/* 用户公告：我的 / 钱包 顶部 */
.dm-user-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 16px;
    padding: 12px 16px;
    border-radius: 10px;
    background: linear-gradient(100deg, #fff6f2, #fff9f5);
    border: 1px solid #ffe7db;
}

.dm-user-notice__ico {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: #fff;
    color: #e2703a;
}

.dm-user-notice__ico svg {
    width: 15px;
    height: 15px;
}

.dm-user-notice__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.dm-user-notice__body b {
    color: #b4552a;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
}

.dm-user-notice__body span {
    color: #6b5a52;
    font-size: 13px;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

/* 语言切换：页头四个小字 */
.dm-lang {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-right: 10px;
}

.dm-lang__item {
    padding: 2px 6px;
    border-radius: 6px;
    color: #8a90a2;
    font-size: 12px;
    text-decoration: none;
    line-height: 1.6;
}

.dm-lang__item:hover {
    background: #f4f5f8;
    color: #1d2129;
}

/* 英文界面：词更长，给页头留余地 */
.lang-en .app-header .localHeader {
    margin-right: 12px;
}

.lang-en .routeHome,
.lang-en .routeType {
    margin-right: 14px;
    white-space: nowrap;
}

.lang-en .searchBtn {
    width: auto;
    min-width: 96px;
    padding: 0 18px;
    white-space: nowrap;
}

.lang-en .dm-sell-entry span,
.lang-en .dm-kefu span {
    white-space: nowrap;
}

.lang-en .dm-lang {
    margin-right: 14px;
}

/* 英文页头：把固定宽度的搜索区收窄，右侧操作留出空间 */
.lang-en .app-header .header .localHeader {
    width: auto;
    margin-left: 24px;
}

.lang-en .app-header .header .localHeader .city-location {
    max-width: none;
}

.lang-en .app-header .header .recommendHeader {
    max-width: 300px;
    margin-left: 18px;
    white-space: nowrap;
}

.lang-en .app-header .header .searchHeader {
    width: 310px;
    margin-left: 16px;
}

.lang-en .app-header .header .searchHeader .input-with-search {
    width: 218px;
}

.lang-en .app-header .header .searchHeader .searchBtn {
    width: 92px;
    letter-spacing: 0;
    font-size: 15px;
}

.lang-en .app-header .header .rightHeader {
    margin-left: 0;
}

.lang-en .app-header .header .rightHeader .box-left {
    margin-left: 12px;
}

.lang-en .app-header .header .rightHeader .box-right {
    margin-left: 12px;
}

.lang-en .app-header .header .rightHeader .box-left .log {
    max-width: 70px;
}

/* 英文页头：改用弹性排布，避免固定浮动在长词下重叠 */
.lang-en .app-header .header {
    display: flex;
    align-items: center;
    gap: 16px;
}

.lang-en .app-header .header > .link,
.lang-en .app-header .header > .localHeader,
.lang-en .app-header .header > .recommendHeader,
.lang-en .app-header .header > .searchHeader,
.lang-en .app-header .header > .rightHeader {
    float: none;
    margin: 0;
    height: auto;
    line-height: normal;
}

.lang-en .app-header .header > .searchHeader {
    width: 330px;
    height: 44px;
    position: relative;
    flex: none;
}

.lang-en .app-header .header > .rightHeader {
    margin-left: auto;
    min-width: 0;
    display: flex;
    align-items: center;
}

.lang-en .app-header .header > .rightHeader .box-left,
.lang-en .app-header .header > .rightHeader .box-right {
    margin-left: 14px;
    height: auto;
    line-height: normal;
}

.lang-en .app-header .header > .searchHeader .input-with-search {
    width: 238px;
}

.lang-en .app-header .header > .searchHeader .searchBtn {
    width: 92px;
}

/* 英文界面：页头搜索框藏起来，避免长词把右侧挤到一起，分类页仍有搜索 */
.lang-en .app-header .header > .searchHeader {
    display: none !important;
}

/* 语言下拉：原位弹层 */
.dm-langmenu {
    position: relative;
    display: inline-flex;
    margin-right: 10px;
}

.dm-langmenu__btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 30px;
    padding: 0 9px;
    border: 1px solid #eceef2;
    border-radius: 8px;
    background: #fff;
    color: #4b5563;
    font-size: 12.5px;
    cursor: pointer;
    transition: border-color .15s, color .15s;
}

.dm-langmenu__btn:hover,
.dm-langmenu__btn[aria-expanded="true"] {
    border-color: #ffb3c1;
    color: #ff2d51;
}

.dm-langmenu__btn > svg {
    width: 15px;
    height: 15px;
}

.dm-langmenu__caret {
    width: 11px !important;
    height: 11px !important;
    transition: transform .18s ease;
}

.dm-langmenu__btn[aria-expanded="true"] .dm-langmenu__caret {
    transform: rotate(180deg);
}

.dm-langmenu__panel {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    z-index: 2400;
    width: 208px;
    padding: 6px;
    border: 1px solid #f0f2f5;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(20, 24, 40, .16);
    opacity: 0;
    transform: translateY(-4px);
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
}

.dm-langmenu.is-open .dm-langmenu__panel {
    opacity: 1;
    transform: none;
    pointer-events: auto;
}

.dm-langmenu__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    height: 40px;
    padding: 0 10px;
    border-radius: 8px;
    color: #2b3040;
    font-size: 13px;
    text-decoration: none;
}

.dm-langmenu__item:hover {
    background: #f7f8fb;
}

.dm-langmenu__label {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.dm-langmenu__label em {
    color: #9aa0ac;
    font-size: 11px;
    font-style: normal;
}

.dm-langmenu__check {
    width: 15px;
    height: 15px;
    color: #ff2d51;
    opacity: 0;
}

.dm-langmenu__item.is-on {
    background: #fff5f7;
    color: #e0334f;
}

.dm-langmenu__item.is-on .dm-langmenu__check {
    opacity: 1;
}

/* 城市弹层：按国家分组 */
.region-groups {
    max-height: 300px;
    padding-right: 6px;
    overflow-y: auto;
}

.region-group {
    display: flex;
    gap: 15px;
    padding: 9px 0;
    border-bottom: 1px dashed #f0f2f5;
}

.region-group:last-child {
    border-bottom: 0;
}

.region-group .title-country {
    flex: none;
    width: 86px;
    color: #111;
    font-size: 14px;
    font-weight: 600;
    line-height: 26px;
}

.region-group .list-city {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin: 0;
    padding: 0;
    list-style: none;
    line-height: 26px;
}

.region-group .city-name {
    cursor: pointer;
    font-size: 14px;
    color: #333;
}

.region-group .city-name:hover,
.region-group .city-name.is-current {
    color: #ff371dd9;
}

/* 用户公告：三行收起 + 查看公告弹窗 */
.notice-card {
    width: 100%;
    margin: 0 0 16px;
    padding: 12px 16px;
    border: 1px solid #ffe3e9;
    border-radius: 12px;
    background: linear-gradient(110deg, #fff6f8, #fff9f5);
    color: #7d3c49;
    font: inherit;
    text-align: left;
    cursor: pointer;
    flex-wrap: wrap;
    box-shadow: 0 4px 16px rgba(255, 45, 81, .04);
}

.notice-card .notice-card__body {
    flex: 1 1 0;
    min-width: 0;
}

.notice-card__text {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.notice-card__more {
    display: none;
    flex: 0 0 100%;
    align-items: center;
    justify-content: flex-end;
    gap: 2px;
    margin-top: 4px;
    color: #e03150;
    font-size: 12px;
    font-weight: 600;
}

.notice-card__more svg {
    width: 13px;
    height: 13px;
}

.notice-card.has-more .notice-card__more {
    display: flex;
}

html.notice-open,
html.notice-open body {
    overflow: hidden;
}

.notice-modal {
    position: fixed;
    inset: 0;
    z-index: 950;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.notice-modal[hidden] {
    display: none;
}

.notice-modal__mask {
    position: absolute;
    inset: 0;
    background: rgba(16, 18, 28, .4);
    opacity: 0;
    transition: opacity .2s ease;
}

.notice-modal.is-open .notice-modal__mask {
    opacity: 1;
}

.notice-modal__panel {
    position: relative;
    width: min(560px, 92vw);
    max-height: 76vh;
    display: flex;
    flex-direction: column;
    padding: 18px 20px 16px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 28px 70px rgba(12, 16, 30, .28);
    transform: translateY(8px) scale(.98);
    opacity: 0;
    transition: transform .22s cubic-bezier(.22, .8, .28, 1), opacity .18s ease;
}

.notice-modal.is-open .notice-modal__panel {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.notice-modal__head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 12px;
    border-bottom: 1px solid #f1f2f5;
}

.notice-modal__badge {
    padding: 2px 8px;
    border-radius: 99px;
    background: #fff1f4;
    color: #e03150;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
}

.notice-modal__head b {
    flex: 1;
    min-width: 0;
    color: #1d2129;
    font-size: 16px;
}

.notice-modal__close {
    flex: none;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #f2f3f6;
    color: #6b7280;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.notice-modal__close svg {
    width: 15px;
    height: 15px;
}

.notice-modal__body {
    overflow-y: auto;
    padding-top: 14px;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    color: #3a4050;
    font-size: 14px;
    line-height: 1.8;
}

/* 公告弹窗：重要公告版式 */
.notice-modal__panel {
    width: min(540px, 92vw);
    padding: 20px 22px 18px;
}

.notice-modal__head {
    align-items: center;
    gap: 10px;
    padding-bottom: 14px;
    border-bottom: 0;
}

.notice-modal__ico {
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: linear-gradient(135deg, #fff1f4, #ffe8dd);
    color: #e03150;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.notice-modal__ico svg {
    width: 21px;
    height: 21px;
}

.notice-modal__title {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.notice-modal__title b {
    color: #1d2129;
    font-size: 18px;
    font-weight: 700;
}

.notice-modal__title i {
    color: #b7bac4;
    font-style: normal;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .18em;
}

.notice-modal__body {
    padding: 16px 0 4px;
}

.notice-modal__content {
    padding: 15px 18px;
    border-radius: 14px;
    border: 1px solid #f1e6e9;
    background: #fbf8f9;
    color: #444a58;
    font-size: 14.5px;
    line-height: 1.9;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.notice-modal__foot {
    padding-top: 14px;
}

.notice-modal__ok {
    width: 100%;
    height: 42px;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, #ff5a6e, #ff2d51);
    color: #fff;
    font: inherit;
    font-size: 14.5px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(255, 45, 81, .2);
}

.notice-modal__body {
    white-space: normal;
}

.notice-modal__close {
    outline: none;
}

.notice-modal__close:focus-visible {
    outline: 2px solid #ffd3db;
    outline-offset: 2px;
}

/* 公告弹窗：正文更紧凑 */
.notice-modal__content {
    padding: 13px 15px;
    font-size: 13.8px;
    line-height: 1.75;
}

.notice-modal__panel {
    padding: 18px 20px 16px;
}

.notice-modal__title b {
    font-size: 17px;
}

.notice-modal__mask {
    background: rgba(16, 18, 28, .46);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

/* 公告收成一行，省出首屏位置 */
.notice-card {
    flex-wrap: nowrap;
    align-items: center;
    min-height: 50px;
    margin: 0 0 16px;
    padding: 9px 14px;
    border-radius: 11px;
}

.notice-card__ico {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: #fff;
    color: #e2703a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
}

.notice-card__ico svg {
    width: 16px;
    height: 16px;
}

.notice-card .notice-card__body {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    overflow: hidden;
}

.notice-card__body b {
    flex: none;
    font-size: 12px;
    font-weight: 600;
    color: #b4552a;
    letter-spacing: .03em;
}

.notice-card__text {
    display: block;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 13px;
    line-height: 1.5;
}

.notice-card__more {
    flex: 0 0 auto;
    margin: 0 0 0 8px;
    font-size: 12px;
    white-space: nowrap;
}

/* 公告条：文字居中 */
.notice-card .notice-card__body {
    justify-content: center;
}

.notice-card__text {
    text-align: center;
}

.notice-card .notice-card__body {
    justify-content: flex-start;
}

.notice-card__text {
    text-align: left;
}

.notice-modal__content {
    text-align: center;
}

/* 闲置卡：网格列宽按可用空间均分，长标题不再撑开第一列 */
.dm-usells__list { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.dm-usell { min-width: 0; }
.dm-usell__pic { min-width: 0; }
.dm-usell__title { min-width: 0; max-width: 100%; }

/* 发布价旁边的币种：只显示符号，点开再选 */
.dm-sell-cur {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex: none;
    padding: 0 4px 0 0;
    border: 0;
    background: none;
    color: inherit;
    cursor: pointer;
}
.dm-sell-cur em { font-style: normal; }
.dm-sell-cur svg { width: 11px; height: 11px; color: #9aa0ac; }
.dm-sell-curmenu {
    position: fixed;
    z-index: 9999;
    min-width: 180px;
    max-height: 280px;
    overflow-y: auto;
    padding: 6px;
    border: 1px solid #eceef3;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(18,22,32,.16);
}
.dm-sell-curmenu button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: 7px;
    background: none;
    color: #3b4250;
    font: inherit;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
}
.dm-sell-curmenu button:hover,
.dm-sell-curmenu button.is-on { background: #f5f6f9; color: #ff2d51; }
.dm-sell-curmenu small { color: #9aa0ac; font-size: 11px; }
