/* 域名管理pro 前台样式 */
.oydp-search-box { text-align: center; padding: 40px 0 24px; }
.oydp-search-box .oydp-input { width: 100%; max-width: 560px; }
.oydp-search-box .oydp-btn { margin-left: 12px; }
.oydp-hot { text-align: center; margin-bottom: 12px; }
.oydp-hot .el-tag { margin: 0 4px 6px 0; cursor: pointer; }
.oydp-result-tip { margin: 10px 0; color: #999; font-size: 13px; }
.oydp-price { color: #f56c6c; font-weight: 700; font-size: 16px; }
.oydp-premium-tip { color: #e6a23c; font-size: 12px; }
.oydp-tpl-select { width: 100%; }
.oydp-tpl-status { font-size: 12px; margin-left: 8px; }
.oydp-tpl-status-Active { color: #67c23a; }
.oydp-tpl-status-Pending { color: #e6a23c; }
.oydp-tpl-status-Failed { color: #f56c6c; }
.oydp-mono { font-family: Consolas, Monaco, monospace; }
.oydp-days-warn { color: #f56c6c; }
.oydp-days-ok { color: #67c23a; }
.oydp-dns-toolbar { display: flex; justify-content: space-between; margin-bottom: 12px; }
.oydp-dns-host { font-family: Consolas, Monaco, monospace; color: #409eff; }
/* 开发模式维护提示 */
.oydp-devmode { text-align: center; padding: 70px 20px 60px; }
.oydp-devmode-title { font-size: 20px; font-weight: 600; margin: 16px 0 10px; }
.oydp-devmode-desc { color: #999; font-size: 13px; margin-bottom: 22px; }

/* 证件图片上传 */
.oydp-upload-row { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.oydp-upload-label { width: 100px; text-align: right; font-size: 13px; color: #606266; flex-shrink: 0; }
.oydp-upload-body { flex: 1; }
.oydp-upload-tip { font-size: 12px; color: #999; line-height: 1.7; margin-top: 2px; }
.oydp-upload-preview { max-width: 200px; max-height: 120px; border: 1px solid #ebeef5; border-radius: 4px; margin-top: 6px; display: block; }
.oydp-empty { text-align: center; padding: 50px 0; color: #999; }

/* 查询结果卡片(西部官网风格) */
.oydp-cards { display: flex; flex-direction: column; gap: 10px; min-height: 60px; }
.oydp-card { border: 1px solid #b7bcc4; border-radius: 8px; padding: 14px 18px; transition: border-color .2s, box-shadow .2s; background: #fff; }
.oydp-card:hover { border-color: #409eff; box-shadow: 0 2px 12px rgba(64,158,255,.18); }
.oydp-card-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.oydp-card-domain { font-size: 17px; font-weight: 600; min-width: 240px; word-break: break-all; }
.oydp-card-price { display: flex; flex-direction: column; align-items: flex-start; }
.oydp-price-line { display: flex; align-items: baseline; gap: 4px; }
.oydp-card-price .oydp-price { font-size: 20px; }
.oydp-price-unit { color: #999; font-size: 12px; }
.oydp-price-renew { color: #909399; font-size: 12px; margin-top: 2px; white-space: nowrap; }
.oydp-more-price { color: #409eff; font-size: 12px; cursor: pointer; margin-left: 8px; white-space: nowrap; }
.oydp-more-price:hover { text-decoration: underline; }
.oydp-card-years { margin-left: auto; }
.oydp-card-op { min-width: 90px; text-align: right; }
.oydp-card-desc { color: #999; font-size: 12px; margin-top: 8px; line-height: 1.6; }
.oydp-card-pending { text-align: center; color: #909399; font-size: 13px; padding: 18px; border-style: dashed; background: #fafafa; }

/* 加载更多 */
.oydp-load-more { text-align: center; padding: 14px 0 4px; }

/* 价格悬浮弹层(周期价目表) */
.oydp-price-q { color: #c0c4cc; cursor: pointer; margin-left: 2px; font-size: 15px; }
.oydp-price-q:hover { color: #409eff; }
.oydp-price-pop-title { font-weight: 600; font-size: 13px; margin-bottom: 8px; font-family: Consolas, Monaco, monospace; }
.oydp-price-pop-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.oydp-price-pop-table th, .oydp-price-pop-table td { padding: 5px 8px; border-bottom: 1px solid #ebeef5; text-align: center; }
.oydp-price-pop-table th { color: #909399; font-weight: normal; background: #f5f7fa; }
.oydp-price-pop-table tr.cur td { background: #ecf5ff; color: #409eff; font-weight: 600; }
.oydp-price-pop-num { color: #f56c6c; font-weight: 600; }
.oydp-price-pop-sub { color: #909399; }
.oydp-price-pop-tip { color: #c0c4cc; font-size: 11px; margin-top: 6px; }
.oydp-empty .el-button { margin-top: 12px; }

/* 结果分组标题 */
.oydp-group-title { font-size: 14px; font-weight: 600; color: #303133; margin: 14px 0 10px; display: flex; align-items: center; gap: 8px; }
.oydp-group-title::before { content: ""; width: 4px; height: 16px; background: #409eff; border-radius: 2px; display: inline-block; }
.oydp-group-title:first-child { margin-top: 4px; }
.oydp-group-count { background: #ecf5ff; color: #409eff; font-size: 12px; border-radius: 10px; padding: 0 8px; font-weight: normal; }

/* 信息模板编辑页(阿里云风格分节) */
.oydp-tpl-page { max-width: 860px; margin: 0 auto; }
.oydp-tpl-head { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.oydp-tpl-head h3 { margin: 0; font-size: 17px; }
.oydp-tpl-head .back { cursor: pointer; color: #409eff; font-size: 13px; }
.oydp-tpl-type-tabs { display: flex; margin-bottom: 4px; }
.oydp-tpl-type-tab { padding: 8px 28px; border: 1px solid #dcdfe6; background: #fff; cursor: pointer; font-size: 14px; color: #606266; }
.oydp-tpl-type-tab:first-child { border-radius: 4px 0 0 4px; }
.oydp-tpl-type-tab:last-child { border-radius: 0 4px 4px 0; margin-left: -1px; }
.oydp-tpl-type-tab.on { color: #fff; background: #409eff; border-color: #409eff; }
.oydp-tpl-section { background: #fff; border: 1px solid #ebeef5; border-radius: 6px; padding: 20px 24px 8px; margin-bottom: 16px; }
.oydp-tpl-section-title { font-size: 14px; font-weight: 600; color: #303133; border-left: 3px solid #409eff; padding-left: 10px; margin-bottom: 18px; }
.oydp-tpl-tip { color: #999; font-size: 12px; line-height: 1.7; }
.oydp-tpl-form .el-form-item { margin-bottom: 18px; }
.oydp-upload-box { border: 1px dashed #c0c4cc; border-radius: 6px; padding: 22px 16px; text-align: center; color: #909399; font-size: 13px; cursor: pointer; transition: border-color .2s; background: #fafafa; }
.oydp-upload-box:hover, .oydp-upload-box.drag { border-color: #409eff; color: #409eff; }
.oydp-upload-box i { font-size: 26px; display: block; margin-bottom: 6px; }
.oydp-upload-preview { max-width: 260px; max-height: 150px; border: 1px solid #ebeef5; border-radius: 4px; margin-top: 10px; display: block; }
.oydp-tpl-footer { text-align: center; padding: 10px 0 30px; }
.oydp-tpl-example { display: flex; gap: 10px; margin-top: 8px; }
.oydp-tpl-example img { width: 110px; height: 74px; object-fit: cover; border: 1px solid #ebeef5; border-radius: 4px; cursor: zoom-in; }

/* 双列布局:左查询+右购物车 */
.oydp-buy-layout { display: flex; gap: 16px; align-items: flex-start; }
.oydp-buy-main { flex: 1; min-width: 0; }
.oydp-cart-panel { width: 300px; flex-shrink: 0; background: #fff; border: 1px solid #b7bcc4; border-radius: 0; }
.oydp-cart-head { display: flex; align-items: center; gap: 8px; padding: 14px 16px; border-bottom: 1px solid #e4e7ed; font-weight: 600; font-size: 14px; }
.oydp-cart-head i { font-size: 18px; color: #409eff; }
.oydp-cart-badge { background: #f56c6c; color: #fff; font-size: 11px; min-width: 18px; height: 18px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.oydp-cart-body { max-height: 420px; overflow: auto; }
.oydp-cart-empty { text-align: center; color: #c0c4cc; padding: 40px 0; font-size: 13px; }
.oydp-cart-empty i { font-size: 34px; display: block; margin-bottom: 8px; }
.oydp-cart-item { display: flex; align-items: center; gap: 8px; padding: 10px 12px 10px 16px; border-bottom: 1px solid #f2f3f5; }
.oydp-cart-item:hover { background: #fafbfc; }
.oydp-cart-item-main { flex: 1; min-width: 0; }
.oydp-cart-item-domain { font-weight: 600; font-size: 13px; word-break: break-all; }
.oydp-cart-item-meta { color: #909399; font-size: 12px; margin-top: 2px; }
.oydp-cart-item-del { color: #c0c4cc; cursor: pointer; font-size: 15px; flex-shrink: 0; }
.oydp-cart-item-del:hover { color: #f56c6c; }
.oydp-cart-foot { padding: 12px 16px; border-top: 1px solid #e4e7ed; }
.oydp-cart-total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; font-size: 13px; color: #606266; }
.oydp-cart-total-num { color: #f56c6c; font-size: 18px; font-weight: 700; }
@media (max-width: 1100px) { .oydp-buy-layout { flex-direction: column; } .oydp-cart-panel { width: 100%; position: static; } }

/* 窄屏风格:内容限宽居中(外层大气泡不变);搜索框与结果卡片同宽 */
.oydp-buy-layout.oydp-narrow { max-width: 1060px; margin: 0 auto; }
.oydp-buy-layout.oydp-narrow .oydp-card-row { gap: 14px; }
.oydp-buy-layout.oydp-narrow .oydp-card-domain { min-width: 200px; font-size: 16px; }

/* ===== 注册页风格微调(直角/蓝按钮/字体统一/大标题) ===== */
/* 直角:注册页内全部输入框/按钮/下拉/卡片/面板 */
.oydp-buy-layout .el-input__inner,
.oydp-buy-layout .el-input-group__append,
.oydp-buy-layout .el-button,
.oydp-buy-layout .el-select .el-input__inner,
.oydp-buy-layout .el-tag { border-radius: 0 !important; }
.oydp-buy-layout .oydp-card,
.oydp-buy-layout .oydp-cart-panel { border-radius: 0; }
/* 查询按钮:蓝色 */
.oydp-search-box .el-input-group__append { background: #0052D9; border-color: #0052D9; }
.oydp-search-box .el-input-group__append .el-button { color: #fff; font-weight: 600; }
.oydp-search-box .el-input-group__append:hover { background: #2069e8; border-color: #2069e8; }
/* 字体统一:去除等宽字体(跟随系统标准字体) */
.oydp-buy-layout .oydp-mono,
.oydp-cart-panel .oydp-mono { font-family: inherit; }
/* 分组标题放大 */
.oydp-buy-layout .oydp-group-title { font-size: 18px; }
.oydp-buy-layout .oydp-group-title::before { height: 20px; }
/* 搜索框与卡片等宽 */
.oydp-search-box .oydp-input { width: 100%; max-width: none; }
/* 购物车:空态也保持高度 + 滚动吸得更稳 */
.oydp-cart-panel .oydp-cart-body { min-height: 260px; }
.oydp-cart-empty { padding: 90px 0; }

/* 双列独立滚动:左列容器内部滚,右列固定不动(不依赖任何滚动监听) */
.oydp-buy-layout { align-items: stretch; }
.oydp-buy-main { max-height: calc(100vh - 170px); overflow-y: auto; overflow-x: hidden; padding-right: 6px; }
.oydp-buy-main::-webkit-scrollbar { width: 6px; }
.oydp-buy-main::-webkit-scrollbar-thumb { background: #cdd0d6; border-radius: 3px; }
.oydp-buy-main::-webkit-scrollbar-thumb:hover { background: #909399; }
.oydp-cart-panel { display: flex; flex-direction: column; align-self: stretch; }
.oydp-cart-panel .oydp-cart-body { flex: 1; overflow-y: auto; min-height: 260px; max-height: none; }

.oydp-upload-preview.oydp-sample { opacity: .55; border-style: dashed; cursor: pointer; }
.oydp-upload-preview.oydp-sample:hover { opacity: .85; }

/* 证件上传卡片(缩略图+说明合一) */
.oydp-cert-row { display: flex; gap: 14px; }
.oydp-cert-item { flex: 1; display: flex; align-items: center; gap: 12px; border: 1px dashed #b7bcc4; border-radius: 0; padding: 10px 12px; cursor: pointer; background: #fafbfc; transition: border-color .2s, background .2s; min-height: 96px; }
.oydp-cert-item:hover { border-color: #409eff; background: #f5f9ff; }
.oydp-cert-item.done { border-style: solid; border-color: #67c23a; }
.oydp-cert-item img { width: 120px; height: 80px; object-fit: cover; border: 1px solid #dcdfe6; border-radius: 0; flex-shrink: 0; }
.oydp-cert-item img.sample { opacity: .6; }
.oydp-cert-item:hover img.sample { opacity: .85; }
.oydp-cert-info { min-width: 0; }
.oydp-cert-title { font-size: 13px; font-weight: 600; color: #303133; }
.oydp-cert-ok { color: #67c23a; font-size: 12px; margin-left: 6px; }
.oydp-cert-tip { font-size: 12px; color: #909399; line-height: 1.7; margin-top: 4px; }

/* 共享提示框(审核说明/注意事项) */
.oydp-notice { margin-top: 16px; border: 1px solid #d3e6fb; background: #f4f9ff; border-radius: 0; padding: 14px 18px; }
.oydp-notice-title { font-size: 13px; font-weight: 600; color: #2b6cb0; margin-bottom: 8px; }
.oydp-notice-title i { margin-right: 4px; }
.oydp-notice-list { margin: 0; padding-left: 18px; color: #4a5a6e; font-size: 14px; line-height: 2; }
.oydp-notice-list b { color: #d48806; }

/* 购买页不退款提示(与页面浅蓝直角风格统一) */
.oydp-buy-notice { display: flex; align-items: center; gap: 8px; border: 1px solid #d3e6fb; background: #f4f9ff; border-radius: 0; padding: 10px 14px; font-size: 13px; color: #4a5a6e; margin: 4px 0 6px; }
.oydp-buy-notice i { color: #e6a23c; font-size: 17px; flex-shrink: 0; }
.oydp-buy-notice b { color: #d48806; }

.oydp-cart-clear { margin-left: auto; font-size: 12px; color: #909399; cursor: pointer; }
.oydp-cart-clear:hover { color: #f56c6c; }

.oydp-card.oydp-card-taken { opacity: .55; background: #fafbfc; }
.oydp-card.oydp-card-taken:hover { border-color: #b7bcc4; box-shadow: none; }

/* 我的域名列表:已下单未注册成功的host行提示 */
.oydp-host-fail { margin-top: 3px; font-size: 12px; color: #f56c6c; line-height: 1.5; word-break: break-all; }
.oydp-host-hint { margin-top: 3px; font-size: 12px; color: #909399; line-height: 1.5; }

/* 解析表:全选列紧凑对齐,清除表头多余占位(避免出现异常小点/图标) */
.oydp-dns-table .el-table-column--selection .cell { padding: 0 4px; text-align: center; overflow: visible; }
.oydp-dns-table th.el-table-column--selection .caret-wrapper,
.oydp-dns-table th.el-table-column--selection .sort-caret { display: none !important; }
.oydp-dns-table th.el-table-column--selection .el-checkbox { margin-right: 0; }

/* 列表工具栏:左筛选右操作,紧凑分组(替代space-between散排) */
.oydp-list-toolbar { justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.oydp-toolbar-group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.oydp-batch-wrap { display: flex; align-items: center; gap: 6px; }
.oydp-batch-count { font-size: 12px; color: #909399; white-space: nowrap; }

/* 系统批量续费组件(batchRenewpage)在插件页的rem单位缩水修正:统一为px尺寸 */
.oydp-batch-wrap .batch-op-btn { display: flex; align-items: center; margin-right: 0; }
.oydp-batch-wrap .batch-op-btn .el-button { font-size: 12px; padding: 9px 15px; height: 32px; }
.oydp-batch-wrap .batch-op-btn .search-btn { margin-right: 0; }
/* 续费/确认弹窗宽度按px重置(组件内10rem/5.5rem在插件页会缩成极窄) */
.branch-rennew-dialog .el-dialog { width: 900px !important; max-width: 94vw; margin-top: 8vh !important; }
.branch-confirm-dialog .el-dialog { width: 420px !important; }
.branch-rennew-dialog .el-dialog .el-table { font-size: 13px; }
.branch-rennew-dialog .tips-title { font-size: 15px; }

/* ===== 手机端购物车:左下角悬浮按钮 + 底部抽屉(≤768px) ===== */
.oydp-cart-fab { display: none; }
@media (max-width: 768px) {
  .oydp-cart-panel { display: none !important; }
  .oydp-buy-layout { gap: 12px; }
  .oydp-buy-main { max-height: none; padding-right: 0; }
  .oydp-cart-fab {
    display: flex; align-items: center; justify-content: center;
    position: fixed; left: 16px; bottom: calc(16px + env(safe-area-inset-bottom));
    width: 52px; height: 52px; border-radius: 50%;
    background: #0052D9; color: #fff; font-size: 24px;
    box-shadow: 0 4px 14px rgba(0, 82, 217, .45); z-index: 1500; cursor: pointer;
    border: none; user-select: none;
  }
  .oydp-cart-fab:active { transform: scale(.92); }
}
.oydp-cart-fab-badge {
  position: absolute; top: -4px; right: -4px;
  background: #f56c6c; color: #fff; font-size: 11px; font-style: normal;
  min-width: 18px; height: 18px; border-radius: 9px;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 5px;
  border: 2px solid #fff;
}
/* 加购后角标弹跳 */
.oydp-bump { animation: oydp-badge-bump .45s ease; }
@keyframes oydp-badge-bump {
  0% { transform: scale(1); }
  40% { transform: scale(1.45); }
  70% { transform: scale(.85); }
  100% { transform: scale(1); }
}
/* 底部抽屉(手机) */
.oydp-cart-mask {
  position: fixed; inset: 0; background: rgba(0, 0, 0, .45); z-index: 1590;
  animation: oydp-mask-fade .2s ease;
}
@keyframes oydp-mask-fade { from { opacity: 0; } to { opacity: 1; } }
.oydp-cart-drawer {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1600;
  background: #fff; border-radius: 14px 14px 0 0; max-height: 72vh;
  display: none; flex-direction: column;
  transform: translateY(100%); transition: transform .28s ease;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, .12);
  padding-bottom: env(safe-area-inset-bottom);
}
@media (max-width: 768px) { .oydp-cart-drawer { display: flex; } }
.oydp-cart-drawer.show { transform: translateY(0); }
.oydp-cart-drawer-head {
  display: flex; align-items: center; gap: 8px; padding: 14px 16px;
  border-bottom: 1px solid #e4e7ed; font-weight: 600; font-size: 15px; flex-shrink: 0;
}
.oydp-cart-drawer-head i:first-child { font-size: 18px; color: #0052D9; }
.oydp-cart-drawer-head .oydp-cart-clear { margin-left: auto; }
.oydp-cart-drawer-close { color: #909399; font-size: 20px; cursor: pointer; padding: 2px; margin-left: 10px; }
.oydp-cart-drawer-body { flex: 1; overflow-y: auto; min-height: 120px; }
.oydp-cart-drawer-foot { padding: 12px 16px 14px; border-top: 1px solid #e4e7ed; flex-shrink: 0; }
/* 加购飞入小球(全端) */
.oydp-fly-ball {
  position: fixed; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%;
  background: #0052D9; color: #fff; display: flex; align-items: center; justify-content: center;
  font-size: 17px; z-index: 4000; pointer-events: none;
  box-shadow: 0 3px 10px rgba(0, 82, 217, .5); will-change: transform, opacity;
}

/* ===== 后缀勾选筛选(替代原热门后缀行):默认2行收起,可展开 ===== */
.oydp-suffix-filter { margin-top: 2px; }
.oydp-suffix-filter-bar {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap;
}
.oydp-suffix-filter-label { color: #999; font-size: 13px; }
.oydp-suffix-tags {
  display: flex; flex-wrap: wrap; gap: 8px;
  max-height: 60px; overflow: hidden; /* 2行(tag 26px + 行距8px) */
}
.oydp-suffix-tags.expanded { max-height: none; }
.oydp-suffix-tag {
  cursor: pointer; user-select: none;
  border: 1px solid #dcdfe6; color: #606266; background: #fff;
  font-size: 12px; padding: 4px 10px;
  display: inline-flex; align-items: center; gap: 3px; line-height: 1;
}
.oydp-suffix-tag:hover { border-color: #0052D9; color: #0052D9; }
.oydp-suffix-tag.active { background: #0052D9; border-color: #0052D9; color: #fff; }
.oydp-suffix-tag.active i { font-size: 11px; }
.oydp-suffix-filter-bar .el-button--mini { padding: 5px 10px; }

/* ===== 现代表格皮肤(Stripe/Linear风):域名插件全站统一 =====
   用法: el-table 上加 class="oydp-table"。Noto Sans SC 14px(与云服务器页同款)、近黑文字、完整网格线、行悬浮高亮、圆角描边容器。 */
.oydp-table.el-table {
  font-family: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;
  font-size: 14px;
  color: #1f2937;
  border: 1px solid #e5e7eb !important;
  background: #fff;
}
.oydp-table.el-table::before { display: none !important; }
/* 表头:浅灰底/深字/12px半粗/40px高,永不折行 */
.oydp-table.el-table th.el-table__cell {
  background: #f8fafc !important;
  color: #111827 !important;
  font-size: 12px;
  font-weight: 600;
  height: 40px !important;
  padding: 0 !important;
  border-bottom: 1px solid #e5e7eb !important;
  text-align: left;
}
.oydp-table.el-table th.el-table__cell > .cell { line-height: 20px; padding: 0 12px; white-space: nowrap; }
/* 完整网格线:单元格竖向分隔(末列除外;浅色1px线在部分屏幕缩放下会有轻微断点观感,属正常渲染) */
.oydp-table.el-table td.el-table__cell,
.oydp-table.el-table th.el-table__cell:not(.gutter) { border-right: 1px solid #e5e7eb; }
.oydp-table.el-table td.el-table__cell:last-child,
.oydp-table.el-table th.el-table__cell:last-child { border-right: none; }
/* 数据行:紧凑行距/近黑正文/浅分隔线/悬浮高亮 */
.oydp-table.el-table td.el-table__cell { padding: 9px 0 !important; color: #1f2937 !important; border-bottom: 1px solid #f1f5f9; }
.oydp-table.el-table .el-table__row:hover > td.el-table__cell { background: #f8fafc !important; }
.oydp-table.el-table .cell { line-height: 20px; padding: 0 12px; word-break: break-word; }
.oydp-table.el-table .el-table__empty-block { min-height: 120px; }
.oydp-table.el-table .el-table__empty-text { color: #6b7280; font-size: 13px; }
/* 选择列与居中列 */
.oydp-table.el-table th.is-center, .oydp-table.el-table td.is-center { text-align: center; }
.oydp-table.el-table th.is-center > .cell, .oydp-table.el-table td.is-center > .cell { padding: 0 8px; }
/* 表头/行内复选框统一尺寸与对齐 */
.oydp-table.el-table .el-checkbox { height: auto; }
.oydp-table.el-table .el-checkbox__inner { width: 15px; height: 15px; }
.oydp-table.el-table .el-checkbox__inner::after { left: 4px; top: 0px; }
/* 原生复选框(批量解析页):跨表格上下文零依赖 */
.oydp-cb { width: 15px; height: 15px; accent-color: #0052D9; cursor: pointer; vertical-align: middle; margin: 0; }
.oydp-cb:disabled { cursor: not-allowed; opacity: .45; }
/* Element loading 遮罩动画残留(后台标签页切回时transitionend丢失,opacity:0却挡点击) */
.el-loading-mask.el-loading-fade-leave-active { pointer-events: none !important; }
/* 兼容旧页面类名 */
.oydp-td-head.el-table th.el-table__cell .el-checkbox { height: auto; }

/* ===== 批量添加解析:输入预览表 ===== */
.oydp-batch-preview { margin-top: 10px; max-height: 220px; overflow: auto; border: 1px solid #ebeef5; font-size: 12px; }
.oydp-batch-row { display: flex; align-items: center; border-bottom: 1px solid #f2f3f5; }
.oydp-batch-row:last-child { border-bottom: none; }
.oydp-batch-head { background: #f9fafc; color: #2b2b2b; font-weight: 500; position: sticky; top: 0; }
.oydp-batch-row > span { padding: 5px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oydp-batch-row .ln { width: 36px; color: #909399; flex-shrink: 0; }
.oydp-batch-row .host { width: 110px; flex-shrink: 0; }
.oydp-batch-row .type { width: 60px; flex-shrink: 0; }
.oydp-batch-row .val { flex: 1; min-width: 0; }
.oydp-batch-row .ttl { width: 60px; flex-shrink: 0; }
.oydp-batch-row .rline { width: 60px; flex-shrink: 0; }
.oydp-batch-row .msg { width: 190px; flex-shrink: 0; color: #2e9e5b; }
.oydp-batch-row.err .msg { color: #f56c6c; }
.oydp-batch-row.err { background: #fef4f4; }

/* 批量添加弹窗:格式提示条 + footer一行布局 */
.oydp-batch-tip {
  font-size: 12px; color: #666; line-height: 1.8;
  background: #f5f7fa; border-left: 3px solid #0052D9;
  padding: 8px 12px; margin-bottom: 10px;
}
.oydp-batch-foot { display: flex; align-items: center; justify-content: space-between; }
.oydp-batch-stat { font-size: 12px; color: #999; text-align: left; }

/* ===== 域名批量解析页(三步向导) ===== */
.oydp-bd-tip {
  font-size: 12px; color: #666; line-height: 1.8;
  background: #f5f7fa; border-left: 3px solid #0052D9;
  padding: 8px 12px; margin-bottom: 6px;
}
.oydp-steps { margin: 14px 0 18px; }
.oydp-op-cards { display: flex; gap: 12px; margin: 4px 0 16px; flex-wrap: wrap; }
.oydp-op-card { flex: 1; min-width: 190px; border: 1px solid #dcdfe6; border-radius: 6px; padding: 12px 14px; cursor: pointer; transition: all .15s; background: #fff; }
.oydp-op-card:hover { border-color: #0052D9; }
.oydp-op-card.active { border-color: #0052D9; background: rgba(0, 82, 217, 0.04); box-shadow: 0 0 0 1px #0052D9 inset; }
.oydp-op-card .t { font-size: 14px; font-weight: 600; color: #303133; }
.oydp-op-card .t i { margin-right: 4px; color: #0052D9; }
.oydp-op-card .d { font-size: 12px; color: #909399; margin-top: 4px; line-height: 1.6; }
.oydp-bd-selected {
  background: #f4f8ff; border: 1px solid #d6e4ff; border-radius: 6px;
  padding: 8px 12px; font-size: 13px; color: #606266; margin-bottom: 14px;
}
.oydp-bd-wizard-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; border-top: 1px solid #ebeef5; padding-top: 14px; }
.oydp-bd-pvsum { background: #fff8e6; border: 1px solid #faecd8; border-radius: 6px; padding: 10px 14px; font-size: 13px; color: #606266; margin-bottom: 12px; line-height: 1.8; }
.oydp-bd-mini { font-size: 12px; color: #303133; background: #f5f7fa; border-radius: 3px; padding: 2px 8px; margin-right: 6px; display: inline-block; }
.oydp-bd-rec { font-size: 12px; color: #606266; line-height: 1.9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oydp-bd-result { background: #f0f9eb; border: 1px solid #e1f3d8; border-radius: 6px; padding: 12px 14px; margin-bottom: 12px; }
.oydp-bd-result-line { font-size: 14px; color: #303133; line-height: 2; }
/* 域名批量解析:条件区块小标题 */
.oydp-section-title {
  font-size: 13px; font-weight: 600; color: #303133;
  border-left: 3px solid #0052D9; padding-left: 8px; margin: 14px 0 12px;
}

/* ===== 域名批量解析:表格输入/表单提示/操作历史 ===== */
.oydp-grid-dns { border: 1px solid #ebeef5; border-radius: 4px; overflow: hidden; }
.oydp-grid-row { display: flex; align-items: center; border-bottom: 1px solid #f2f3f5; }
.oydp-grid-row:last-child { border-bottom: none; }
.oydp-grid-row > span { padding: 6px 8px; display: flex; align-items: center; }
.oydp-grid-head { background: #f9fafc; color: #2b2b2b; font-size: 13px; font-weight: 500; }
.oydp-grid-head > span { padding: 9px 8px; }
.oydp-grid-row .host { width: 180px; flex-shrink: 0; }
.oydp-grid-row .type { width: 110px; flex-shrink: 0; }
.oydp-grid-row .val { flex: 1; min-width: 0; }
.oydp-grid-row .ttl { width: 100px; flex-shrink: 0; }
.oydp-grid-row .rline { width: 110px; flex-shrink: 0; }
.oydp-grid-row .op { width: 50px; flex-shrink: 0; justify-content: center; }
.oydp-grid-head .req { color: #f56c6c; font-style: normal; margin-left: 2px; }
.oydp-grid-err { color: #f56c6c; font-size: 12px; margin-left: 10px; }
.oydp-form-tip { font-size: 12px; color: #909399; line-height: 1.8; }
.oydp-log-detail { padding: 4px 12px 8px; background: #fafbfc; }
.oydp-log-dom { padding: 4px 0; display: flex; align-items: center; gap: 10px; font-size: 12px; border-bottom: 1px dashed #eee; }
.oydp-log-dom:last-child { border-bottom: none; }
@media (max-width: 768px) {
  .oydp-grid-row .host { width: 120px; }
  .oydp-grid-row .type { width: 84px; }
  .oydp-grid-row .ttl, .oydp-grid-row .rline { width: 76px; }
}

/* ===== 我的域名:批量续费区固定占位(勾选出现时不挤动布局) ===== */
.oydp-list-toolbar { flex-wrap: nowrap; }
.oydp-batch-wrap.is-hidden { visibility: hidden; pointer-events: none; }
.oydp-batch-wrap .batch-op-btn .el-button { font-size: 12px; padding: 0 12px; height: 28px; }
.oydp-batch-count { color: #4b5563; }

/* ===== 邮箱解析弹窗:邮局选择卡片 ===== */
.oydp-mail-providers { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 4px 0 8px; }
.oydp-mail-card { border: 1px solid #dcdfe6; border-radius: 6px; padding: 10px 12px; cursor: pointer; transition: all .15s; background: #fff; }
.oydp-mail-card:hover { border-color: #0052D9; }
.oydp-mail-card.active { border-color: #0052D9; background: rgba(0, 82, 217, 0.04); box-shadow: 0 0 0 1px #0052D9 inset; }
.oydp-mail-card .t { font-size: 13px; font-weight: 600; color: #303133; }
.oydp-mail-card .d { font-size: 11px; color: #6b7280; margin-top: 3px; line-height: 1.5; }
@media (max-width: 600px) { .oydp-mail-providers { grid-template-columns: 1fr; } }

/* 蓝色提示条:替代默认黄色warning警示(邮箱解析/模板过户/NS修改) */
.oydp-alert-blue.el-alert--warning { background-color: #f0f7ff; border: none; }
.oydp-alert-blue.el-alert--warning .el-alert__title { color: #1d5bbf; }
.oydp-alert-blue.el-alert--warning .el-alert__description { color: #1d5bbf; }
.oydp-alert-blue.el-alert--warning .el-alert__icon { color: #0052D9; }

/* ===== 域名详情:按钮图标与标题 ===== */
.main-card-title .oydp-title-domain { word-break: break-all; }
.oydp-mail-btn { height: 32px !important; }
.oydp-mail-btn i.el-icon-message { color: #0052D9; font-size: 14px; line-height: 1; }

/* ===== 域名详情:手机窄屏优化 ===== */
@media (max-width: 768px) {
  /* 标题字号统一收紧 */
  .main-card-title { font-size: 15px !important; }
  /* 域名信息描述表:2列挤成4格 → 竖排(标签一行+内容一行) */
  .el-descriptions__body table,
  .el-descriptions__body tbody,
  .el-descriptions__body tr { display: block; width: 100%; }
  .el-descriptions__body tr th,
  .el-descriptions__body tr td { display: block; width: auto !important; }
  .el-descriptions__body .el-descriptions-item__label { background: #f8fafc !important; }
  /* 解析记录表:次要列(TTL/线路/备注)隐藏,保留 主机/类型/记录值/操作 */
  /* 工具栏按钮换行收纳 */
  .oydp-dns-toolbar { flex-wrap: wrap; gap: 8px; }
  .oydp-dns-toolbar > div { flex-wrap: wrap; gap: 6px; }
  .oydp-dns-toolbar .el-button { padding: 9px 10px; }
}
/* 域名详情:标题字号统一(主题rem换算仅9.3px过小) */
.main-card-title { font-size: 16px !important; line-height: 24px !important; }

/* 域名信息:手机端折叠切换按钮(桌面隐藏,默认展开) */
.oydp-info-toggle { display: none; }
@media (max-width: 768px) {
  .oydp-info-toggle { display: inline-block; margin-left: 8px; padding: 0; }
}

/* 域名信息:手机折叠态精简摘要(域名/状态/到期) */
.oydp-info-summary { border: 1px solid #e5e7eb; border-radius: 6px; padding: 8px 12px; margin-bottom: 8px; background: #fff; }
.oydp-info-summary .row { display: flex; align-items: center; gap: 8px; padding: 4px 0; }
.oydp-info-summary .row + .row { border-top: 1px dashed #f1f5f9; }
.oydp-info-summary .k { width: 40px; color: #6b7280; font-size: 12px; flex-shrink: 0; }
.oydp-info-summary .v { font-size: 13px; color: #1f2937; min-width: 0; word-break: break-all; }

/* 域名详情:解析工具栏按钮统一高度/字号(主题rem导致9.3px不齐) */
.oydp-dns-toolbar .el-button { height: 28px; line-height: 1; font-size: 12px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; }
.oydp-dns-toolbar .el-button i { line-height: 1; font-size: 13px; }

/* 域名详情:手机端解析工具栏纵向排列+按钮左对齐 */
@media (max-width: 768px) {
  .oydp-dns-toolbar { flex-direction: column; align-items: flex-start; }
  .oydp-dns-toolbar > div { justify-content: flex-start; }
}

/* ===== 手机端:弹窗全局自适应(插件4页面所有el-dialog) ===== */
@media (max-width: 768px) {
  .el-dialog { width: calc(100vw - 24px) !important; margin: 12px auto !important; }
  .el-dialog__body { padding: 14px 15px !important; max-height: 62vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .el-dialog__header { padding: 14px 15px 10px; }
  .el-dialog__footer { padding: 10px 15px 14px; }
  /* 弹窗内表单:label上置一行+控件独占一行 */
  .el-dialog .el-form-item__label { float: none !important; display: block; width: auto !important; text-align: left; padding: 0 0 4px; line-height: 20px; }
  .el-dialog .el-form-item__content { margin-left: 0 !important; }
  .el-dialog .el-radio-group .el-radio { margin-right: 12px; }
  /* 弹窗内表格/预览可横向滚动 */
  .el-dialog .el-table, .el-dialog .oydp-batch-preview { overflow-x: auto; }
}

/* ===== 域名转入页 ===== */
.oydp-tr-form{border:1px solid #e5e7eb;padding:16px;margin-top:14px;}
.oydp-tr-records{margin-top:16px;}
.oydp-tr-notes{margin-top:16px;}
.oydp-section-title2{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:10px;padding-left:8px;border-left:3px solid #0052D9;line-height:18px;}
.oydp-tr-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;}
.oydp-tr-field{display:flex;flex-direction:column;gap:6px;}
.oydp-tr-label{font-size:12px;color:#4b5563;}
.oydp-tr-result{margin-top:14px;padding:14px;background:#f8fafc;border:1px solid #e5e7eb;}
.oydp-tr-ok{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.oydp-tr-price{font-size:20px;font-weight:700;color:#0052D9;}
.oydp-tr-tpl{margin-top:12px;}
.oydp-tr-tpl-empty{margin-top:8px;font-size:12px;color:#e6a23c;}
.oydp-tr-fail{font-size:13px;color:#4b5563;}
.oydp-tr-note-list{margin:0;padding-left:18px;font-size:12px;color:#6b7280;line-height:1.9;}

/* ===== 域名转移页(转入/转出标签) ===== */
.oydp-transfer-tabs .el-tabs__header{margin-bottom:14px;}
.oydp-transfer-tabs .el-tabs__item{font-size:14px;}
.oydp-tr-wrap .oydp-bd-tip{margin-top:0;}

/* DKIM警示:三角感叹号图标+红色调(el-alert warning图标+红底覆盖) */
.oydp-alert-red.el-alert--warning { background: #fef0f0 !important; color: #f56c6c !important; }
.oydp-alert-red .el-alert__title { color: #f56c6c !important; }
.oydp-alert-red .el-alert__icon { color: #f56c6c !important; }

/* 详情页操作按钮行:高度强制统一(消除缩放取整误差) */
.oydp-detail-actions { display: flex; flex-wrap: wrap; align-items: center; margin-top: 8px; }
.oydp-detail-actions .el-button { height: 32px !important; line-height: 1; margin-left: 10px; }
.oydp-detail-actions .el-button:first-child { margin-left: 0; }

/* 购买页未登录提示条:可自由查询,购买需登录 */
.oydp-guest-tip { display:flex; align-items:center; gap:6px; background:#f0f7ff; border:1px solid #d6e6ff;
  border-radius:4px; padding:8px 12px; margin-bottom:10px; font-size:13px; color:#1d5bbf; }
.oydp-guest-tip i { color:#0052D9; font-size:15px; }
