/* ═══ member-theme.css ═══
   cidmobile.net 会员区（登录/注册/个人中心）的 Element 后台风格覆盖层。
   规范来自 ~/.claude/skills/admin-ui-element（vue-element-plus-admin / saillinepay 同款）。
   只覆盖 .portal-* / .cidm-* 与 [data-shell=portal] 下的元素，公开页面（首页/套餐）不受影响。
   加载顺序：styles.css 之后。 */
:root {
  --el-color-primary: #4f46e5; --el-color-primary-dark-2: #4338ca;
  --el-color-primary-light-3: #8480ee; --el-color-primary-light-5: #a7a3f2;
  --el-color-primary-light-7: #cac8f7; --el-color-primary-light-8: #dcdafa; --el-color-primary-light-9: #eeedfc;
  --el-color-success: #67c23a; --el-color-success-light-9: #f0f9eb;
  --el-color-warning: #e6a23c; --el-color-warning-light-9: #fdf6ec;
  --el-color-danger: #f56c6c; --el-color-danger-light-9: #fef0f0;
  --el-color-info: #909399; --el-color-info-light-9: #f4f4f5;
  --el-text-primary: #303133; --el-text-regular: #606266; --el-text-secondary: #909399; --el-text-placeholder: #a8abb2;
  --el-border: #dcdfe6; --el-border-light: #e4e7ed; --el-border-lighter: #ebeef5;
  --el-fill: #f0f2f5; --el-fill-light: #f5f7fa; --el-bg-page: #f5f7f9;
  --el-radius: 4px; --el-shadow-light: 0 0 12px rgba(0,0,0,.12);
  --el-sidebar-w: 200px; --el-topbar-h: 50px;
}

/* ── 登录 / 注册 / 找回：星空底 + 双栏大圆角卡片（saillinepay 登录页） ── */
body[data-route="account"][data-shell="public"] { background: #0b0d1a; }
.cidm-auth-page {
  min-height: calc(100vh - var(--cid-header-height, 82px));
  display: flex !important; align-items: center; justify-content: center; padding: 40px 20px !important;
  background: radial-gradient(circle at 12% 18%, rgba(79,70,229,.22), transparent 32%),
              radial-gradient(circle at 88% 82%, rgba(99,102,241,.16), transparent 30%),
              radial-gradient(1px 1px at 20% 30%, #fff 50%, transparent 51%),
              radial-gradient(1px 1px at 70% 15%, #fff 50%, transparent 51%),
              radial-gradient(1.5px 1.5px at 85% 60%, #fff 50%, transparent 51%),
              radial-gradient(1px 1px at 35% 80%, #fff 50%, transparent 51%),
              radial-gradient(1px 1px at 55% 45%, #fff 50%, transparent 51%),
              #0b0d1a;
}
.cidm-auth-card {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: min(100%, 1040px) !important; max-width: none !important; align-self: center; min-height: 640px; padding: 0 !important; overflow: hidden;
  border: 0 !important; border-radius: 28px !important; background: #fff !important;
  box-shadow: 0 30px 80px rgba(0,0,0,.45) !important;
}
.cidm-auth-side {
  position: relative; display: flex; flex-direction: column; padding: 56px 56px 44px; color: #fff;
  background: linear-gradient(160deg, #4f46e5 0%, #3b34c4 55%, #2a2685 100%); overflow: hidden;
}
.cidm-auth-side::after { content: ""; position: absolute; inset: auto -80px -120px auto; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.14), transparent 65%); }
.cidm-auth-side .cid-wordmark { color: #fff; }
.cidm-auth-side h2 { margin: 90px 0 14px; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.2; letter-spacing: -.02em; font-weight: 800; }
.cidm-auth-side p { margin: 0; max-width: 360px; color: rgba(255,255,255,.78); font-size: 15px; line-height: 1.8; }
.cidm-auth-stats { margin-top: auto; display: grid; grid-template-columns: 1fr 1fr; padding: 22px 26px; border: 1px solid rgba(255,255,255,.18); border-radius: 18px; background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }
.cidm-auth-stats > div + div { border-left: 1px solid rgba(255,255,255,.18); padding-left: 26px; }
.cidm-auth-stats b { display: block; font-size: 22px; font-weight: 800; }
.cidm-auth-stats span { font-size: 12px; color: rgba(255,255,255,.7); }
.cidm-auth-foot-side { margin-top: 22px; font-size: 12.5px; color: rgba(255,255,255,.6); }
.cidm-auth-main { padding: 56px 64px 44px; display: flex; flex-direction: column; justify-content: center; }
.cidm-auth-main h1 { margin: 0 0 10px; font-size: 30px; font-weight: 800; color: var(--el-text-primary); letter-spacing: -.01em; }
.cidm-auth-main .cidm-auth-sub { margin: 0 0 28px; color: var(--el-text-regular); font-size: 14px; line-height: 1.7; }
.cidm-auth-card .cidm-auth-main .portal-field label, .cidm-auth-main .field-label { color: var(--el-text-regular); font-size: 14px; font-weight: 500; }
.cidm-auth-main input:not([type=checkbox]), .cidm-auth-main select {
  height: 48px; padding: 0 14px; border: 1px solid transparent; border-radius: 12px; background: var(--el-fill-light);
  color: var(--el-text-primary); font-size: 14px; transition: .2s; box-shadow: none;
}
.cidm-auth-main input:not([type=checkbox]):focus { border-color: var(--el-color-primary); background: #fff; outline: 0; box-shadow: 0 0 0 3px var(--el-color-primary-light-9); }
.cidm-auth-main .portal-primary-button, .cidm-auth-main .cidm-submit {
  height: 48px; border-radius: 8px; background: var(--el-color-primary); border: 0; color: #fff; font-weight: 600; font-size: 15px; box-shadow: none;
}
.cidm-auth-main .portal-primary-button:hover, .cidm-auth-main .cidm-submit:hover { background: var(--el-color-primary-dark-2); transform: none; }
.cidm-auth-main .cidm-code-btn { height: 48px; border-radius: 8px; border: 1px solid var(--el-border); background: #fff; color: var(--el-color-primary); font-weight: 600; }
.cidm-auth-main .cidm-auth-foot { margin-top: 22px; color: var(--el-text-secondary); font-size: 13px; }
.cidm-auth-main .cidm-auth-foot a { color: var(--el-color-primary); font-weight: 600; }
.cidm-auth-main .cidm-steps li { border-radius: 999px; font-size: 12px; }
.cidm-auth-main .cidm-steps li.is-on { background: var(--el-color-primary-light-9); color: var(--el-color-primary); }
.cidm-auth-main .cidm-hint { color: var(--el-text-secondary); }
@media (max-width: 900px) {
  .cidm-auth-card { grid-template-columns: 1fr; min-height: 0; border-radius: 20px !important; }
  .cidm-auth-side { padding: 30px 28px; }
  .cidm-auth-side h2 { margin-top: 28px; font-size: 26px; }
  .cidm-auth-stats { display: none; }
  .cidm-auth-main { padding: 30px 24px; }
}

/* ── 注册引导插图 ── */
.cidm-guide { margin: 4px 0 14px; padding: 14px; border: 1px solid var(--el-border-light); border-radius: 12px; background: #fff; }
.cidm-guide-title { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 13px; font-weight: 600; color: var(--el-text-primary); }
.cidm-guide-title i { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--el-color-primary); color: #fff; font-style: normal; font-size: 12px; font-weight: 700; }
.cidm-guide-figure { position: relative; margin: 0; border-radius: 10px; overflow: hidden; background: #fbe9f2; }
.cidm-guide-figure img { display: block; width: 100%; height: auto; }
.cidm-guide-figure svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.cidm-guide-caption { margin: 10px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--el-text-regular); }
.cidm-guide-caption b { color: #d0005f; }
.cidm-guide-phone { display: grid; grid-template-columns: 150px 1fr; gap: 16px; align-items: center; }
.cidm-guide-phone svg { width: 150px; height: auto; display: block; }
.cidm-guide-arrow { position: absolute; right: 18px; bottom: -6px; width: 26px; height: 26px; color: var(--el-color-danger); }
@media (max-width: 520px) { .cidm-guide-phone { grid-template-columns: 1fr; justify-items: center; } }

/* ── 个人中心：classic 布局（侧栏 200 深色 / 顶栏 50 白 / 内容灰底白卡） ── */
body[data-shell="portal"] { background: var(--el-bg-page); }
.portal-shell { background: var(--el-bg-page); }
.portal-shell .portal-rail {
  width: var(--el-sidebar-w); padding: 0; background: #001529; color: #bfcbd9; border-right: 0; box-shadow: none;
}
.portal-shell .portal-rail .cid-wordmark { height: var(--el-topbar-h); padding: 0 18px; display: flex; align-items: center; color: #fff; border-bottom: 1px solid rgba(255,255,255,.06); }
.portal-shell .portal-rail-label { margin: 14px 18px 6px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8391a5; }
.portal-shell .portal-nav { padding: 0 8px; gap: 2px; }
.portal-shell .portal-nav a, .portal-shell .cidm-logout {
  height: 42px; padding: 0 12px; border-radius: var(--el-radius); color: #bfcbd9; font-size: 14px; font-weight: 500; background: transparent; border: 0;
}
.portal-shell .portal-nav a svg, .portal-shell .cidm-logout svg { width: 16px; height: 16px; color: inherit; opacity: .85; }
.portal-shell .portal-nav a:hover, .portal-shell .cidm-logout:hover { color: #fff; background: #263445; }
.portal-shell .portal-nav a.is-active { color: #fff; background: var(--el-color-primary); box-shadow: none; }
.portal-shell .portal-rail-footer { margin: auto 8px 12px; padding: 12px; border-radius: var(--el-radius); background: rgba(255,255,255,.05); border: 0; }
.portal-shell .portal-rail-footer b { color: #fff; font-size: 13px; }
.portal-shell .portal-rail-footer span { color: #8391a5; font-size: 11.5px; }
.portal-shell .portal-workspace { background: var(--el-bg-page); }
.portal-shell .portal-topbar {
  height: var(--el-topbar-h); padding: 0 20px; background: #fff; border-bottom: 1px solid var(--el-border-light); box-shadow: 0 1px 4px rgba(0,21,41,.06);
}
.portal-shell .portal-topbar-title { font-size: 14px; font-weight: 500; color: var(--el-text-primary); }
.portal-shell .portal-line-selector { height: 30px; padding: 0 12px; border: 1px solid var(--el-border); border-radius: var(--el-radius); background: #fff; color: var(--el-text-regular); font-size: 13px; font-weight: 500; }
.portal-shell .portal-language { height: 30px; border: 1px solid var(--el-border); border-radius: var(--el-radius); background: #fff; color: var(--el-text-regular); font-weight: 600; }
.portal-shell .portal-user { width: 30px; height: 30px; border-radius: 50%; background: var(--el-color-primary); color: #fff; font-size: 12px; font-weight: 700; }
.portal-shell .portal-content { padding: 20px; max-width: 1200px; }
.portal-shell .portal-heading { margin: 0 0 16px; padding: 0; border: 0; }
.portal-shell .portal-heading h1 { font-size: 20px; font-weight: 600; color: var(--el-text-primary); letter-spacing: 0; margin: 0 0 4px; }
.portal-shell .portal-heading p { color: var(--el-text-secondary); font-size: 13px; margin: 0; }
.portal-shell .portal-demo-badge { display: none; }

/* 顶部号码信息条 → el-card */
.portal-shell .portal-line-context {
  margin: 0; padding: 0; border: 1px solid var(--el-border-light); border-radius: var(--el-radius); background: #fff;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0;
}
.portal-shell .portal-line-context > div { padding: 16px 20px; border-right: 1px solid var(--el-border-lighter); }
.portal-shell .portal-line-context > div:last-child { border-right: 0; }
.portal-shell .portal-line-context span { font-size: 12px; color: var(--el-text-secondary); font-weight: 500; letter-spacing: 0; text-transform: none; }
.portal-shell .portal-line-context strong { font-size: 16px; color: var(--el-text-primary); font-weight: 600; margin-top: 6px; }
.portal-shell .portal-line-context .portal-main-number { font-size: 20px; letter-spacing: 0; }
.portal-shell .portal-line-context .cidm-sub { color: var(--el-text-secondary); font-weight: 400; }
.portal-shell .portal-status { color: var(--el-color-success); }
.portal-shell .portal-status.is-warn { color: var(--el-color-warning); }
.portal-shell .portal-status.is-muted { color: var(--el-text-secondary); }

/* 工具条 / 横幅 */
.portal-shell .cidm-toolbar { margin: 12px 0 0; font-size: 12px; color: var(--el-text-secondary); }
.portal-shell .cidm-refresh { height: 28px; padding: 0 12px; border: 1px solid var(--el-border); border-radius: var(--el-radius); background: #fff; color: var(--el-text-regular); font-size: 12px; font-weight: 500; }
.portal-shell .cidm-refresh:hover { color: var(--el-color-primary); border-color: var(--el-color-primary-light-7); background: var(--el-color-primary-light-9); }
.portal-shell .cidm-banner { border-radius: var(--el-radius); font-size: 13px; }
.portal-shell .cidm-banner.is-grey { background: var(--el-color-info-light-9); border-color: #e9e9eb; color: var(--el-text-regular); }
.portal-shell .cidm-banner.is-warn { background: var(--el-color-warning-light-9); border-color: #faecd8; color: #b88230; }
.portal-shell .cidm-banner.is-bad { background: var(--el-color-danger-light-9); border-color: #fde2e2; color: var(--el-color-danger); }
.portal-shell .cidm-skeleton { border-radius: var(--el-radius); border-color: var(--el-border-light); background: #fff; }

/* 内容区块 → el-card（标题在卡头，正文在卡身） */
.portal-shell .portal-overview-block { display: grid; gap: 20px; margin-top: 20px; }
.portal-shell .portal-overview-row {
  display: block; padding: 0; border: 1px solid var(--el-border-light); border-radius: var(--el-radius); background: #fff; box-shadow: none;
}
.portal-shell .portal-overview-row > h2 {
  margin: 0; padding: 14px 20px; font-size: 15px; font-weight: 600; color: var(--el-text-primary); border-bottom: 1px solid var(--el-border-lighter);
}
.portal-shell .portal-overview-row > div, .portal-shell .portal-overview-row > .cidm-rings, .portal-shell .portal-overview-row > .cidm-req-grid, .portal-shell .portal-overview-row > form { padding: 20px; }
.portal-shell .portal-overview-row > .cidm-rings { display: grid; }

/* 表格 → el-table / el-descriptions */
.portal-shell .portal-order-table { font-size: 14px; color: var(--el-text-regular); border: 1px solid var(--el-border-lighter); border-radius: var(--el-radius); overflow: hidden; }
.portal-shell .portal-order-table th { height: 40px; padding: 0 12px; background: var(--el-fill-light); color: var(--el-text-primary); font-weight: 600; font-size: 13px; letter-spacing: 0; text-transform: none; border-bottom: 1px solid var(--el-border-lighter); }
.portal-shell .portal-order-table td { padding: 11px 12px; border-bottom: 1px solid var(--el-border-lighter); }
.portal-shell .portal-order-table tbody tr:last-child td { border-bottom: 0; }
.portal-shell .portal-order-table tbody tr:hover td { background: var(--el-fill-light); }
.portal-shell .portal-order-table td:first-child { color: var(--el-text-secondary); width: 160px; background: #fafafa; }
.portal-shell .portal-order-table thead + tbody td:first-child { color: inherit; width: auto; background: transparent; }
.portal-shell .portal-order-table td b { color: var(--el-text-primary); font-weight: 600; }

/* 快捷链接 → 次要按钮 */
.portal-shell .portal-action-links { gap: 10px; }
.portal-shell .portal-action-links a, .portal-shell .portal-action-links button {
  height: 32px; padding: 0 15px; border: 1px solid var(--el-border); border-radius: var(--el-radius); background: #fff; color: var(--el-text-regular); font-size: 13px; font-weight: 500; text-decoration: none;
}
.portal-shell .portal-action-links a:hover { color: var(--el-color-primary); border-color: var(--el-color-primary-light-7); background: var(--el-color-primary-light-9); }

/* 用量环 */
.portal-shell .cidm-ring { border-color: var(--el-border-light); border-radius: var(--el-radius); }
.portal-shell .cidm-ring-fg { stroke: var(--el-color-primary); }
.portal-shell .cidm-ring-bg { stroke: #e5e9f2; }
.portal-shell .cidm-ring-body strong { color: var(--el-text-primary); font-weight: 600; }
.portal-shell .cidm-ring-body span { color: var(--el-text-regular); font-weight: 500; }

/* 表单 / 工单卡 */
.portal-shell .cidm-req { border-color: var(--el-border-light); border-radius: var(--el-radius); }
.portal-shell .cidm-req h3 { font-size: 15px; font-weight: 600; color: var(--el-text-primary); }
.portal-shell .portal-field label { font-size: 14px; color: var(--el-text-regular); font-weight: 400; margin-bottom: 8px; }
.portal-shell input:not([type=checkbox]), .portal-shell select, .portal-shell textarea {
  height: 32px; padding: 0 11px; border: 1px solid var(--el-border); border-radius: var(--el-radius); background: #fff; color: var(--el-text-regular); font-size: 14px; box-shadow: none;
}
.portal-shell textarea { height: auto; padding: 6px 11px; }
.portal-shell input:not([type=checkbox]):hover, .portal-shell select:hover { border-color: #c0c4cc; }
.portal-shell input:not([type=checkbox]):focus, .portal-shell select:focus { outline: 0; border-color: var(--el-color-primary); box-shadow: none; }
.portal-shell .cidm-req .portal-field { margin-bottom: 16px; }
.portal-shell .portal-primary-button, .portal-shell .cidm-submit {
  height: 32px; padding: 0 15px; border: 1px solid var(--el-color-primary); border-radius: var(--el-radius); background: var(--el-color-primary); color: #fff; font-size: 14px; font-weight: 500; box-shadow: none; width: auto; min-width: 140px;
}
.portal-shell .portal-primary-button:hover, .portal-shell .cidm-submit:hover { background: var(--el-color-primary-light-3); border-color: var(--el-color-primary-light-3); transform: none; }
.portal-shell .cidm-submit[disabled] { color: var(--el-text-placeholder); background: var(--el-fill-light); border-color: var(--el-border-light); filter: none; opacity: 1; }
.portal-shell .cidm-addr-preview { border-radius: var(--el-radius); background: var(--el-color-success-light-9); color: #529b2e; font-weight: 500; }
.portal-shell .cidm-form-msg { font-size: 13px; }
.portal-shell .cidm-note, .portal-shell .cidm-hint { color: var(--el-text-secondary); font-size: 12.5px; }

/* 状态标签 → el-tag */
.portal-shell .cidm-pill { height: 24px; padding: 0 9px; border-radius: var(--el-radius); font-size: 12px; font-weight: 500; border: 1px solid transparent; }
.portal-shell .cidm-pill.is-on, .portal-shell .cidm-pill.is-done { color: var(--el-color-success); background: var(--el-color-success-light-9); border-color: #e1f3d8; }
.portal-shell .cidm-pill.is-pending { color: var(--el-color-warning); background: var(--el-color-warning-light-9); border-color: #faecd8; }
.portal-shell .cidm-pill.is-processing { color: var(--el-color-primary); background: var(--el-color-primary-light-9); border-color: var(--el-color-primary-light-8); }
.portal-shell .cidm-pill.is-failed, .portal-shell .cidm-pill.is-rejected { color: var(--el-color-danger); background: var(--el-color-danger-light-9); border-color: #fde2e2; }
.portal-shell .cidm-pill.is-off, .portal-shell .cidm-pill.is-cancelled { color: var(--el-color-info); background: var(--el-color-info-light-9); border-color: #e9e9eb; }
.portal-shell .cidm-wifi-status > div, .portal-shell .cidm-tips > div { border-radius: var(--el-radius); border-color: var(--el-border-light); }
.portal-shell .cidm-tips > div { background: var(--el-fill-light); }
.portal-shell .cidm-tips svg { color: var(--el-color-primary); }
.portal-shell .cidm-alert { border-radius: var(--el-radius); }

@media (max-width: 900px) {
  .portal-shell .portal-line-context { grid-template-columns: 1fr 1fr; }
  .portal-shell .portal-line-context > div:nth-child(2n) { border-right: 0; }
  .portal-shell .portal-line-context > div { border-bottom: 1px solid var(--el-border-lighter); }
  .portal-shell .portal-content { padding: 14px; }
}

/* 侧栏商标不换行 */
.portal-shell .portal-rail .cid-wordmark { white-space: nowrap; font-size: 15px; gap: 8px; }
.portal-shell .portal-rail .cid-wordmark > span:last-child { display: inline; letter-spacing: .06em; }

.portal-shell .cidm-wifi-status .cidm-pill { justify-self: start; width: max-content; }
