:root {
  color-scheme: light;
  font-family: "Segoe UI", "Microsoft YaHei", Arial, sans-serif;
  background: #f4f6f8;
  color: #17212b;
  --border: #d8dee5;
  --muted: #66727e;
  --panel: #ffffff;
  --accent: #0d9488;
  --accent-dark: #0f766e;
  --blue: #2563eb;
  --blue-dark: #1d4ed8;
  --warning-bg: #fff7df;
  --warning-border: #e8bc52;
}

/* 三点三二零：批量视频工作室 */
.video-studio{--video-green:#087e68;--video-deep:#073e35;--video-line:#d5e4df;--video-soft:#f2f8f6;color:#153f38;min-height:calc(100vh - 90px)}
.video-studio button,.video-studio input,.video-studio select{font:inherit}
.video-studio-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:4px 0 20px;border-bottom:1px solid var(--video-line)}
.video-studio-heading>div:first-child>span,.video-card-heading span{display:block;color:var(--video-green);font-size:12px;font-weight:800;margin-bottom:5px}
.video-studio-heading h1{font-size:28px;line-height:1.2;margin:0 0 7px;color:#0c3f36}
.video-studio-heading p{margin:0;color:#66807b;font-size:14px}
.video-renderer-status{display:flex;align-items:center;gap:10px;min-width:330px;padding:12px 14px;border:1px solid var(--video-line);border-radius:13px;background:#fff}
.video-renderer-status>i{width:10px;height:10px;border-radius:50%;background:#d79c27;box-shadow:0 0 0 4px #fff2d8}
.video-renderer-status.available>i{background:#10a876;box-shadow:0 0 0 4px #dcf7ed}
.video-renderer-status.unavailable>i{background:#d95a4d;box-shadow:0 0 0 4px #fde6e2}
.video-renderer-status div{display:grid;gap:2px;min-width:0;flex:1}.video-renderer-status strong{font-size:13px}.video-renderer-status small{color:#718681;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.video-renderer-status button,.video-section-heading button,.video-card-heading button,.video-selected-summary button{border:1px solid #a9d1c8;background:#fff;color:#08735f;border-radius:8px;padding:7px 12px;font-weight:700;cursor:pointer}
.video-studio-notice{margin:12px 0;padding:11px 14px;border-radius:9px;background:#eaf6f2;color:#096650;border:1px solid #b9dfd5;font-size:13px}
.video-studio-notice[data-type="error"]{background:#fff1ef;color:#a63e35;border-color:#efc0ba}.video-studio-notice[data-type="success"]{background:#ecf9f2;color:#08704f;border-color:#b6e3ce}
.video-studio-tabs{display:flex;gap:24px;margin:0 0 16px;border-bottom:1px solid var(--video-line)}
.video-studio-tabs button{border:0;background:none;padding:15px 4px 12px;color:#657c77;font-weight:700;cursor:pointer;position:relative}
.video-studio-tabs button.active{color:var(--video-green)}.video-studio-tabs button.active::after{content:"";position:absolute;height:3px;border-radius:3px;left:0;right:0;bottom:-1px;background:var(--video-green)}
.video-studio-tabs b{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;padding:0 5px;border-radius:10px;background:#e7f2ef;font-size:11px;margin-left:4px}
.video-create-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(460px,1.55fr) minmax(260px,.85fr);gap:14px}
.video-studio-card{border:1px solid var(--video-line);border-radius:14px;background:#fff;padding:16px;min-height:242px;box-shadow:0 6px 20px rgba(13,72,61,.04)}
.video-card-heading,.video-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.video-card-heading h2,.video-section-heading h2{font-size:18px;margin:0;color:#123f37}.video-card-heading>b{font-size:11px;color:#78908b;font-weight:600}
.video-drop-zone{display:flex;min-height:128px;border:1.5px dashed #8bc6b8;border-radius:12px;background:#f5fbf9;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px;cursor:pointer;transition:.18s ease}
.video-drop-zone:hover,.video-drop-zone.dragging{border-color:#05866d;background:#eaf8f3;transform:translateY(-1px)}
.video-drop-zone i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#d9f1e9;color:#087a64;font-size:24px;font-style:normal;margin-bottom:7px}.video-drop-zone strong{font-size:14px}.video-drop-zone span{font-size:11px;color:#748984;margin-top:5px}
.video-selected-summary{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:12px;color:#607772}.video-selected-summary strong{color:#08745f}
.video-upload-progress{margin-top:10px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.video-upload-progress[hidden]{display:none}.video-upload-progress>span{height:7px;background:#e6efed;border-radius:4px;overflow:hidden}.video-upload-progress i{display:block;height:100%;width:0;background:#0a9678;transition:width .2s}.video-upload-progress strong{font-size:11px;color:#58706b}
.video-template-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.video-template-fields label{display:grid;gap:5px;color:#5a736d;font-size:11px;position:relative}.video-template-fields label.wide{grid-column:span 2}.video-template-fields input:not([type="color"]),.video-template-fields select{width:100%;border:1px solid #cbdcd8;border-radius:8px;background:#fff;color:#153f38;padding:9px 10px;min-height:38px;outline:none}.video-template-fields input:focus,.video-template-fields select:focus{border-color:#07866d;box-shadow:0 0 0 3px rgba(7,134,109,.09)}
.video-template-fields input[type="color"]{width:100%;height:38px;border:1px solid #cbdcd8;border-radius:8px;background:#fff;padding:3px}.video-template-fields label>small{position:absolute;right:10px;bottom:11px;color:#82938f}
.video-submit-card{display:flex;flex-direction:column}.video-output-flow{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:17px 5px;border-radius:11px;background:#f1f8f6}.video-output-flow span{padding:6px 9px;border:1px solid #c1ddd6;border-radius:7px;background:#fff;font-size:12px;font-weight:700}.video-output-flow i{font-style:normal;color:#51a18f}
.video-submit-card p{color:#657c77;font-size:12px;line-height:1.7;margin:14px 0 10px}.video-submit-card>.portal-primary-button{width:100%;margin-top:auto;padding:11px}.video-submit-card>small{font-size:10px;color:#889792;margin-top:8px;text-align:center}
.video-recent-section{margin-top:18px;border:1px solid var(--video-line);border-radius:14px;background:#fff;padding:16px}.video-section-heading{margin-bottom:12px}.video-section-heading p{margin:3px 0 0;color:#7a8d89;font-size:12px}.video-section-heading>div:last-child{display:flex;gap:8px}
.video-job-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.video-job-card{border:1px solid #dce7e4;border-radius:11px;padding:12px;display:grid;gap:10px;min-width:0}.video-job-card>div:first-child{display:grid;gap:3px}.video-job-card span{color:#087760;font-size:11px}.video-job-card strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-job-card small{font-size:10px;color:#7b8e89;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-job-card.failed{border-color:#f0c3bc}.video-job-card.failed span{color:#b4493d}
.video-job-progress{display:flex;align-items:center;gap:8px}.video-job-progress>span,.video-table-progress{height:6px;background:#e5efec;border-radius:5px;overflow:hidden;flex:1;min-width:62px}.video-job-progress i,.video-table-progress i{display:block;height:100%;background:#0d9b7b}.video-job-progress b{font-size:10px;color:#53716a}.video-job-actions,.video-table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.video-job-actions button,.video-job-actions a,.video-table-actions button,.video-table-actions a{border:1px solid #9bcfc3;border-radius:7px;background:#fff;color:#087660;text-decoration:none;padding:5px 8px;font-size:11px;font-weight:700;cursor:pointer}.video-job-waiting{font-size:10px!important;color:#80908d!important}
.video-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.video-asset-card{border:1px solid var(--video-line);border-radius:12px;background:#fff;padding:9px;position:relative;transition:.15s}.video-asset-card.selected{border-color:#079176;box-shadow:0 0 0 2px rgba(7,145,118,.1)}.video-asset-card>label{position:absolute;z-index:2;left:15px;top:15px;display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.92);padding:4px 7px;border-radius:7px;font-size:10px;font-weight:700;cursor:pointer}.video-asset-card>button{position:absolute;right:15px;top:15px;z-index:2;border:0;border-radius:7px;background:rgba(255,255,255,.92);color:#ae483f;padding:5px 7px;font-size:10px;cursor:pointer}
.video-asset-preview{height:125px;border-radius:9px;background:#eaf1ef;display:grid;place-items:center;overflow:hidden;position:relative}.video-asset-preview img,.video-asset-preview video{width:100%;height:100%;object-fit:cover}.video-asset-play{position:absolute;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(2,32,27,.7);color:#fff}.video-audio-icon{font-size:44px;color:#0c876f}.video-asset-meta{display:grid;gap:3px;margin-top:9px}.video-asset-meta strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-asset-meta span{font-size:10px;color:#758985}
.video-jobs-table-wrap{overflow:auto;border:1px solid var(--video-line);border-radius:12px;background:#fff}.video-jobs-table-wrap table{width:100%;border-collapse:collapse;min-width:980px}.video-jobs-table-wrap th{background:#edf4f2;color:#496961;font-size:11px;text-align:left;padding:11px}.video-jobs-table-wrap td{border-top:1px solid #e0e9e7;padding:11px;font-size:12px;vertical-align:middle}.video-jobs-table-wrap td:first-child{display:grid;gap:3px;min-width:210px}.video-jobs-table-wrap td:first-child small{color:#7c8e8a;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-jobs-table-wrap td:nth-child(4){display:flex;align-items:center;gap:7px}.video-jobs-table-wrap td:nth-child(4)>b{font-size:10px}.video-job-status{display:inline-block;padding:5px 8px;border-radius:12px;background:#edf4f2;color:#54726b;font-size:10px;font-weight:700}.video-job-status.completed{background:#e1f5ec;color:#08704f}.video-job-status.failed{background:#fdeae7;color:#ad453b}.video-job-status.rendering,.video-job-status.packaging{background:#e4f1ff;color:#276899}
.video-empty-state{grid-column:1/-1;min-height:130px;display:grid;place-content:center;text-align:center;gap:5px;color:#718782;background:#f7faf9;border:1px dashed #c5d8d3;border-radius:11px}.video-empty-state strong{color:#46655e}.video-empty-state span{font-size:12px}
.video-preview-dialog{border:0;border-radius:16px;padding:0;width:min(900px,92vw);background:#0a1715;color:#fff;box-shadow:0 30px 80px rgba(0,0,0,.38)}.video-preview-dialog::backdrop{background:rgba(5,24,20,.75);backdrop-filter:blur(3px)}.video-preview-heading{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#102621}.video-preview-heading div{display:grid;gap:2px}.video-preview-heading span{font-size:10px;color:#78baa9}.video-preview-heading strong{font-size:14px}.video-preview-heading button{width:34px;height:34px;border:1px solid #35564e;border-radius:8px;background:#17362f;color:#fff;font-size:20px;cursor:pointer}.video-preview-dialog video{display:block;width:100%;max-height:70vh;background:#000}.video-preview-actions{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px}.video-preview-actions a{padding:8px 13px;border:1px solid #4a786d;border-radius:8px;color:#e8fff8;text-decoration:none;font-size:12px;font-weight:700}
@media(max-width:1280px){.video-create-grid{grid-template-columns:1fr 1.35fr}.video-submit-card{grid-column:1/-1;min-height:200px}.video-job-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.video-studio-heading{align-items:flex-start;flex-direction:column}.video-renderer-status{min-width:0;width:100%}.video-create-grid{grid-template-columns:1fr}.video-submit-card{grid-column:auto}.video-job-cards{grid-template-columns:1fr}.video-template-fields{grid-template-columns:1fr}.video-template-fields label.wide{grid-column:auto}.video-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 3.23.2 登录页最终对比度验收修正 */
.auth-link-button {
  color: #087b5c !important;
  font-weight: 700;
}
.auth-link-button:hover,
.auth-link-button:focus-visible {
  color: #055c46 !important;
  background: #e6f4ef !important;
}
.auth-brand span {
  color: #4b5f58 !important;
}
.plan-note {
  color: #2f433d !important;
  background: #e4ece9 !important;
  border: 1px solid #c4d4cf !important;
}
.plan-note * {
  color: inherit !important;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 1180px;
  min-height: 100vh;
  background: #f4f6f8;
}

button,
input,
select,
textarea { font: inherit; }

button {
  min-height: 36px;
  border: 1px solid #cbd3dc;
  border-radius: 6px;
  background: #fff;
  color: #1f2933;
  padding: 7px 12px;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}

button:hover:not(:disabled) { background: #f1f5f9; border-color: #9ba8b6; }
button:disabled { cursor: not-allowed; opacity: .48; }
.primary-btn { background: var(--accent); border-color: var(--accent); color: #fff; }
.primary-btn:hover:not(:disabled) { background: var(--accent-dark); border-color: var(--accent-dark); }
.accent-btn { background: var(--blue); border-color: var(--blue); color: #fff; }
.accent-btn:hover:not(:disabled) { background: var(--blue-dark); border-color: var(--blue-dark); }

input,
select,
textarea {
  width: 100%;
  min-height: 36px;
  border: 1px solid #cbd3dc;
  border-radius: 5px;
  background: #fff;
  color: #17212b;
  padding: 6px 8px;
}

input:focus,
select:focus,
textarea:focus { outline: 2px solid rgba(37, 99, 235, .18); border-color: #4b7ee8; }
textarea { resize: vertical; min-height: 92px; line-height: 1.45; }
input[type="file"] { display: none; }
input[type="checkbox"],
input[type="radio"] { width: auto; min-height: auto; padding: 0; }

.app-header {
  height: 76px;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #101820;
  color: #fff;
  border-bottom: 3px solid var(--accent);
}

.brand-block { display: flex; align-items: center; gap: 12px; }
.brand-title-row { display: flex; align-items: center; gap: 9px; }
.version-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid #4b6477;
  border-radius: 999px;
  background: #20313e;
  color: #dceaf3;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.brand-mark {
  position: relative;
  width: 60px;
  height: 44px;
  flex: 0 0 auto;
  overflow: hidden;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 0 0 1px rgb(255 255 255 / 18%);
}
.brand-mark img {
  position: absolute;
  top: 0;
  left: -5px;
  width: 70px;
  height: 70px;
  max-width: none;
  object-fit: cover;
  object-position: center top;
}
.app-header h1 { margin: 0; font-size: 21px; line-height: 1.2; letter-spacing: 0; }
.app-header p { margin: 5px 0 0; color: #b9c4ce; font-size: 12px; }
.status-pill {
  min-width: 100px;
  padding: 7px 12px;
  border: 1px solid #40505e;
  border-radius: 999px;
  background: #1d2a35;
  color: #d7e5ef;
  text-align: center;
  font-size: 12px;
}

.required-note {
  margin-top: -5px;
  color: #b42318;
  font-size: 11px;
  line-height: 1.45;
}

.workspace {
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr);
  min-height: calc(100vh - 76px);
}

.settings-panel {
  background: #eef2f5;
  border-right: 1px solid var(--border);
  padding: 12px;
  overflow-y: auto;
}

.panel-block {
  margin-bottom: 10px;
  padding: 12px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 6px;
}

.panel-block h2,
.help-panel h2 {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.2;
}

.panel-block label,
.field-label {
  display: grid;
  gap: 5px;
  margin-top: 9px;
  color: #394652;
  font-size: 12px;
}
.panel-block > button { width: 100%; margin-top: 8px; }
#folderBtn,
#variantFolderBtn,
#finalizeMultiStyleBtn,
#detailFolderBtn {
  min-height: 34px;
  margin-top: 6px;
  padding: 5px 8px;
  font-size: 12px;
  line-height: 1.25;
}
.mode-block { position: sticky; top: 0; z-index: 3; }
.check-row { grid-template-columns: 18px 1fr !important; align-items: center; gap: 6px !important; }

.segmented {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border: 1px solid #cbd3dc;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}
.segmented label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  margin: 0;
  padding: 6px 8px;
  border-right: 1px solid #cbd3dc;
  cursor: pointer;
  color: #34424f;
}
.segmented label:last-child { border-right: 0; }
.segmented input { margin-right: 6px; }
.segmented label:has(input:checked) { background: #e4f4f2; color: #0f766e; font-weight: 650; }

.file-meta {
  margin-top: 7px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.warning-note {
  margin-top: 9px;
  padding: 8px;
  border-left: 3px solid var(--warning-border);
  background: var(--warning-bg);
  color: #72520c;
  font-size: 11px;
  line-height: 1.45;
}
.triple-input { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.size-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
.size-grid label {
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  margin: 0;
  padding: 5px 6px;
  border: 1px solid #d8dee5;
  border-radius: 4px;
  background: #f8fafb;
}
.size-price-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-top: 9px;
}
.size-price-grid label {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 5px;
  margin: 0;
  color: #394652;
  font-size: 12px;
}
.size-price-grid input { min-width: 0; }

.work-panel { min-width: 0; padding: 14px 16px 24px; overflow: hidden; }
.toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
}
.summary-group { display: flex; flex-direction: column; gap: 3px; }
.summary-group strong { font-size: 15px; }
.summary-group span { color: var(--muted); font-size: 11px; }
.toolbar-actions { display: flex; gap: 7px; }

.progress-panel {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px solid #b9d2ed;
  border-radius: 6px;
  background: #f1f7ff;
}
.progress-panel > div:first-child { display: flex; justify-content: space-between; font-size: 12px; }
.progress-track { height: 7px; margin-top: 7px; overflow: hidden; border-radius: 999px; background: #dce7f4; }
.progress-track span { display: block; width: 0; height: 100%; background: var(--blue); transition: width .15s ease; }

.stats-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.stats-strip > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 11px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 5px;
}
.stats-strip span { color: var(--muted); font-size: 11px; }
.stats-strip strong { font-size: 17px; }

.preview-strip {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  overflow-x: auto;
}
.preview-card {
  flex: 0 0 150px;
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 7px;
  align-items: center;
  padding: 7px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 5px;
}
.preview-card img { width: 50px; height: 50px; object-fit: cover; border-radius: 3px; background: #eef2f5; }
.preview-card strong,
.preview-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.preview-card strong { font-size: 11px; }
.preview-card span { margin-top: 4px; color: var(--muted); font-size: 10px; }

.table-wrap {
  margin-top: 10px;
  overflow: auto;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  max-height: calc(100vh - 350px);
}
table { width: 100%; min-width: 1580px; border-collapse: collapse; table-layout: fixed; }
th,
td { padding: 8px; border-bottom: 1px solid #e3e8ed; text-align: left; vertical-align: middle; font-size: 11px; }
th { position: sticky; top: 0; z-index: 2; background: #eef2f5; color: #36434f; font-weight: 650; }
th:nth-child(1) { width: 48px; }
th:nth-child(2) { width: 66px; }
th:nth-child(3) { width: 175px; }
th:nth-child(4) { width: 70px; }
th:nth-child(5) { width: 390px; }
th:nth-child(6) { width: 125px; }
th:nth-child(7) { width: 330px; }
th:nth-child(8) { width: 230px; }
th:nth-child(9) { width: 110px; }
tbody tr:hover { background: #f8fbfd; }
.row-thumb { width: 48px; height: 48px; object-fit: cover; border-radius: 3px; background: #edf1f4; }
.title-input { min-width: 100%; height: 34px; }
.color-chip { display: flex; align-items: center; gap: 6px; }
.color-dot { flex: 0 0 13px; width: 13px; height: 13px; border: 1px solid #aeb8c2; border-radius: 3px; }
.color-chip select { min-width: 90px; height: 32px; min-height: 32px; }
.variant-summary { display: grid; gap: 3px; min-width: 0; }
.variant-summary strong { color: #0f766e; font-size: 11px; }
.variant-summary span {
  display: block;
  max-width: 116px;
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.url-ok { color: #0f766e; font-weight: 650; }
.url-wait { color: #8a5d00; }
.url-error { color: #b42318; font-weight: 650; }
.image-detail-grid {
  display: grid;
  grid-template-columns: repeat(5, 68px);
  gap: 6px;
  align-items: start;
}
.image-detail-item {
  position: relative;
  display: grid;
  width: 68px;
  min-height: 86px;
  padding: 4px;
  gap: 2px;
  justify-items: center;
  overflow: hidden;
  background: #f8fafb;
  border: 1px solid var(--border);
  border-radius: 4px;
}
.image-detail-item img {
  width: 56px;
  height: 46px;
  object-fit: cover;
  background: #edf1f4;
  border-radius: 3px;
}
.image-detail-item.image-state-failed { background: #fff3f1; border-color: #dc6b63; }
.image-detail-item.image-state-success { background: #f0faf7; border-color: #83c7b2; }
.image-detail-item.image-state-uploading { background: #fff8e8; border-color: #d9ad52; }
.image-role,
.image-state-label {
  display: block;
  max-width: 58px;
  overflow: hidden;
  font-size: 9px;
  line-height: 1.2;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.image-role { color: #34424e; font-weight: 650; }
.image-state-label { color: var(--muted); }
.image-state-failed .image-state-label { color: #b42318; font-weight: 650; }
.image-state-success .image-state-label { color: #0f766e; }
.image-item-actions {
  display: flex;
  width: 58px;
  gap: 3px;
}
.image-thumbnail-preview {
  position: relative;
  display: block;
  width: 56px;
  height: 46px;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  background: #edf1f4;
  border: 0;
  border-radius: 4px;
  cursor: zoom-in;
}
.image-thumbnail-preview img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}
.image-preview-eye {
  position: absolute;
  right: 3px;
  bottom: 3px;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  color: #fff;
  background: rgba(8, 67, 55, .82);
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 999px;
  box-shadow: 0 2px 7px rgba(0, 0, 0, .18);
  pointer-events: none;
}
.image-preview-eye svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.image-thumbnail-preview:hover .image-preview-eye,
.image-thumbnail-preview:focus-visible .image-preview-eye { background: #08745b; transform: scale(1.08); }
.image-thumbnail-preview:focus-visible { outline: 2px solid #22a383; outline-offset: 2px; }
.product-main-preview { width: 84px; height: 84px; border-radius: 10px; }
.preview-strip-image { width: 50px; height: 50px; border-radius: 4px; }
.image-add-item {
  display: grid;
  min-height: 112px;
  padding: 8px;
  gap: 4px;
  place-items: center;
  align-content: center;
  color: #0b725c;
  background: #eff9f5;
  border: 1px dashed #6bbca4;
  border-radius: 7px;
}
.image-add-mark { font-size: 23px; line-height: 1; }
.image-add-item strong { font-size: 11px; }
.image-add-item small { color: #668078; font-size: 9px; }
.image-add-target { display: grid; gap: 2px; width: 100%; color: #3d645a; font-size: 9px; }
.image-add-target select { width: 100%; min-height: 26px; padding: 2px 4px; font-size: 9px; }
.image-add-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; width: 100%; }
.image-add-actions button {
  min-width: 0;
  min-height: 26px;
  padding: 3px 4px;
  color: #086c56;
  background: #fff;
  border: 1px solid #91cdbb;
  border-radius: 5px;
  font-size: 9px;
  font-weight: 700;
  cursor: pointer;
}
.image-add-actions button:hover { background: #ddf3eb; }
.image-add-actions button:disabled { color: #8a9893; background: #edf1ef; border-color: #d4dcda; cursor: not-allowed; }
.image-add-item-full { color: #71817c; background: #f3f5f4; border-color: #cfd8d5; }
.image-preview-modal[hidden] { display: none; }
.image-preview-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(8, 28, 24, .78);
  backdrop-filter: blur(5px);
}
.image-preview-dialog {
  position: relative;
  display: grid;
  width: min(1120px, 94vw);
  height: min(860px, 92vh);
  overflow: hidden;
  background: transparent;
}
.image-preview-floating-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  width: 38px;
  height: 38px;
  color: #fff;
  background: rgba(14, 26, 22, .72);
  border: 0;
  border-radius: 50%;
  font-size: 25px;
  cursor: pointer;
  box-shadow: 0 5px 18px rgba(0, 0, 0, .3);
}
.image-preview-stage {
  display: grid;
  min-height: 240px;
  height: 100%;
  padding: 0;
  place-items: center;
  overflow: hidden;
  background: transparent;
}
.image-preview-stage img {
  display: block;
  max-width: 100%;
  max-height: 92vh;
  object-fit: contain;
  background: transparent;
  border-radius: 0;
  box-shadow: 0 10px 32px rgba(27, 62, 52, .15);
  cursor: grab;
  touch-action: none;
  user-select: none;
  transform-origin: center center;
  will-change: transform;
}
.image-preview-stage img:active { cursor: grabbing; }
body.image-preview-open { overflow: hidden; }
@media (max-width: 640px) {
  .image-preview-modal { padding: 8px; }
  .image-preview-dialog { width: 100%; height: 96vh; }
}
.image-retry-button {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 22px;
  padding: 2px 5px;
  color: #fff;
  background: #b42318;
  border: 0;
  border-radius: 3px;
  font-size: 9px;
  cursor: pointer;
}
.image-state-pending .image-retry-button { background: #52616f; }
.image-delete-button {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 22px;
  padding: 2px 4px;
  color: #8b1e18;
  background: #fff;
  border: 1px solid #d78a84;
  border-radius: 3px;
  font-size: 9px;
  cursor: pointer;
}
.source-image-summary { color: var(--muted); font-size: 10px; }
.empty-state { height: 120px; text-align: center; color: var(--muted); }

.help-panel {
  margin-top: 10px;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
}
.help-panel ol { margin: 0; padding-left: 20px; color: #4b5966; font-size: 12px; line-height: 1.8; }

[hidden] { display: none !important; }

.auth-screen {
  display: grid;
  min-height: 100vh;
  place-items: center;
  padding: 32px;
  background: radial-gradient(circle at 20% 10%, #e4f7f2 0, transparent 38%), linear-gradient(145deg, #f6faf9, #eaf1f3);
}
.auth-card { width: min(440px, 100%); padding: 34px; background: #fff; border: 1px solid #d8e2e2; border-radius: 16px; box-shadow: 0 24px 60px rgba(26, 56, 62, .14); }
.auth-brand { display: flex; align-items: center; gap: 12px; padding-bottom: 22px; border-bottom: 1px solid #edf1f2; }
.auth-brand img { width: 46px; height: 46px; object-fit: contain; }
.auth-brand strong, .auth-brand span { display: block; }
.auth-brand strong { font-size: 18px; }
.auth-brand span { margin-top: 3px; color: var(--muted); font-size: 12px; }
.auth-card h1 { margin: 26px 0 8px; font-size: 24px; }
.auth-card p { margin: 0 0 20px; color: var(--muted); line-height: 1.6; }
.auth-card form { display: grid; gap: 14px; }
.auth-card label { display: grid; gap: 7px; color: #3d4b55; font-size: 13px; font-weight: 650; }
.auth-card input { height: 42px; padding: 0 12px; border: 1px solid #cfdadc; border-radius: 8px; font: inherit; }
.auth-card .remember-login-row { display: flex; align-items: center; gap: 9px; font-weight: 500; cursor: pointer; }
.auth-card .remember-login-row input { width: 17px; height: 17px; margin: 0; padding: 0; accent-color: #078779; }
.auth-card .remember-login-row span,
.auth-card .remember-login-row small { display: block; }
.auth-card .remember-login-row small { margin-top: 2px; color: #7b8c91; font-size: 11px; font-weight: 400; }
.auth-link-button { width: 100%; margin-top: 12px; padding: 8px; color: #087f72; background: transparent; border: 0; cursor: pointer; }
.portal-primary-button { min-height: 38px; padding: 0 18px; color: #fff; background: #087f72; border: 0; border-radius: 8px; font-weight: 700; cursor: pointer; }
.portal-primary-button:disabled { cursor: not-allowed; opacity: .45; }
.auth-message { min-height: 21px; margin-top: 12px; color: #087f72; font-size: 12px; }
.auth-message.error { color: #b42318; }
.plan-note { margin-top: 20px; padding: 12px; color: #4d5e66; background: #f3f8f7; border-radius: 8px; font-size: 12px; line-height: 1.6; }

.portal-shell { min-width: 1120px; min-height: 100vh; background: #f3f6f7; }
.portal-topbar { position: sticky; z-index: 20; top: 0; display: flex; height: 64px; align-items: center; justify-content: space-between; padding: 0 22px; color: #fff; background: #143b43; box-shadow: 0 2px 12px rgba(10, 35, 40, .18); }
.portal-logo { display: flex; align-items: center; gap: 10px; font-size: 17px; }
.portal-logo img { width: 36px; height: 36px; object-fit: contain; }
.portal-account { display: flex; align-items: center; gap: 14px; font-size: 12px; }
.portal-account button { padding: 7px 12px; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.42); border-radius: 6px; cursor: pointer; }
.portal-layout { display: grid; min-height: calc(100vh - 64px); grid-template-columns: 230px minmax(0, 1fr); }
.portal-sidebar { display: flex; flex-direction: column; padding: 18px 12px; background: #fff; border-right: 1px solid #dfe7e8; }
.portal-sidebar nav { display: grid; gap: 7px; }
.portal-nav-button { display: grid; gap: 3px; width: 100%; padding: 12px 14px; text-align: left; background: transparent; border: 0; border-radius: 8px; cursor: pointer; }
.portal-nav-button span { color: #273940; font-weight: 700; }
.portal-nav-button small { color: #7b8b91; }
.portal-nav-button.active { background: #eaf6f3; }
.portal-nav-button.active span { color: #087f72; }
.portal-nav-button:disabled { cursor: not-allowed; opacity: .45; }
.portal-plan-card { display: grid; gap: 5px; margin-top: auto; padding: 14px; color: #fff; background: linear-gradient(145deg, #0c8a7b, #126472); border-radius: 10px; }
.portal-plan-card span { font-size: 18px; font-weight: 750; }
.portal-plan-card small { opacity: .82; }
.portal-main { min-width: 0; padding: 24px; }
.portal-view { max-width: 1500px; margin: 0 auto; }
.portal-page-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.portal-page-heading h1 { margin: 0 0 5px; color: #1f3239; font-size: 26px; }
.portal-page-heading p { margin: 0; color: #738188; }
.dashboard-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dashboard-card, .feature-grid article, .admin-form-card, .admin-table-wrap, .coming-soon { background: #fff; border: 1px solid #dde6e7; border-radius: 12px; box-shadow: 0 8px 24px rgba(32, 66, 72, .05); }
.dashboard-card { display: grid; gap: 7px; padding: 20px; }
.dashboard-card span { color: #76868c; font-size: 12px; }
.dashboard-card strong { color: #20363d; font-size: 24px; }
.dashboard-card small { color: #6f8086; }
.dashboard-card small.expired { color: #b42318; }
.feature-grid { display: grid; gap: 16px; margin-top: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-grid article { padding: 20px; }
.feature-grid h2 { margin: 12px 0 8px; font-size: 18px; }
.feature-grid p { min-height: 48px; color: #6c7c82; line-height: 1.6; }
.feature-grid button, .coming-soon button { padding: 8px 13px; color: #087f72; background: #eef8f6; border: 1px solid #bcded8; border-radius: 6px; cursor: pointer; }
.feature-state { display: inline-block; padding: 4px 8px; border-radius: 99px; font-size: 11px; font-weight: 700; }
.feature-state.ready { color: #087f72; background: #ddf4ee; }
.feature-state.pending { color: #80611d; background: #fff3cd; }
.coming-soon { margin: 80px auto; padding: 55px; text-align: center; }
.coming-soon span { display: inline-block; padding: 5px 10px; color: #80611d; background: #fff3cd; border-radius: 99px; font-weight: 700; }
.coming-soon h1 { margin: 18px 0 9px; }
.coming-soon p { color: #738188; }
.converter-view { max-width: none; margin: -24px; background: #eef2f3; }
.converter-view .app-header { position: static; }
.admin-form-card { margin-bottom: 16px; padding: 18px; }
.account-card { max-width: 520px; padding: 24px; background: #fff; border: 1px solid #dde6e7; border-radius: 12px; }
.account-card form { display: grid; gap: 14px; }
.account-card label { display: grid; gap: 7px; color: #52656c; font-size: 13px; }
.account-card input, .account-card select { height: 40px; padding: 0 11px; border: 1px solid #ccd8da; border-radius: 7px; background: #fff; }
.account-card p { margin: 14px 0 0; color: #7a898f; font-size: 12px; }
.admin-user-form { display: grid; align-items: end; gap: 12px; grid-template-columns: 1fr 1fr 1.2fr .8fr 1.2fr auto; }
.admin-user-form label { display: grid; gap: 6px; color: #586970; font-size: 12px; }
.admin-user-form input, .admin-user-form select { height: 36px; padding: 0 9px; border: 1px solid #ccd8da; border-radius: 6px; background: #fff; }
.admin-form-actions { display: flex; gap: 7px; }
.admin-form-actions button { min-height: 36px; }
.admin-table-wrap { overflow: hidden; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table { min-width: 0; table-layout: auto; }
.compact-table th:nth-child(1) { width: 26%; }
.compact-table th:nth-child(2) { width: 18%; }
.compact-table th:nth-child(3) { width: 36%; }
.compact-table th:nth-child(4) { width: 20%; }
.admin-table th, .admin-table td { padding: 13px 15px; text-align: left; border-bottom: 1px solid #e7edee; }
.admin-table th { color: #61737a; background: #f8fafb; font-size: 12px; }
.admin-table td { color: #34474e; font-size: 12px; }
.admin-table td strong, .admin-table td small { display: block; }
.admin-table td small { margin-top: 4px; color: #849399; }
.admin-table button { margin-right: 6px; padding: 5px 8px; color: #087f72; background: #fff; border: 1px solid #b8d8d4; border-radius: 5px; cursor: pointer; }
.user-status { display: inline-block; padding: 3px 7px; border-radius: 99px; font-weight: 700; }
.user-status.active { color: #087f72; background: #ddf4ee; }
.user-status.disabled { color: #9a3412; background: #ffedd5; }
.payment-status { display: inline-block; min-width: 64px; padding: 4px 9px; text-align: center; border-radius: 99px; font-weight: 700; }
.payment-status.pending { color: #80611d; background: #fff3cd; }
.payment-status.approved { color: #087f72; background: #ddf4ee; }
.payment-status.rejected { color: #9a3412; background: #ffedd5; }
.membership-checkout { display: grid; gap: 18px; }
.membership-section { padding: 22px; background: #fff; border: 1px solid #dde6e7; border-radius: 12px; box-shadow: 0 8px 24px rgba(32, 66, 72, .05); }
.membership-section-title { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.membership-section-title > span { display: grid; flex: 0 0 28px; width: 28px; height: 28px; color: #fff; background: #087f72; border-radius: 50%; font-weight: 750; place-items: center; }
.membership-section-title h2 { margin: 1px 0 5px; color: #20363d; font-size: 19px; }
.membership-section-title p { margin: 0; color: #738188; font-size: 12px; line-height: 1.6; }
.membership-plan-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.membership-plan-card { position: relative; cursor: pointer; }
.membership-plan-card input { position: absolute; opacity: 0; pointer-events: none; }
.membership-plan-card > span { position: relative; display: grid; min-height: 130px; align-content: center; gap: 7px; padding: 17px; background: #f8fbfb; border: 2px solid #dce7e8; border-radius: 11px; transition: .16s ease; }
.membership-plan-card input:checked + span { background: #ecf8f5; border-color: #078779; box-shadow: 0 8px 20px rgba(7, 135, 121, .12); }
.membership-plan-card strong { color: #20363d; font-size: 17px; }
.membership-plan-card b { color: #087f72; font-size: 24px; }
.membership-plan-card small { color: #738188; line-height: 1.45; }
.membership-plan-card em { position: absolute; top: 9px; right: 9px; padding: 3px 7px; color: #9a5d00; background: #fff0c2; border-radius: 99px; font-size: 11px; font-style: normal; font-weight: 750; }
.membership-payment-grid { display: grid; align-items: start; gap: 18px; grid-template-columns: minmax(380px, .75fr) minmax(620px, 1.25fr); }
.payment-submit-card { display: grid; gap: 14px; }
.payment-submit-card > label { display: grid; gap: 7px; color: #52656c; font-size: 13px; font-weight: 650; }
.payment-submit-card input,
.payment-submit-card select { height: 42px; padding: 0 11px; border: 1px solid #ccd8da; border-radius: 7px; background: #fff; font: inherit; }
.payment-submit-card input[readonly] { color: #087f72; background: #f1f8f7; font-size: 19px; font-weight: 750; }
.payment-qr-card { padding: 14px; background: #f6faf9; border: 1px solid #dce7e8; border-radius: 10px; text-align: center; }
.payment-qr-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; color: #425a61; }
.payment-qr-heading span { color: #738188; font-size: 12px; }
.payment-qr-card img { display: block; width: min(100%, 310px); max-height: 350px; margin: 0 auto; object-fit: contain; border-radius: 8px; }
.payment-safety-note { margin: 0; padding: 11px 12px; color: #765718; background: #fff8df; border-radius: 8px; font-size: 12px; line-height: 1.6; }
.payment-tutorial-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.payment-tutorial-grid article { overflow: hidden; background: #f8fafb; border: 1px solid #e0e8e9; border-radius: 10px; }
.payment-tutorial-grid h3 { margin: 0; padding: 12px 14px; color: #294149; font-size: 14px; }
.payment-tutorial-grid img { display: block; width: 100%; height: 350px; object-fit: contain; background: #eef2f3; border-block: 1px solid #e0e8e9; }
.payment-tutorial-grid p { margin: 0; padding: 11px 14px 13px; color: #6d7e84; font-size: 12px; line-height: 1.6; }
.membership-history { margin-top: 22px; }
.membership-history .compact-table th:nth-child(1) { width: 18%; }
.membership-history .compact-table th:nth-child(2) { width: 16%; }
.membership-history .compact-table th:nth-child(3) { width: 18%; }
.membership-history .compact-table th:nth-child(4) { width: 32%; }
.membership-history .compact-table th:nth-child(5) { width: 16%; }
.payment-heading { margin-top: 28px; }
.fixed-media-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.fixed-media-card p { margin: 6px 0 0; color: #738188; }

.system-update-banner {
  position: fixed;
  z-index: 5000;
  top: 18px;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(680px, calc(100vw - 36px));
  padding: 14px 16px;
  color: #15383e;
  background: #fff;
  border: 1px solid #b9d9d5;
  border-radius: 12px;
  box-shadow: 0 16px 42px rgba(17, 54, 61, .22);
  transform: translateX(-50%);
}
.system-update-banner[hidden] { display: none; }
.system-update-banner strong,
.system-update-banner span { display: block; }
.system-update-banner strong { margin-bottom: 4px; font-size: 15px; }
.system-update-banner span { color: #61757b; font-size: 13px; }
.system-update-actions { display: flex; flex: 0 0 auto; gap: 8px; margin-left: 18px; }
.system-update-actions button { min-height: 36px; padding: 0 13px; border-radius: 7px; cursor: pointer; }
.system-update-later { color: #547078; background: #fff; border: 1px solid #cbd9dc; }
.system-update-now { color: #fff; background: #078779; border: 1px solid #078779; font-weight: 700; }

@media (max-width: 1350px) {
  body { min-width: 1080px; }
  .workspace { grid-template-columns: 288px minmax(0, 1fr); }
  .settings-panel { padding: 10px; }
}

/* 3.21 平台框架：双侧可收缩、会员权益与饱满工作台 */
.portal-shell {
  --sidebar-width: 272px;
  background-color: #020909;
  background-image: linear-gradient(rgba(2, 10, 10, .58), rgba(2, 10, 10, .77)), url("./assets/platform/feiyu-tech-background-v1.png");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}
.portal-shell::before { display: none; }
.portal-topbar { height: 72px; padding: 0 20px 0 18px; background: rgba(2, 9, 9, .9); border-bottom: 1px solid rgba(87, 192, 169, .18); backdrop-filter: blur(20px); }
.portal-topbar-left { display: flex; align-items: center; gap: 13px; }
.portal-topbar-left > div { display: grid; gap: 2px; }
.portal-topbar-left strong { color: #f3faf8; font-size: 15px; letter-spacing: .04em; }
.portal-topbar-left small { color: #6e9189; font-size: 10px; letter-spacing: .14em; }
.shell-icon-button { display: grid; align-content: center; gap: 4px; width: 38px; height: 38px; padding: 9px; color: #d9ebe7; background: rgba(9, 30, 28, .72); border: 1px solid rgba(92, 190, 168, .24); border-radius: 11px; }
.shell-icon-button span { display: block; width: 17px; height: 1px; background: currentColor; transition: width .2s; }
.shell-icon-button span:nth-child(2) { width: 12px; }
.portal-account { margin-left: auto; }
.focus-mode-button { min-height: 35px; padding: 0 14px; color: #b7ccc7; background: rgba(7, 25, 23, .72); border: 1px solid rgba(93, 186, 166, .24); border-radius: 10px; }
.focus-mode-button.active { color: var(--portal-green); border-color: rgba(47, 229, 190, .55); box-shadow: 0 0 20px rgba(26, 211, 173, .08); }
.platform-menu-button { display: grid; grid-template-columns: repeat(2, 7px); gap: 4px; align-content: center; justify-content: center; width: 42px; height: 42px; padding: 0; background: radial-gradient(circle, rgba(30, 220, 181, .22), rgba(6, 24, 23, .86)); border: 1px solid rgba(80, 224, 193, .42); border-radius: 50%; box-shadow: 0 0 22px rgba(29, 218, 178, .13); }
.platform-menu-button span { width: 7px; height: 7px; background: linear-gradient(135deg, #31e9c4, #c7a856); border-radius: 2px; box-shadow: 0 0 8px currentColor; }
.portal-layout { grid-template-columns: var(--sidebar-width) minmax(0, 1fr); min-height: calc(100vh - 72px); transition: grid-template-columns .28s ease; }
.portal-sidebar { position: relative; top: auto; height: calc(100vh - 72px); padding: 0 13px 14px; background: rgba(3, 12, 12, .88); border-right: 1px solid rgba(77, 172, 153, .2); backdrop-filter: blur(24px); overflow-x: hidden; }
.sidebar-brand { display: flex; align-items: center; gap: 11px; min-height: 112px; padding: 15px 10px; border-bottom: 1px solid rgba(83, 157, 143, .13); }
.sidebar-brand .portal-logo-orbit { flex: 0 0 62px; width: 62px; height: 62px; background: rgba(255,255,255,.96); border: 1px solid rgba(222,188,104,.6); border-radius: 16px; box-shadow: 0 0 26px rgba(21, 217, 176, .13); overflow: hidden; }
.sidebar-brand .portal-logo-orbit::before { inset: -7px; }
.sidebar-brand .portal-logo-orbit img { width: 100%; height: 100%; border-radius: 0; object-fit: cover; transform: scale(1.28); }
.sidebar-brand > div { min-width: 0; display: grid; gap: 3px; }
.sidebar-brand strong { color: #e4c778; font-size: 20px; letter-spacing: .08em; white-space: nowrap; }
.sidebar-brand small { color: #72938b; font-size: 10px; letter-spacing: .18em; white-space: nowrap; }
.portal-sidebar nav { display: grid; gap: 17px; padding-top: 14px; overflow-x: hidden; overflow-y: auto; }
.portal-nav-group { display: grid; gap: 5px; }
.portal-nav-group > span { padding: 0 12px 4px; color: #526f69; font-size: 10px; letter-spacing: .16em; white-space: nowrap; }
.portal-nav-button { min-height: 53px; padding: 9px 12px; }
.portal-nav-button svg { flex-basis: 22px; width: 22px; height: 22px; }
.portal-nav-button > span { white-space: nowrap; }
.portal-plan-card { position: sticky; bottom: 0; min-height: 88px; margin-top: 18px; background: linear-gradient(145deg, rgba(10, 43, 38, .92), rgba(6, 25, 23, .95)); backdrop-filter: blur(16px); }
.portal-main { position: relative; height: calc(100vh - 72px); padding: 38px 42px 50px; background: radial-gradient(circle at 74% 18%, rgba(22, 190, 155, .08), transparent 26%); overflow: auto; }
.portal-main::before { position: fixed; inset: 72px 0 0 var(--sidebar-width); z-index: -1; content: ""; background: linear-gradient(100deg, rgba(2,10,10,.36), rgba(2,10,10,.02), rgba(2,10,10,.2)); transition: left .28s ease; }
.portal-view[data-portal-page="dashboard"] { max-width: 1560px; margin: 0 auto; }
.dashboard-heading { min-height: 112px; align-items: center; }
.dashboard-heading .eyebrow, .membership-page-heading .eyebrow { display: block; margin-bottom: 7px; color: #36ddbc; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.dashboard-heading h1 { font-size: clamp(38px, 4vw, 60px); letter-spacing: .02em; text-shadow: 0 0 30px rgba(255,255,255,.05); }
.dashboard-heading p { font-size: 16px; }
.portal-action-button { min-width: 235px; min-height: 62px; font-size: 17px; box-shadow: 0 0 0 1px rgba(181,255,237,.55), 0 0 32px rgba(37,228,188,.3), inset 0 0 20px rgba(255,255,255,.15); }
.dashboard-grid { gap: 18px; }
.dashboard-card { min-height: 182px; padding: 27px 28px; background: linear-gradient(140deg, rgba(12, 32, 30, .8), rgba(4, 16, 15, .72)); border-color: rgba(139, 211, 195, .42); border-radius: 16px; box-shadow: inset 0 1px rgba(255,255,255,.08), 0 18px 45px rgba(0,0,0,.22); backdrop-filter: blur(18px); }
.dashboard-card::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(115deg, rgba(255,255,255,.05), transparent 24%, transparent 75%, rgba(38, 223, 185, .04)); border-radius: inherit; }
.dashboard-icon { flex-basis: 70px; width: 70px; height: 70px; box-shadow: 0 0 24px rgba(36,225,187,.16), inset 0 0 18px rgba(36,225,187,.08); }
.dashboard-card strong { font-size: clamp(26px, 2.25vw, 39px); }
.dashboard-section-title { margin: 32px 0 17px; }
.expanded-tools { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.expanded-tools .feature-card { min-height: 270px; padding: 23px; background: linear-gradient(145deg, rgba(8, 27, 25, .82), rgba(4, 15, 15, .78)); border-radius: 16px; backdrop-filter: blur(18px); box-shadow: inset 0 1px rgba(255,255,255,.06), 0 18px 45px rgba(0,0,0,.22); }
.expanded-tools .feature-card.primary-feature { box-shadow: inset 0 1px rgba(255,255,255,.08), 0 0 30px rgba(31, 219, 180, .08), 0 18px 45px rgba(0,0,0,.22); }
.dashboard-lower-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 18px; margin-top: 18px; }
.platform-info-panel { padding: 24px; background: linear-gradient(145deg, rgba(8, 27, 25, .86), rgba(3, 14, 14, .8)); border: 1px solid rgba(86, 179, 160, .26); border-radius: 16px; box-shadow: inset 0 1px rgba(255,255,255,.05), 0 18px 45px rgba(0,0,0,.2); backdrop-filter: blur(18px); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.panel-heading span { color: #6e9289; font-size: 11px; letter-spacing: .12em; }
.panel-heading h2 { margin: 4px 0 0; color: #eef8f5; font-size: 20px; }
.panel-heading button { padding: 9px 14px; color: #28dbb7; background: rgba(12, 57, 49, .48); border: 1px solid rgba(41, 215, 180, .36); border-radius: 10px; }
.panel-heading > b { padding: 6px 10px; color: #e6c875; background: rgba(208, 170, 66, .08); border: 1px solid rgba(222, 185, 86, .25); border-radius: 999px; }
.mini-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.mini-stat-grid article { min-height: 112px; padding: 16px; background: rgba(4, 17, 16, .65); border: 1px solid rgba(79, 160, 144, .18); border-radius: 12px; }
.mini-stat-grid span, .mini-stat-grid small { display: block; color: #6f8c86; font-size: 11px; }
.mini-stat-grid strong { display: block; margin: 9px 0 6px; color: #2ce4c0; font-size: 25px; }
.update-panel ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.update-panel li { display: grid; grid-template-columns: 125px 1fr; gap: 12px; padding: 10px 12px; background: rgba(4, 17, 16, .56); border-left: 2px solid rgba(38, 216, 180, .5); border-radius: 6px; }
.update-panel li strong { color: #d8ece7; font-size: 12px; }
.update-panel li span { color: #76908a; font-size: 12px; line-height: 1.6; }

/* 收起导航 */
.portal-shell.sidebar-collapsed { --sidebar-width: 78px; }
.sidebar-collapsed .portal-sidebar { padding-inline: 9px; }
.sidebar-collapsed .sidebar-brand { justify-content: center; min-height: 82px; padding: 10px 0; }
.sidebar-collapsed .sidebar-brand .portal-logo-orbit { flex-basis: 48px; width: 48px; height: 48px; }
.sidebar-collapsed .sidebar-brand > div,
.sidebar-collapsed .portal-nav-group > span,
.sidebar-collapsed .portal-nav-button > span,
.sidebar-collapsed .portal-plan-card > div { display: none; }
.sidebar-collapsed .portal-sidebar nav { gap: 10px; overflow: visible; }
.sidebar-collapsed .portal-nav-button { justify-content: center; min-height: 52px; padding: 10px; }
.sidebar-collapsed .portal-nav-button svg { margin: 0; }
.sidebar-collapsed .portal-nav-button::after { position: fixed; left: 70px; z-index: 100; display: none; min-width: 100px; padding: 7px 10px; content: attr(title); color: #ecf8f5; background: #0b1e1c; border: 1px solid rgba(58, 210, 179, .3); border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,.35); font-size: 12px; }
.sidebar-collapsed .portal-nav-button:hover::after { display: block; }
.sidebar-collapsed .portal-plan-card { justify-content: center; min-height: 62px; padding: 10px; }
.sidebar-collapsed .plan-diamond { margin: 0; }

/* 专注模式 */
.portal-shell.focus-mode { --sidebar-width: 0px; }
.portal-shell.focus-mode .portal-sidebar { width: 0; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.portal-shell.focus-mode .portal-main { padding: 20px; }
.portal-shell.focus-mode .converter-view { max-width: none; margin: -20px; }
.portal-shell.focus-mode .portal-topbar-left > div { display: none; }

/* 右侧账号与服务面板 */
.account-panel-backdrop { position: fixed; inset: 0; z-index: 199; background: rgba(0, 5, 5, .58); opacity: 0; backdrop-filter: blur(3px); transition: opacity .22s; }
.account-panel-backdrop.visible { opacity: 1; }
.account-service-panel { position: fixed; top: 0; right: 0; z-index: 200; width: min(430px, 94vw); height: 100vh; padding: 20px; color: #dcebe7; background: linear-gradient(155deg, rgba(12, 27, 28, .98), rgba(4, 13, 14, .99)); border-left: 1px solid rgba(83, 220, 191, .28); box-shadow: -28px 0 70px rgba(0,0,0,.46); overflow-y: auto; transform: translateX(104%); transition: transform .26s ease; }
.account-service-panel.open { transform: translateX(0); }
.account-panel-header { display: flex; align-items: center; justify-content: space-between; padding: 5px 2px 17px; border-bottom: 1px solid rgba(103, 171, 158, .16); }
.account-panel-header > div { display: grid; gap: 3px; }
.account-panel-header span, .account-panel-title span { color: #718d87; font-size: 10px; letter-spacing: .14em; }
.account-panel-header strong { color: #f2faf8; font-size: 19px; }
.account-panel-header button { width: 36px; height: 36px; padding: 0; color: #a9beb9; background: rgba(17, 36, 35, .75); border: 1px solid rgba(100, 173, 159, .22); border-radius: 10px; font-size: 24px; }
.account-profile-card { display: flex; align-items: center; gap: 14px; margin: 18px 0; padding: 16px; background: linear-gradient(135deg, rgba(17, 62, 54, .58), rgba(10, 28, 27, .76)); border: 1px solid rgba(57, 205, 174, .25); border-radius: 14px; }
.account-profile-card img { width: 54px; height: 54px; background: #fff; border-radius: 14px; object-fit: cover; }
.account-profile-card > div { display: grid; gap: 4px; min-width: 0; }
.account-profile-card span, .account-profile-card small { color: #78948e; font-size: 11px; }
.account-profile-card strong { overflow: hidden; color: #2ce4c0; font-size: 17px; text-overflow: ellipsis; }
.account-panel-group { margin-top: 14px; padding: 15px; background: rgba(13, 27, 28, .78); border: 1px solid rgba(107, 153, 148, .17); border-radius: 14px; }
.account-panel-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.account-panel-title > b { color: #dfc374; font-size: 11px; }
.account-panel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.account-panel-grid button { display: grid; gap: 4px; min-height: 66px; padding: 12px; text-align: left; background: rgba(23, 39, 40, .76); border: 1px solid rgba(113, 162, 157, .16); border-radius: 10px; }
.account-panel-grid button:not(:disabled):hover { border-color: rgba(48, 222, 187, .45); background: rgba(20, 62, 55, .48); }
.account-panel-grid b { color: #e8f1ef; font-size: 13px; }
.account-panel-grid small { overflow: hidden; color: #6f8580; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.drawer-membership-summary { display: grid; gap: 7px; }
.drawer-membership-summary > span { color: #718b85; font-size: 11px; }
.drawer-membership-summary > strong { color: #e1c471; font-size: 26px; }
.drawer-membership-summary > small { color: #8ba19c; }
.drawer-membership-summary button { margin-top: 6px; padding: 11px; color: #061311; background: linear-gradient(90deg, #24dfba, #58e4c5); border: 0; border-radius: 10px; font-weight: 800; }
.update-drawer-card ul { display: grid; gap: 8px; margin: 0; padding-left: 18px; color: #879b96; font-size: 11px; line-height: 1.55; }
.drawer-logout-button { width: 100%; margin: 15px 0 4px; padding: 12px; color: #f38d93; background: rgba(102, 25, 32, .18); border: 1px solid rgba(211, 78, 88, .35); border-radius: 11px; }

/* 会员权益对比 */
.membership-page-heading { align-items: end; }
.membership-current-badge { display: grid; gap: 4px; min-width: 155px; padding: 12px 17px; background: rgba(8, 36, 32, .72); border: 1px solid rgba(44, 215, 180, .28); border-radius: 13px; }
.membership-current-badge span { color: #718f88; font-size: 10px; }
.membership-current-badge strong { color: #2ce2be; font-size: 18px; }
.membership-benefit-comparison { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.benefit-plan { position: relative; min-height: 350px; padding: 23px; background: linear-gradient(145deg, rgba(12, 29, 28, .9), rgba(5, 16, 16, .88)); border: 1px solid rgba(92, 164, 151, .22); border-radius: 16px; box-shadow: 0 18px 45px rgba(0,0,0,.2); }
.benefit-plan.member-plan { background: radial-gradient(circle at 88% 4%, rgba(46, 229, 190, .2), transparent 32%), linear-gradient(145deg, rgba(15, 62, 53, .95), rgba(5, 23, 21, .94)); border-color: rgba(52, 229, 191, .58); box-shadow: 0 0 35px rgba(35, 217, 179, .1), 0 20px 50px rgba(0,0,0,.26); }
.benefit-plan.future-plan { background: radial-gradient(circle at 88% 4%, rgba(222, 184, 82, .12), transparent 32%), linear-gradient(145deg, rgba(34, 31, 19, .88), rgba(12, 18, 16, .91)); border-color: rgba(210, 173, 75, .32); }
.recommended-badge { position: absolute; top: -12px; left: 50%; padding: 5px 13px; color: #06211b; background: #33e3bf; border-radius: 999px; font-size: 10px; font-weight: 800; transform: translateX(-50%); }
.benefit-plan-head { display: grid; gap: 8px; padding-bottom: 18px; border-bottom: 1px dashed rgba(124, 170, 160, .2); }
.benefit-plan-head span { color: #d7e6e2; font-size: 19px; font-weight: 800; }
.benefit-plan-head strong { color: #f3fbf9; font-size: 34px; }
.member-plan .benefit-plan-head strong { color: #31e6c1; }
.future-plan .benefit-plan-head strong { color: #e2c46f; font-size: 27px; }
.benefit-plan-head em { color: #829892; font-size: 12px; font-style: normal; }
.benefit-plan-head small { color: #718983; }
.benefit-plan ul { display: grid; gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.benefit-plan li { display: flex; gap: 9px; color: #aebfba; font-size: 12px; line-height: 1.5; }
.benefit-plan li b { color: #2ce1bd; }
.benefit-plan li.muted { color: #60726e; }
.benefit-plan li.muted b, .future-plan li b { color: #d9b957; }

@media (max-width: 1180px) {
  .portal-version, .portal-account > i { display: none; }
  .expanded-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-lower-grid, .membership-benefit-comparison { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .portal-shell { --sidebar-width: 72px; }
  .portal-topbar { padding-inline: 10px; }
  .portal-topbar-left > div, .portal-login-account, .focus-mode-button { display: none; }
  .portal-account-state { font-size: 10px; }
  .portal-sidebar { padding-inline: 8px; }
  .sidebar-brand > div, .portal-nav-group > span, .portal-nav-button > span, .portal-plan-card > div { display: none; }
  .sidebar-brand { justify-content: center; min-height: 76px; padding: 8px 0; }
  .sidebar-brand .portal-logo-orbit { flex-basis: 46px; width: 46px; height: 46px; }
  .portal-nav-button { justify-content: center; padding: 8px; }
  .portal-main { padding: 24px 14px 34px; }
  .dashboard-grid, .expanded-tools, .mini-stat-grid { grid-template-columns: 1fr; }
  .dashboard-heading { align-items: flex-start; }
  .portal-action-button { min-width: 100%; }
  .update-panel li { grid-template-columns: 1fr; }
}

/* 自动采集 */
.collector-shell { color: #18302a; }
.collector-shell,
.collector-tab-panel { min-width: 0; }
.collector-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.collector-heading > div:first-child > span { display: block; margin-bottom: 6px; color: #087b5c; font-size: 12px; font-weight: 800; }
.collector-heading h1 { margin: 0 0 7px; color: #102b25; font-size: 26px; letter-spacing: 0; }
.collector-heading p { margin: 0; color: #61736c; font-size: 13px; line-height: 1.6; }
.collector-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.collector-heading-actions button,
.collector-toolbar button,
.collector-section-heading button,
.collector-dialog-actions button,
.collector-row-actions button,
.collector-pagination button { min-height: 36px; padding: 0 14px; border: 1px solid #cbd9d5; border-radius: 6px; background: #fff; color: #24443c; font: inherit; font-weight: 700; cursor: pointer; }
.collector-heading-actions button:hover,
.collector-toolbar button:hover,
.collector-section-heading button:hover,
.collector-dialog-actions button:hover,
.collector-row-actions button:hover,
.collector-pagination button:hover { border-color: #159777; color: #087b5c; }
.collector-heading-actions button:disabled,
.collector-toolbar button:disabled,
.collector-row-actions button:disabled,
.collector-pagination button:disabled { cursor: not-allowed; opacity: .48; }
.collector-runtime-status { min-height: 34px; display: inline-flex; align-items: center; padding: 0 11px; border: 1px solid #e1b56c; border-radius: 6px; background: #fff8e9; color: #8b5c12; font-size: 12px; font-weight: 800; }
.collector-runtime-status.ready { border-color: #a7d8c9; background: #edf9f5; color: #087b5c; }
.collector-notice { margin-bottom: 14px; padding: 11px 14px; border: 1px solid #b7d8ed; border-radius: 6px; background: #eff8fe; color: #23536e; font-size: 13px; }
.collector-notice.warning { border-color: #ead09e; background: #fff8e9; color: #7a5417; }
.collector-notice.error { border-color: #efb3b1; background: #fff2f1; color: #9b2925; }
.collector-notice.success { border-color: #a7d8c9; background: #edf9f5; color: #087b5c; }
.collector-tabs { display: flex; gap: 3px; min-height: 42px; margin-bottom: 18px; border-bottom: 1px solid #dce6e2; overflow-x: auto; overflow-y: hidden; }
.collector-tabs button { position: relative; min-width: 92px; padding: 0 16px 12px; border: 0; background: transparent; color: #63756f; font: inherit; font-weight: 800; cursor: pointer; white-space: nowrap; }
.collector-tabs button::after { content: ""; position: absolute; right: 12px; bottom: -1px; left: 12px; height: 3px; background: transparent; }
.collector-tabs button.active { color: #087b5c; }
.collector-tabs button.active::after { background: #0b9573; }
.collector-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 10px; margin-bottom: 14px; }
.collector-stat-grid article { min-width: 0; min-height: 106px; padding: 17px 18px; border: 1px solid #dce6e2; border-radius: 7px; background: #fff; }
.collector-stat-grid article:nth-child(2) { border-top: 3px solid #0b9573; }
.collector-stat-grid article:nth-child(3) { border-top: 3px solid #db9a31; }
.collector-stat-grid article:nth-child(4) { border-top: 3px solid #4d7fb2; }
.collector-stat-grid span { display: block; color: #64766f; font-size: 12px; font-weight: 700; }
.collector-stat-grid strong { display: block; margin: 7px 0 5px; color: #173d33; font-size: 26px; line-height: 1; }
.collector-stat-grid small { display: block; color: #8b9893; font-size: 11px; }
.collector-rule-band { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); margin-bottom: 18px; padding: 13px 0; border-top: 1px solid #dce6e2; border-bottom: 1px solid #dce6e2; }
.collector-rule-band div { min-width: 0; padding: 2px 18px; border-right: 1px solid #e4ebe8; }
.collector-rule-band div:last-child { border-right: 0; }
.collector-rule-band span { display: block; margin-bottom: 4px; color: #788983; font-size: 11px; }
.collector-rule-band strong { display: block; color: #23463d; font-size: 13px; line-height: 1.45; }
.collector-section { margin-top: 16px; }
.collector-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.collector-section-heading h2 { margin: 0 0 3px; color: #173d33; font-size: 17px; letter-spacing: 0; }
.collector-section-heading p { margin: 0; color: #81908b; font-size: 11px; }
.collector-toolbar { display: grid; grid-template-columns: minmax(150px, 230px) minmax(100px, max-content) 1fr max-content; align-items: center; gap: 9px; margin-bottom: 12px; }
.collector-toolbar:has(#collectorProductTaskSelect) { grid-template-columns: minmax(180px, 260px) minmax(120px, 160px) minmax(120px, 160px) max-content 1fr max-content; }
.collector-toolbar select,
.collector-field input,
.collector-keyword-fields input { width: 100%; min-height: 38px; padding: 0 11px; border: 1px solid #cbd9d5; border-radius: 6px; background: #fff; color: #213d36; font: inherit; outline: none; }
.collector-toolbar select:focus,
.collector-field input:focus,
.collector-keyword-fields input:focus { border-color: #159777; box-shadow: 0 0 0 3px rgba(21, 151, 119, .1); }
.collector-table-wrap { width: 100%; border: 1px solid #dce6e2; border-radius: 7px; background: #fff; overflow: auto; }
.collector-table-wrap table { width: 100%; min-width: 920px; border-collapse: collapse; table-layout: auto; }
.collector-table-wrap th { padding: 11px 12px; border-bottom: 1px solid #dce6e2; background: #f5f8f7; color: #667771; font-size: 11px; font-weight: 800; text-align: left; white-space: nowrap; }
.collector-table-wrap td { padding: 12px; border-bottom: 1px solid #e8eeec; color: #2c4840; font-size: 12px; vertical-align: middle; }
.collector-table-wrap tr:last-child td { border-bottom: 0; }
.collector-table-wrap td > strong { display: block; max-width: 310px; margin-bottom: 3px; overflow: hidden; color: #183e34; text-overflow: ellipsis; white-space: nowrap; }
.collector-table-wrap td > small { display: block; color: #85938f; font-size: 10px; line-height: 1.45; }
.collector-badge,
.collector-product-status,
.collector-kind { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 5px; background: #edf2f0; color: #536761; font-size: 10px; font-weight: 800; white-space: nowrap; }
.collector-badge.running,
.collector-product-status.submitted { background: #edf6ff; color: #2e6594; }
.collector-badge.queued,
.collector-product-status.pending_collect { background: #fff7e5; color: #8b5c12; }
.collector-badge.completed,
.collector-product-status.success,
.collector-kind.sold_required { background: #eaf8f3; color: #087b5c; }
.collector-badge.manual_action,
.collector-badge.failed,
.collector-product-status.failed { background: #fff0ef; color: #a33430; }
.collector-badge.paused,
.collector-badge.cancelled,
.collector-product-status.duplicate,
.collector-product-status.skipped_style { background: #f1f3f4; color: #65716d; }
.collector-kind.zero_sales_supplement { background: #fff2df; color: #9a6212; }
.collector-progress { display: flex; align-items: center; gap: 7px; min-width: 105px; }
.collector-progress > span { width: 64px; height: 6px; border-radius: 4px; background: #e5eeeb; overflow: hidden; }
.collector-progress i { display: block; height: 100%; border-radius: 4px; background: #159777; }
.collector-progress small { color: #71827c; font-size: 10px; white-space: nowrap; }
.collector-row-actions { display: flex; gap: 5px; }
.collector-row-actions button { min-height: 28px; padding: 0 9px; font-size: 11px; }
.collector-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 12px; }
.collector-pagination span { color: #657771; font-size: 12px; }
.collector-empty { padding: 32px 18px; color: #87958f; font-size: 12px; text-align: center; }
.collector-product-cell { display: grid; grid-template-columns: 50px minmax(180px, 1fr); align-items: center; gap: 10px; min-width: 270px; }
.collector-product-cell img,
.collector-image-empty { width: 50px; height: 50px; border: 1px solid #dde6e3; border-radius: 5px; background: #f3f6f5; object-fit: cover; }
.collector-image-empty { display: grid; place-items: center; color: #8b9893; font-size: 10px; }
.collector-product-cell a { display: -webkit-box; overflow: hidden; color: #174f40; font-weight: 800; line-height: 1.45; text-decoration: none; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.collector-product-cell a:hover { color: #087b5c; text-decoration: underline; }
.collector-product-cell small { display: block; margin-top: 3px; color: #87958f; font-size: 9px; }
.collector-log-list { border-top: 1px solid #dce6e2; }
.collector-log-list article { display: grid; grid-template-columns: 120px 54px minmax(0, 1fr); align-items: start; gap: 12px; padding: 12px 4px; border-bottom: 1px solid #e4ebe8; }
.collector-log-list time { color: #7d8d87; font-size: 11px; }
.collector-log-list article > span { color: #26765f; font-size: 10px; font-weight: 800; }
.collector-log-list article.warning > span { color: #9a6212; }
.collector-log-list article.error > span { color: #a33430; }
.collector-log-list strong { display: block; color: #29473f; font-size: 12px; }
.collector-log-list small { display: block; margin-top: 3px; color: #8c9894; font-size: 9px; }
.collector-setting-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.collector-setting-grid > section { border: 1px solid #dce6e2; border-radius: 7px; background: #fff; }
.collector-setting-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 17px; border-bottom: 1px solid #e3ebe8; }
.collector-setting-head h2 { margin: 0; color: #183e34; font-size: 16px; }
.collector-setting-head span { color: #8a641d; font-size: 11px; font-weight: 800; }
.collector-setting-head span.ready { color: #087b5c; }
.collector-setting-grid dl { margin: 0; }
.collector-setting-grid dl div { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; padding: 8px 17px; border-bottom: 1px solid #edf1f0; }
.collector-setting-grid dl div:last-child { border-bottom: 0; }
.collector-setting-grid dt { color: #71827c; font-size: 12px; }
.collector-setting-grid dd { margin: 0; color: #28483f; font-size: 12px; font-weight: 800; text-align: right; }
.collector-dialog { width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: 0; border-radius: 8px; background: #fff; box-shadow: 0 24px 70px rgba(24, 48, 42, .24); overflow: auto; }
.collector-dialog::backdrop { background: rgba(18, 34, 30, .52); }
.collector-dialog form { padding: 20px; }
.collector-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.collector-dialog-head span { display: block; margin-bottom: 4px; color: #087b5c; font-size: 11px; font-weight: 800; }
.collector-dialog-head h2 { margin: 0; color: #183e34; font-size: 21px; letter-spacing: 0; }
.collector-dialog-head button { width: 34px; height: 34px; border: 1px solid #d5dfdc; border-radius: 6px; background: #fff; color: #62736d; font-size: 22px; cursor: pointer; }
.collector-field { display: block; margin-bottom: 15px; }
.collector-field > span,
.collector-neckline-field legend,
.collector-keyword-fields legend { display: block; margin-bottom: 7px; color: #354f48; font-size: 12px; font-weight: 800; }
.collector-neckline-field,
.collector-keyword-fields { margin: 0 0 15px; padding: 0; border: 0; }
.collector-neckline-field { display: flex; gap: 10px; }
.collector-neckline-field label { display: flex; align-items: center; gap: 8px; min-width: 140px; min-height: 38px; padding: 0 12px; border: 1px solid #cbd9d5; border-radius: 6px; color: #29473f; font-size: 12px; cursor: pointer; }
.collector-neckline-field input { width: 16px; height: 16px; accent-color: #0b9573; }
.collector-keyword-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.collector-keyword-fields legend { grid-column: 1 / -1; }
.collector-keyword-fields label { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; }
.collector-keyword-fields label > span { display: grid; height: 38px; place-items: center; border: 1px solid #cbd9d5; border-right: 0; border-radius: 6px 0 0 6px; background: #f3f7f5; color: #61736c; font-size: 11px; }
.collector-keyword-fields input { border-radius: 0 6px 6px 0; }
.collector-keyword-fields label:last-child { grid-column: 1 / -1; }
.collector-dialog-summary { display: grid; grid-template-columns: auto auto 1px auto auto; align-items: center; justify-content: start; gap: 10px; padding: 11px 13px; border: 1px solid #dce6e2; border-radius: 6px; background: #f7faf9; }
.collector-dialog-summary span { color: #70817b; font-size: 11px; }
.collector-dialog-summary strong { color: #173e34; font-size: 12px; }
.collector-dialog-summary i { width: 1px; height: 20px; background: #d7e1de; }
.collector-form-message { min-height: 20px; margin: 8px 0 0; color: #087b5c; font-size: 11px; }
.collector-form-message.error { color: #a33430; }
.collector-dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 8px; }

@media (max-width: 980px) {
  .collector-heading { flex-direction: column; }
  .collector-heading-actions { justify-content: flex-start; }
  .collector-stat-grid,
  .collector-rule-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .collector-rule-band div:nth-child(2) { border-right: 0; }
  .collector-rule-band div:nth-child(-n+2) { padding-bottom: 10px; }
  .collector-setting-grid { grid-template-columns: 1fr; }
  .collector-toolbar:has(#collectorProductTaskSelect) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .collector-toolbar:has(#collectorProductTaskSelect) #collectorProductTaskSelect { grid-column: 1 / -1; }
  .collector-toolbar:has(#collectorProductTaskSelect) > span { display: none; }
}

@media (max-width: 650px) {
  .collector-heading h1 { font-size: 22px; }
  .collector-heading-actions { width: 100%; }
  .collector-runtime-status { width: 100%; }
  .collector-stat-grid,
  .collector-rule-band { grid-template-columns: 1fr; }
  .collector-rule-band div { padding: 9px 4px; border-right: 0; border-bottom: 1px solid #e4ebe8; }
  .collector-rule-band div:last-child { border-bottom: 0; }
  .collector-toolbar { display: flex; align-items: stretch; flex-direction: column; }
  .collector-toolbar:has(#collectorProductTaskSelect) { display: flex; }
  .collector-keyword-fields { grid-template-columns: 1fr; }
  .collector-keyword-fields label:last-child { grid-column: auto; }
  .collector-neckline-field { flex-direction: column; }
  .collector-dialog-summary { grid-template-columns: auto 1fr; }
  .collector-dialog-summary i { display: none; }
}

@media (max-width: 1180px) {
  body:has(.portal-view[data-portal-page="collector"]:not([hidden])) { min-width: 0; }
  .portal-shell:has(.portal-view[data-portal-page="collector"]:not([hidden])) { min-width: 0; }
  .portal-shell:has(.portal-view[data-portal-page="collector"]:not([hidden])) .portal-main { min-width: 0; padding: 32px 28px 40px; overflow: visible; }
}

@media (max-width: 760px) {
  .portal-shell:has(.portal-view[data-portal-page="collector"]:not([hidden])) { --sidebar-width: 72px; }
  .portal-shell:has(.portal-view[data-portal-page="collector"]:not([hidden])) .portal-layout { grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
  .portal-shell:has(.portal-view[data-portal-page="collector"]:not([hidden])) .portal-main { padding: 20px 12px 30px; }
}

/* 3.20 科技工作台 */
.portal-shell {
  --portal-bg: #050d0d;
  --portal-panel: rgba(10, 24, 23, .78);
  --portal-panel-strong: rgba(12, 29, 27, .92);
  --portal-line: rgba(95, 220, 193, .24);
  --portal-line-bright: rgba(104, 255, 219, .68);
  --portal-green: #24e5bd;
  --portal-green-soft: #80f9df;
  --portal-gold: #d8b76a;
  --portal-text: #f4fbfa;
  --portal-muted: #91a7a4;
  position: relative;
  isolation: isolate;
  min-width: 1120px;
  min-height: 100vh;
  overflow: hidden;
  color: var(--portal-text);
  background:
    radial-gradient(circle at 88% 12%, rgba(0, 166, 128, .19), transparent 32%),
    radial-gradient(circle at 51% 76%, rgba(0, 132, 106, .09), transparent 34%),
    linear-gradient(135deg, #030909 0%, #071110 48%, #05110f 100%);
}
.portal-shell::before,
.portal-shell::after {
  position: fixed;
  z-index: -1;
  content: "";
  pointer-events: none;
}
.portal-shell::before {
  inset: 74px 0 0 268px;
  opacity: .34;
  background-image:
    linear-gradient(rgba(45, 229, 190, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 229, 190, .045) 1px, transparent 1px),
    radial-gradient(circle, rgba(105, 255, 222, .38) 0 1px, transparent 1.5px);
  background-size: 64px 64px, 64px 64px, 29px 29px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.78), transparent 92%);
}
.portal-shell::after {
  right: -18vw;
  bottom: -42vh;
  width: 98vw;
  height: 72vh;
  border: 1px solid rgba(35, 226, 186, .1);
  border-radius: 50%;
  box-shadow: 0 0 90px rgba(0, 214, 165, .06), inset 0 0 90px rgba(0, 214, 165, .025);
  transform: rotate(-8deg);
}
.portal-topbar {
  position: sticky;
  z-index: 40;
  top: 0;
  height: 74px;
  padding: 0 26px 0 18px;
  color: var(--portal-text);
  background: rgba(3, 11, 11, .82);
  border-bottom: 1px solid rgba(100, 224, 197, .16);
  box-shadow: 0 10px 34px rgba(0, 0, 0, .22), inset 0 -1px rgba(255,255,255,.025);
  backdrop-filter: blur(18px);
}
.portal-logo { width: 242px; gap: 12px; }
.portal-logo > div { display: grid; gap: 3px; }
.portal-logo strong { color: #e8d098; font-size: 19px; letter-spacing: .08em; text-shadow: 0 0 18px rgba(216, 183, 106, .16); }
.portal-logo small { color: #6f8883; font-size: 10px; letter-spacing: .16em; }
.portal-logo-orbit {
  position: relative;
  display: grid;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(216, 183, 106, .28);
  border-radius: 50%;
  box-shadow: 0 0 22px rgba(41, 227, 188, .14), inset 0 0 18px rgba(41, 227, 188, .06);
  place-items: center;
}
.portal-logo-orbit::before,
.portal-logo-orbit::after {
  position: absolute;
  content: "";
  border: 1px solid rgba(38, 229, 188, .14);
  border-radius: 50%;
}
.portal-logo-orbit::before { inset: -6px; border-style: dashed; }
.portal-logo-orbit::after { inset: 4px; }
.portal-logo-orbit img { width: 38px; height: 38px; object-fit: cover; border-radius: 50%; }
.portal-account { gap: 15px; color: #aebfbc; font-size: 12px; }
.portal-account > i { width: 1px; height: 18px; background: linear-gradient(transparent, rgba(126, 231, 207, .35), transparent); }
.portal-account strong { color: #e9f7f4; font-weight: 650; }
.portal-version strong { margin-left: 5px; font-family: Consolas, "Microsoft YaHei", sans-serif; }
.portal-login-account strong { margin-left: 3px; }
.portal-account-state { position: relative; padding-left: 17px; color: var(--portal-green); font-weight: 700; }
.portal-account-state::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 9px;
  height: 11px;
  content: "";
  border: 1px solid currentColor;
  border-radius: 3px 3px 5px 5px;
  box-shadow: 0 0 10px currentColor;
  transform: translateY(-50%);
}
.portal-account-state.expired { color: #ef8a73; }
.portal-account button {
  min-height: 34px;
  padding: 0 13px;
  color: #c7d9d5;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(170, 221, 211, .28);
  border-radius: 7px;
}
.portal-account button:hover:not(:disabled) { color: #fff; background: rgba(31, 220, 179, .1); border-color: rgba(75, 241, 205, .5); }
.portal-layout { min-height: calc(100vh - 74px); grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
.portal-sidebar {
  position: relative;
  z-index: 15;
  padding: 34px 16px 24px;
  background: linear-gradient(180deg, rgba(5, 16, 16, .94), rgba(5, 18, 17, .82));
  border-right: 1px solid rgba(81, 218, 189, .17);
  box-shadow: 16px 0 44px rgba(0,0,0,.16), inset -1px 0 rgba(255,255,255,.018);
  backdrop-filter: blur(16px);
}
.portal-sidebar::after {
  position: absolute;
  top: 0;
  right: -1px;
  width: 1px;
  height: 64%;
  content: "";
  background: linear-gradient(transparent, rgba(64, 238, 199, .42), transparent);
  box-shadow: 0 0 14px rgba(64, 238, 199, .3);
}
.portal-sidebar nav { gap: 11px; }
.portal-nav-button {
  position: relative;
  display: grid;
  min-height: 58px;
  align-items: center;
  gap: 13px;
  padding: 10px 15px;
  color: #81948f;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 10px;
  grid-template-columns: 25px minmax(0, 1fr);
  transition: color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.portal-nav-button::before {
  position: absolute;
  top: 11px;
  bottom: 11px;
  left: -1px;
  width: 2px;
  content: "";
  border-radius: 99px;
  background: transparent;
}
.portal-nav-button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.55; }
.portal-nav-button > span { display: grid; gap: 3px; color: #c1cfcc; font-size: 14px; font-weight: 650; }
.portal-nav-button small { color: #62746f; font-size: 10px; font-weight: 400; }
.portal-nav-button:hover:not(:disabled) { color: #8ff8df; background: rgba(31, 218, 176, .055); border-color: rgba(56, 222, 187, .12); transform: translateX(2px); }
.portal-nav-button.active {
  color: var(--portal-green);
  background: linear-gradient(90deg, rgba(25, 212, 171, .16), rgba(31, 144, 119, .08));
  border-color: rgba(72, 238, 201, .34);
  box-shadow: 0 0 28px rgba(20, 210, 168, .08), inset 0 1px rgba(255,255,255,.035);
}
.portal-nav-button.active::before { background: var(--portal-green); box-shadow: 0 0 13px var(--portal-green); }
.portal-nav-button.active::after { position: absolute; right: 12px; width: 5px; height: 5px; content: ""; border: 1px solid var(--portal-green); border-radius: 50%; box-shadow: 0 0 9px var(--portal-green); }
.portal-nav-button.active > span { color: var(--portal-green-soft); }
.portal-nav-button.active small { color: #77a99d; }
.portal-nav-button:disabled { opacity: .38; }
.portal-plan-card {
  position: relative;
  display: flex;
  min-height: 108px;
  align-items: center;
  gap: 13px;
  margin-top: auto;
  padding: 16px;
  overflow: hidden;
  color: var(--portal-text);
  background: linear-gradient(135deg, rgba(19, 62, 54, .62), rgba(8, 30, 29, .8));
  border: 1px solid rgba(69, 232, 197, .35);
  border-radius: 12px;
  box-shadow: 0 13px 32px rgba(0,0,0,.2), inset 0 1px rgba(255,255,255,.05);
}
.portal-plan-card::after { position: absolute; right: -28px; bottom: -36px; width: 94px; height: 94px; content: ""; border: 1px solid rgba(42, 231, 191, .14); border-radius: 50%; box-shadow: 0 0 30px rgba(40, 227, 187, .06); }
.portal-plan-card > div { display: grid; gap: 5px; }
.portal-plan-card strong { color: #efd690; font-size: 12px; }
.portal-plan-card span { color: var(--portal-green); font-size: 15px; font-weight: 750; }
.portal-plan-card small { color: #9cb4ae; font-size: 11px; }
.portal-plan-card .plan-diamond { position: relative; z-index: 1; color: #e1bf72; font-size: 38px; text-shadow: 0 0 18px rgba(225, 191, 114, .28); }
.portal-main { position: relative; min-width: 0; padding: 42px 52px 48px; overflow: auto; }
.portal-view { position: relative; z-index: 2; max-width: 1500px; margin: 0 auto; }
.portal-page-heading { margin-bottom: 24px; }
.portal-page-heading h1 { color: var(--portal-text); }
.portal-page-heading p { color: var(--portal-muted); }
.dashboard-heading { min-height: 112px; align-items: flex-start; }
.dashboard-heading h1 { margin: 0 0 10px; font-size: clamp(32px, 2.4vw, 48px); letter-spacing: .035em; text-shadow: 0 8px 28px rgba(0,0,0,.38); }
.dashboard-heading p { font-size: 15px; }
.portal-primary-button,
.portal-shell .portal-action-button {
  color: #06211c;
  background: linear-gradient(105deg, #19d9b0, #3bf0c7);
  border: 1px solid rgba(161, 255, 234, .72);
  box-shadow: 0 0 28px rgba(32, 230, 186, .25), inset 0 1px rgba(255,255,255,.5);
}
.portal-primary-button:hover:not(:disabled),
.portal-shell .portal-action-button:hover:not(:disabled) { color: #031713; background: linear-gradient(105deg, #38ebc4, #7bffe2); border-color: #b8ffef; box-shadow: 0 0 38px rgba(37, 239, 197, .4); transform: translateY(-1px); }
.portal-action-button { min-width: 210px; min-height: 58px; margin-top: 22px; border-radius: 999px; font-size: 16px; }
.portal-action-button b { margin-left: 14px; font-size: 21px; }
.dashboard-data-field { position: absolute; z-index: -1; top: -24px; right: -28px; width: 78%; height: 470px; overflow: hidden; opacity: .68; pointer-events: none; }
.dashboard-data-field::before,
.dashboard-data-field::after {
  position: absolute;
  content: "";
  border: 1px solid rgba(43, 226, 186, .2);
  border-radius: 50%;
  transform: rotate(-11deg);
}
.dashboard-data-field::before { top: -230px; right: -160px; width: 840px; height: 480px; box-shadow: 0 0 80px rgba(29, 220, 179, .07); }
.dashboard-data-field::after { top: -175px; right: -95px; width: 680px; height: 390px; border-color: rgba(216, 183, 106, .11); }
.dashboard-data-field span { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: var(--portal-green); box-shadow: 0 0 14px 3px rgba(43, 232, 193, .62); animation: portalPulse 3.8s ease-in-out infinite; }
.dashboard-data-field span:nth-child(1) { top: 96px; right: 28%; }
.dashboard-data-field span:nth-child(2) { top: 168px; right: 7%; animation-delay: .8s; }
.dashboard-data-field span:nth-child(3) { top: 248px; right: 42%; animation-delay: 1.5s; }
.dashboard-grid { gap: 18px; }
.dashboard-card,
.feature-grid article,
.portal-shell .admin-form-card,
.portal-shell .admin-table-wrap,
.portal-shell .coming-soon,
.portal-shell .account-card,
.portal-shell .membership-section {
  color: var(--portal-text);
  background: linear-gradient(145deg, rgba(16, 34, 32, .82), rgba(7, 20, 20, .9));
  border: 1px solid var(--portal-line);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .2), inset 0 1px rgba(255,255,255,.035);
  backdrop-filter: blur(15px);
}
.dashboard-card {
  position: relative;
  display: flex;
  min-height: 180px;
  align-items: center;
  gap: 19px;
  padding: 25px;
  overflow: hidden;
  border-radius: 14px;
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
.dashboard-card::before { position: absolute; top: 0; right: 9%; left: 9%; height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(168, 255, 236, .66), transparent); }
.dashboard-card:hover { border-color: rgba(83, 242, 207, .48); box-shadow: 0 22px 54px rgba(0,0,0,.3), 0 0 28px rgba(31, 216, 177, .08); transform: translateY(-3px); }
.dashboard-card > div:nth-child(2) { position: relative; z-index: 2; display: grid; gap: 8px; }
.dashboard-card span { color: #a6b9b5; font-size: 12px; }
.dashboard-card strong { color: var(--portal-green); font-family: "Bahnschrift", "Microsoft YaHei", sans-serif; font-size: clamp(25px, 2vw, 33px); letter-spacing: .02em; text-shadow: 0 0 18px rgba(37, 226, 186, .16); }
.dashboard-card small { color: #a1b1ae; }
.dashboard-card small.expired { color: #f28b73; }
.dashboard-icon,
.feature-icon {
  position: relative;
  z-index: 2;
  display: grid;
  flex: 0 0 68px;
  width: 68px;
  height: 68px;
  color: var(--portal-green);
  background: radial-gradient(circle, rgba(35, 226, 185, .14), rgba(11, 31, 29, .7));
  border: 1px solid rgba(78, 238, 205, .64);
  border-radius: 50%;
  box-shadow: 0 0 24px rgba(28, 223, 181, .14), inset 0 0 18px rgba(28, 223, 181, .08);
  place-items: center;
}
.dashboard-icon svg,
.feature-icon svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.35; filter: drop-shadow(0 0 4px rgba(53, 241, 203, .3)); }
.card-data-ring { position: absolute; right: 15px; bottom: -28px; width: 142px; height: 142px; border: 1px dashed rgba(51, 226, 188, .16); border-radius: 50%; }
.card-data-ring::before { position: absolute; inset: 21px; content: ""; border: 1px solid rgba(51, 226, 188, .09); border-radius: 50%; }
.card-bars { position: absolute; right: 22px; bottom: 25px; display: flex; height: 54px; align-items: flex-end; gap: 5px; opacity: .22; }
.card-bars i { display: block; width: 8px; height: 18px; border: 1px solid var(--portal-green); border-radius: 2px 2px 0 0; }
.card-bars i:nth-child(2) { height: 29px; }
.card-bars i:nth-child(3) { height: 42px; }
.card-bars i:nth-child(4) { height: 52px; }
.dashboard-section-title { display: flex; align-items: center; gap: 12px; margin: 35px 0 18px; }
.dashboard-section-title span { width: 4px; height: 20px; border-radius: 99px; background: var(--portal-green); box-shadow: 0 0 12px var(--portal-green); }
.dashboard-section-title h2 { margin: 0; color: #ecf8f6; font-size: 19px; }
.dashboard-section-title i { flex: 1; height: 1px; background: linear-gradient(90deg, rgba(57, 226, 190, .22), transparent); }
.feature-grid { gap: 18px; margin-top: 0; }
.feature-grid .feature-card { position: relative; display: flex; min-height: 276px; flex-direction: column; padding: 27px; overflow: hidden; border-radius: 14px; }
.feature-card::before { position: absolute; inset: 0; content: ""; opacity: .25; background-image: radial-gradient(circle at 88% 14%, rgba(35, 232, 190, .22), transparent 28%), linear-gradient(125deg, transparent 58%, rgba(50, 217, 181, .06)); pointer-events: none; }
.feature-card.primary-feature { border-color: rgba(51, 240, 200, .65); box-shadow: 0 18px 50px rgba(0,0,0,.25), 0 0 30px rgba(26, 221, 179, .11), inset 0 0 28px rgba(28, 190, 158, .04); }
.feature-card.pending-feature { border-color: rgba(216, 183, 106, .43); }
.feature-card.pending-feature::before { background-image: radial-gradient(circle at 88% 14%, rgba(216, 183, 106, .13), transparent 27%), linear-gradient(125deg, transparent 58%, rgba(216, 183, 106, .04)); }
.feature-state { position: relative; z-index: 2; align-self: flex-start; padding: 5px 11px; border: 1px solid; }
.feature-state.ready { color: var(--portal-green); background: rgba(26, 215, 174, .08); border-color: rgba(52, 233, 195, .42); }
.feature-state.pending { color: #e4c87e; background: rgba(199, 157, 60, .09); border-color: rgba(220, 184, 94, .45); }
.feature-card-body { position: relative; z-index: 2; display: flex; align-items: center; gap: 17px; margin-top: 24px; }
.feature-card .feature-icon { flex-basis: 74px; width: 74px; height: 74px; border-radius: 13px; }
.pending-feature .feature-icon { color: #e2c47a; background: radial-gradient(circle, rgba(216,183,106,.12), rgba(27,27,21,.72)); border-color: rgba(216,183,106,.48); box-shadow: 0 0 20px rgba(216,183,106,.08), inset 0 0 18px rgba(216,183,106,.05); }
.feature-grid h2 { margin: 0 0 8px; color: #f1faf8; font-size: 20px; }
.feature-grid p { min-height: 0; margin: 0; color: #a0b1ae; font-size: 13px; line-height: 1.75; }
.feature-grid button { position: relative; z-index: 2; min-height: 44px; margin: auto 16px 0; color: var(--portal-green); background: rgba(8, 23, 22, .48); border: 1px solid rgba(52, 232, 193, .58); border-radius: 999px; font-weight: 700; }
.pending-feature button { color: #e5c879; border-color: rgba(216, 183, 106, .58); }
.feature-grid button b { margin-left: 12px; font-size: 17px; }
.feature-grid button:hover:not(:disabled) { color: #dffdf7; background: rgba(30, 218, 178, .12); border-color: var(--portal-green); box-shadow: 0 0 22px rgba(30, 218, 178, .11); }
.pending-feature button:hover:not(:disabled) { color: #ffe9ad; background: rgba(216, 183, 106, .09); border-color: #e0bf70; box-shadow: 0 0 22px rgba(216, 183, 106, .09); }
.portal-service-button { position: fixed; z-index: 30; right: 30px; bottom: 28px; display: block; width: 56px; height: 56px; padding: 0; background: radial-gradient(circle, #176b59, #092c27); border: 1px solid rgba(100,255,221,.7); border-radius: 50%; box-shadow: 0 0 0 8px rgba(35,225,185,.05), 0 0 32px rgba(35,225,185,.22); }
.portal-service-button::before { position: absolute; inset: -9px; content: ""; border: 1px dashed rgba(60, 231, 195, .22); border-radius: 50%; animation: portalSpin 16s linear infinite; }
.portal-service-button span { position: absolute; top: 16px; left: 14px; width: 27px; height: 20px; border: 2px solid #e6fffa; border-radius: 9px; }
.portal-service-button span::after { position: absolute; right: 1px; bottom: -6px; width: 7px; height: 7px; content: ""; border-left: 2px solid #e6fffa; transform: skew(-28deg); }
.portal-service-button i { position: absolute; top: 24px; width: 3px; height: 3px; background: #e6fffa; border-radius: 50%; }
.portal-service-button i:nth-of-type(1) { left: 22px; }
.portal-service-button i:nth-of-type(2) { right: 21px; }

/* 门户其他页面沿用同一深色系统，转换器工作区保持原有操作配色。 */
.portal-shell .coming-soon { margin-top: 80px; }
.portal-shell .coming-soon h1,
.portal-shell .account-card,
.portal-shell .membership-section-title h2,
.portal-shell .membership-plan-card strong,
.portal-shell .payment-tutorial-grid h3 { color: var(--portal-text); }
.portal-shell .coming-soon p,
.portal-shell .account-card p,
.portal-shell .membership-section-title p,
.portal-shell .membership-plan-card small,
.portal-shell .payment-tutorial-grid p { color: var(--portal-muted); }
.portal-shell .account-card label,
.portal-shell .payment-submit-card > label,
.portal-shell .admin-user-form label { color: #a9bbb7; }
.portal-shell .account-card input,
.portal-shell .account-card select,
.portal-shell .payment-submit-card input,
.portal-shell .payment-submit-card select,
.portal-shell .admin-user-form input,
.portal-shell .admin-user-form select {
  color: #e9f6f3;
  background: rgba(4, 13, 13, .68);
  border-color: rgba(104, 201, 181, .25);
}
.portal-shell .membership-plan-card > span { background: rgba(7, 19, 18, .74); border-color: rgba(88, 174, 156, .23); }
.portal-shell .membership-plan-card input:checked + span { background: rgba(20, 73, 62, .46); border-color: var(--portal-green); box-shadow: 0 0 24px rgba(36,229,189,.1); }
.portal-shell .membership-plan-card b { color: var(--portal-green); }
.portal-shell .payment-qr-card,
.portal-shell .payment-tutorial-grid article { background: rgba(4, 14, 14, .66); border-color: rgba(83, 180, 159, .22); }
.portal-shell .admin-table th { color: #95aaa5; background: rgba(12, 31, 29, .9); }
.portal-shell .admin-table td { color: #c7d7d4; border-color: rgba(94, 159, 146, .18); }
.portal-shell .admin-table td small { color: #718883; }
.portal-shell .admin-table button { color: var(--portal-green); background: rgba(8, 27, 24, .74); border-color: rgba(61, 212, 180, .34); }
.portal-shell .converter-view { max-width: none; margin: -42px -52px -48px; color: #17212b; background: #eef2f3; }
.portal-shell .converter-view .portal-primary-button { color: #fff; background: #087f72; border: 0; box-shadow: none; }

/* 明亮主题：保留品牌绿色与金色，降低长时间使用时的视觉负担 */
.portal-shell.light-theme {
  color: #17312c;
  background-color: #eef6f3;
  background-image: radial-gradient(circle at 84% 10%, rgba(28, 199, 158, .12), transparent 26%), linear-gradient(135deg, #f7fbfa, #eaf4f1);
}
.portal-shell.light-theme::before { opacity: .07; filter: saturate(.8); }
.portal-shell.light-theme .portal-topbar,
.portal-shell.light-theme .portal-sidebar { background: rgba(250, 253, 252, .94); border-color: rgba(18, 125, 103, .2); }
.portal-shell.light-theme .portal-topbar-left strong,
.portal-shell.light-theme .dashboard-heading h1,
.portal-shell.light-theme .feature-card h2,
.portal-shell.light-theme .panel-heading h2,
.portal-shell.light-theme .sidebar-brand strong { color: #14352f; }
.portal-shell.light-theme .portal-topbar-left small,
.portal-shell.light-theme .dashboard-heading p,
.portal-shell.light-theme .feature-card p,
.portal-shell.light-theme .dashboard-card span,
.portal-shell.light-theme .update-panel li span,
.portal-shell.light-theme .mini-stat-grid span,
.portal-shell.light-theme .mini-stat-grid small,
.portal-shell.light-theme .sidebar-brand small { color: #58756f; }
.portal-shell.light-theme .portal-version,
.portal-shell.light-theme .portal-login-account,
.portal-shell.light-theme .focus-mode-button { color: #315e55; background: rgba(255,255,255,.7); }
.portal-shell.light-theme .dashboard-card,
.portal-shell.light-theme .feature-card,
.portal-shell.light-theme .platform-info-panel,
.portal-shell.light-theme .membership-benefit-card,
.portal-shell.light-theme .membership-payment-grid > section,
.portal-shell.light-theme .account-card,
.portal-shell.light-theme .admin-section { background: rgba(255,255,255,.82); border-color: rgba(26, 144, 119, .25); box-shadow: 0 16px 40px rgba(23, 90, 77, .09); }
.portal-shell.light-theme .feature-card.pending,
.portal-shell.light-theme .membership-benefit-card.future { background: linear-gradient(145deg, rgba(255,251,238,.95), rgba(247,243,226,.9)); border-color: rgba(174, 132, 37, .32); }
.portal-shell.light-theme .mini-stat-grid article,
.portal-shell.light-theme .update-panel li { background: rgba(233, 246, 242, .8); }
.portal-shell.light-theme .update-panel li strong { color: #24463f; }
.portal-shell.light-theme .portal-nav-button { color: #31564f; }
.portal-shell.light-theme .portal-nav-button:hover,
.portal-shell.light-theme .portal-nav-button.active { color: #076f5f; background: rgba(25, 189, 151, .1); }
.portal-shell.light-theme .portal-plan-card { background: linear-gradient(145deg, rgba(225, 246, 239, .96), rgba(241, 250, 247, .98)); }
.portal-shell.light-theme .portal-main { background: radial-gradient(circle at 74% 18%, rgba(22, 190, 155, .12), transparent 28%); }
.portal-shell.light-theme .portal-service-button { color: #234840; background: rgba(246, 252, 250, .88); border-color: rgba(44, 146, 125, .22); }
.portal-shell.light-theme .coming-soon-card { background: rgba(255,255,255,.8); border-color: rgba(26, 144, 119, .25); }

@keyframes portalPulse {
  0%, 100% { opacity: .35; transform: scale(.75); }
  50% { opacity: 1; transform: scale(1.2); }
}
@keyframes portalSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .dashboard-data-field span,
  .portal-service-button::before { animation: none; }
}
@media (max-width: 1350px) {
  .portal-shell { --sidebar-width: 230px; }
  .portal-shell.sidebar-collapsed { --sidebar-width: 78px; }
  .portal-shell.focus-mode { --sidebar-width: 0px; }
  .portal-layout { grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
  .portal-shell::before { left: var(--sidebar-width); }
  .portal-logo { width: 202px; }
  .portal-logo small { display: none; }
  .portal-main { padding: 32px 28px 40px; }
  .portal-shell .converter-view { margin: -32px -28px -40px; }
  .portal-account { gap: 9px; }
  .portal-login-account { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .dashboard-card { min-height: 158px; padding: 19px; }
  .dashboard-icon { flex-basis: 56px; width: 56px; height: 56px; }
}

/* 3.21 登录入口：与平台工作台保持同一深色科技视觉 */
.auth-screen {
  position: relative;
  display: grid;
  min-height: 100vh;
  grid-template-columns: minmax(520px, 1.2fr) minmax(390px, .8fr);
  gap: clamp(42px, 7vw, 130px);
  align-items: center;
  padding: clamp(42px, 6vw, 96px);
  overflow: hidden;
  color: #ecf8f5;
  background-color: #020909;
  background-image: linear-gradient(90deg, rgba(1,9,9,.34), rgba(1,9,9,.7)), url("./assets/platform/feiyu-tech-background-v1.png");
  background-position: center;
  background-size: cover;
}
.auth-screen::before { position: absolute; inset: 0; content: ""; pointer-events: none; background-image: linear-gradient(rgba(56,209,177,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(56,209,177,.04) 1px, transparent 1px); background-size: 64px 64px; mask-image: radial-gradient(circle at 35% 50%, #000 0 18%, transparent 66%); }
.auth-screen::after { position: absolute; right: 25%; bottom: -42%; width: 84vw; height: 72vh; content: ""; pointer-events: none; border: 1px solid rgba(52,224,188,.14); border-radius: 50%; box-shadow: 0 0 100px rgba(29,221,179,.06); transform: rotate(-8deg); }
.auth-showcase { position: relative; z-index: 2; display: grid; max-width: 720px; gap: 34px; }
.auth-showcase-brand { display: flex; align-items: center; gap: 17px; }
.auth-showcase-logo { display: grid; width: 70px; height: 70px; padding: 7px; background: rgba(255,255,255,.95); border: 1px solid rgba(230,197,112,.75); border-radius: 19px; box-shadow: 0 0 0 7px rgba(44,228,188,.035), 0 0 34px rgba(43,225,185,.17); place-items: center; }
.auth-showcase-logo img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; }
.auth-showcase-brand > div { display: grid; gap: 4px; }
.auth-showcase-brand strong { color: #ead18d; font-size: 24px; letter-spacing: .12em; }
.auth-showcase-brand small { color: #73928b; font-size: 11px; letter-spacing: .22em; }
.auth-showcase-copy { position: relative; padding-left: 5px; }
.auth-showcase-copy::before { position: absolute; top: -28px; left: -42px; width: 220px; height: 220px; content: ""; pointer-events: none; border: 1px dashed rgba(44,227,188,.14); border-radius: 50%; box-shadow: inset 0 0 50px rgba(34,219,178,.035); }
.auth-showcase-copy > span { position: relative; z-index: 1; display: inline-flex; padding: 7px 13px; color: #2de4bf; background: rgba(20,84,70,.26); border: 1px solid rgba(47,223,188,.32); border-radius: 999px; font-size: 11px; letter-spacing: .16em; }
.auth-showcase-copy h2 { position: relative; z-index: 1; margin: 22px 0 18px; font-size: clamp(42px, 4vw, 68px); line-height: 1.18; letter-spacing: .025em; text-shadow: 0 14px 40px rgba(0,0,0,.45); }
.auth-showcase-copy h2 em { color: #32e6c0; font-style: normal; text-shadow: 0 0 28px rgba(39,227,188,.2); }
.auth-showcase-copy p { position: relative; z-index: 1; max-width: 620px; margin: 0; color: #91a7a2; font-size: 15px; line-height: 1.9; }
.auth-feature-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.auth-feature-pills span { padding: 9px 13px; color: #afc5bf; background: rgba(7,25,23,.7); border: 1px solid rgba(89,181,162,.22); border-radius: 10px; font-size: 12px; backdrop-filter: blur(12px); }
.auth-showcase-status { display: flex; width: fit-content; align-items: center; gap: 9px; padding: 10px 14px; color: #78948d; background: rgba(5,20,19,.67); border: 1px solid rgba(74,177,155,.18); border-radius: 10px; font-size: 11px; }
.auth-showcase-status i { width: 7px; height: 7px; background: #29e2bd; border-radius: 50%; box-shadow: 0 0 12px #29e2bd; }
.auth-showcase-status b { margin-left: 12px; color: #d9bf73; }
.auth-card { position: relative; z-index: 3; width: min(465px, 100%); justify-self: end; padding: 34px; color: #e9f5f2; background: linear-gradient(155deg, rgba(14,31,31,.94), rgba(5,16,16,.96)); border: 1px solid rgba(105,196,177,.3); border-radius: 19px; box-shadow: 0 30px 90px rgba(0,0,0,.55), 0 0 48px rgba(31,219,179,.07), inset 0 1px rgba(255,255,255,.05); backdrop-filter: blur(24px); }
.auth-card::before { position: absolute; top: 0; right: 12%; left: 12%; height: 1px; content: ""; background: linear-gradient(90deg, transparent, rgba(126,255,225,.7), transparent); }
.auth-brand { border-color: rgba(105,170,158,.16); }
.auth-brand img { width: 50px; height: 50px; background: #fff; border-radius: 13px; object-fit: cover; }
.auth-brand strong { color: #ecd28b; }
.auth-brand span { color: #748f89; }
.auth-card h1 { color: #f1faf8; font-size: 27px; }
.auth-card p { color: #849c96; }
.auth-card label { color: #b6c9c4; }
.auth-card input { color: #edf7f4; background: rgba(2,12,12,.7); border-color: rgba(97,178,161,.25); outline: none; }
.auth-card input:focus { border-color: rgba(48,229,190,.72); box-shadow: 0 0 0 3px rgba(35,219,180,.08), 0 0 22px rgba(35,219,180,.06); }
.auth-card input:-webkit-autofill { -webkit-text-fill-color: #edf7f4; box-shadow: 0 0 0 1000px #071614 inset; }
.auth-card .remember-login-row small { color: #6d8882; }
.auth-link-button { color: #2de3be; }
.auth-card .portal-primary-button { min-height: 45px; color: #051b17; background: linear-gradient(100deg, #22dcb7, #57edcd); border: 1px solid rgba(177,255,237,.58); box-shadow: 0 0 28px rgba(32,224,183,.18); }
.auth-message { color: #2de3be; }
.plan-note { color: #849b96; background: rgba(13,37,34,.55); border: 1px solid rgba(85,170,153,.15); }
@media (max-width: 1080px) {
  .auth-screen { grid-template-columns: 1fr; place-items: center; }
  .auth-showcase { display: none; }
  .auth-card { justify-self: center; }
}

/* 3.22 飞羽全球品牌大厅：首页信息架构与深浅双主题 */
.command-dashboard { --command-border: rgba(100,154,213,.24); --command-panel: rgba(7,20,39,.84); --command-panel-strong: rgba(8,23,44,.96); --command-muted: #8394ad; position: relative; min-height: calc(100vh - 78px); margin: -38px -42px -48px; padding: 26px 28px 44px; overflow: hidden; color: #f4f8ff; background: radial-gradient(circle at 56% 0, rgba(21,55,125,.3), transparent 37%), linear-gradient(135deg, #020814 0%, #061128 49%, #030817 100%); }
.command-dashboard::before { position: absolute; inset: 0; content: ""; pointer-events: none; opacity: .35; background-image: linear-gradient(rgba(92,128,196,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(92,128,196,.04) 1px, transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(circle at 52% 32%, #000, transparent 74%); }
.command-dashboard-layout { position: relative; z-index: 1; display: grid; max-width: 1720px; min-height: calc(100vh - 148px); margin: 0 auto; grid-template-columns: minmax(0, 1fr) 232px; gap: 16px; }
.command-dashboard-main { min-width: 0; }
.brand-command-hero { position: relative; min-height: 350px; overflow: hidden; border: 1px solid var(--command-border); border-radius: 16px; background: #030a18; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.brand-command-hero::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(90deg, rgba(2,8,20,.96) 0%, rgba(2,8,20,.82) 31%, rgba(2,8,20,.16) 62%, rgba(2,8,20,.06) 100%), linear-gradient(0deg, rgba(2,8,20,.98) 0%, transparent 45%); }
.brand-command-visual { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; opacity: .96; }
.brand-command-copy { position: relative; z-index: 2; display: grid; width: min(43%, 510px); padding: 34px 38px 120px; align-content: start; }
.brand-command-copy .eyebrow { color: #d9bb70; font-size: 12px; letter-spacing: .12em; }
.brand-command-copy h1 { margin: 10px 0 8px; color: #fff; font-size: clamp(39px, 3.3vw, 57px); line-height: 1.08; letter-spacing: .035em; text-shadow: 0 12px 30px rgba(0,0,0,.45); }
.brand-command-copy p { margin: 0; color: #9aabc2; font-size: 14px; }
.hero-converter-button { width: 176px; min-height: 44px; margin-top: 24px; color: #021513; background: linear-gradient(110deg, #1fd4ad, #4ce8ca); border: 1px solid rgba(167,255,235,.76); border-radius: 999px; box-shadow: 0 0 30px rgba(34,222,183,.26); }
.hero-converter-button b { margin-left: 12px; }
.hero-status-strip { position: absolute; z-index: 3; right: 20px; bottom: 18px; left: 20px; display: grid; overflow: hidden; background: rgba(5,16,34,.82); border: 1px solid rgba(103,154,215,.3); border-radius: 12px; box-shadow: 0 16px 40px rgba(0,0,0,.28); backdrop-filter: blur(15px); grid-template-columns: repeat(3, 1fr); }
.hero-status-strip article { display: flex; min-width: 0; min-height: 82px; align-items: center; gap: 13px; padding: 14px 18px; }
.hero-status-strip article + article { border-left: 1px solid rgba(104,147,199,.17); }
.hero-status-strip .dashboard-icon { width: 47px; height: 47px; flex: 0 0 47px; color: #28e0bb; background: rgba(22,209,171,.07); border-color: rgba(41,224,186,.5); }
.hero-status-strip .dashboard-icon svg { width: 23px; height: 23px; }
.hero-status-strip article > div:last-of-type { display: grid; min-width: 0; gap: 3px; }
.hero-status-strip span { color: #8294ad; font-size: 11px; }
.hero-status-strip strong { overflow: hidden; color: #2de2bd; font-size: clamp(20px, 1.7vw, 28px); text-overflow: ellipsis; white-space: nowrap; }
.hero-status-strip small { color: #a7b4c6; font-size: 10px; }

.command-tools-section { margin-top: 16px; padding: 16px 14px 14px; background: rgba(5,15,32,.54); border: 1px solid var(--command-border); border-radius: 14px; }
.command-section-heading { display: flex; align-items: center; gap: 10px; margin: 0 0 13px; }
.command-section-heading > span { width: 4px; height: 22px; background: #29e1bb; border-radius: 999px; box-shadow: 0 0 14px #29e1bb; }
.command-section-heading h2 { margin: 0; color: #f3f7ff; font-size: 18px; }
.command-section-heading i { height: 1px; flex: 1; background: linear-gradient(90deg, rgba(67,221,188,.3), transparent); }
.command-tool-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.command-tool-card { position: relative; display: flex; min-height: 224px; min-width: 0; flex-direction: column; padding: 15px 13px 12px; background: linear-gradient(155deg, rgba(18,36,70,.8), rgba(5,15,34,.92)); border: 1px solid rgba(98,132,199,.35); border-radius: 12px; box-shadow: inset 0 1px rgba(255,255,255,.025); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.command-tool-card:hover { border-color: rgba(107,110,255,.68); box-shadow: 0 12px 30px rgba(1,5,18,.3), inset 0 0 24px rgba(83,74,255,.05); transform: translateY(-2px); }
.command-tool-card.ready { border-color: rgba(33,221,179,.56); background: linear-gradient(150deg, rgba(5,47,55,.82), rgba(5,17,37,.94)); }
.command-tool-card .tool-state { width: fit-content; padding: 3px 8px; color: #e9c765; background: rgba(99,73,5,.32); border: 1px solid rgba(224,181,53,.46); border-radius: 999px; font-size: 10px; }
.command-tool-card.ready .tool-state { color: #1ee3b6; background: rgba(4,89,74,.35); border-color: rgba(30,222,180,.52); }
.command-tool-icon { display: grid; width: 47px; height: 47px; margin: 14px 0 10px; color: #3ee1be; background: rgba(31,218,178,.08); border: 1px solid rgba(44,224,187,.42); border-radius: 12px; place-items: center; }
.command-tool-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.command-tool-icon.image { color: #4ac8ff; border-color: rgba(74,200,255,.4); background: rgba(42,140,207,.09); }
.command-tool-icon.video { color: #a78cff; border-color: rgba(167,140,255,.42); background: rgba(109,73,219,.09); }
.command-tool-icon.collect { color: #e6bd53; border-color: rgba(230,189,83,.43); background: rgba(178,129,20,.09); }
.command-tool-icon.social { color: #3cd0cf; }
.command-tool-icon.roi { color: #a4dc49; border-color: rgba(164,220,73,.38); background: rgba(105,148,31,.09); }
.command-tool-card h3 { margin: 0 0 7px; color: #f4f7ff; font-size: 15px; line-height: 1.35; }
.command-tool-card p { min-height: 46px; margin: 0 0 10px; color: #8190a6; font-size: 10.5px; line-height: 1.55; }
.command-tool-card > button { min-height: 34px; margin-top: auto; color: #a69dff; background: rgba(46,43,128,.13); border: 1px solid rgba(99,91,239,.42); border-radius: 8px; font-weight: 700; }
.command-tool-card.ready > button { color: #1fe1b5; border-color: rgba(30,222,180,.48); background: rgba(12,96,80,.12); }
.command-tool-card button b { margin-left: 7px; }

.command-information-grid { display: grid; margin-top: 16px; grid-template-columns: .8fr 1.35fr 1.1fr; gap: 12px; }
.command-info-card { min-width: 0; min-height: 276px; padding: 18px; background: linear-gradient(155deg, rgba(12,28,55,.9), rgba(4,13,30,.96)); border: 1px solid var(--command-border); border-radius: 14px; box-shadow: 0 14px 40px rgba(0,0,0,.16); }
.command-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.command-card-heading > div { display: grid; gap: 4px; }
.command-card-heading span { color: #7d8da6; font-size: 10px; letter-spacing: .12em; }
.command-card-heading h2 { margin: 0; color: #f1f5ff; font-size: 17px; }
.command-card-heading > b { color: #e5bd57; font-size: 22px; }
.command-card-heading > button { padding: 6px 9px; color: #29dfbb; background: rgba(16,85,75,.16); border: 1px solid rgba(42,221,185,.3); border-radius: 7px; font-size: 10px; }
.member-benefit-card { border-color: rgba(209,163,65,.34); background: radial-gradient(circle at 50% 26%, rgba(153,109,31,.13), transparent 38%), linear-gradient(155deg, rgba(25,32,55,.94), rgba(6,14,29,.96)); }
.member-benefit-card ul { display: grid; gap: 9px; padding: 0; margin: 0 0 16px; list-style: none; }
.member-benefit-card li { display: flex; align-items: center; gap: 8px; color: #acb6c8; font-size: 11px; }
.member-benefit-card li i { display: grid; width: 18px; height: 18px; color: #e3b84d; background: rgba(132,94,17,.23); border: 1px solid rgba(219,174,66,.4); border-radius: 50%; font-size: 10px; font-style: normal; place-items: center; }
.member-benefit-card > button { width: 100%; min-height: 36px; color: #e5bd58; background: rgba(87,62,11,.13); border: 1px solid rgba(217,172,62,.42); border-radius: 8px; }
.recent-task-list { display: grid; gap: 7px; }
.recent-task-empty { display: grid; min-height: 145px; padding: 20px; color: #7889a2; background: rgba(4,13,28,.42); border: 1px dashed rgba(105,139,192,.25); border-radius: 10px; text-align: center; place-content: center; gap: 7px; }
.recent-task-empty strong { color: #bac5d5; font-size: 13px; }
.recent-task-empty span { font-size: 10px; }
.recent-task-row { display: grid; align-items: center; gap: 8px; padding: 9px 10px; background: rgba(4,13,28,.45); border: 1px solid rgba(98,132,190,.17); border-radius: 8px; grid-template-columns: minmax(0, 1fr) auto; }
.recent-task-row > div { display: grid; min-width: 0; gap: 3px; }
.recent-task-row strong { overflow: hidden; color: #d9e1ef; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.recent-task-row span { color: #74849c; font-size: 9px; }
.recent-task-row b { padding: 3px 7px; color: #29ddb7; background: rgba(20,127,102,.25); border-radius: 999px; font-size: 9px; }
.local-record-note { display: block; margin-top: 9px; color: #64748d; font-size: 9px; }
.platform-update-card .command-card-heading > b { padding: 4px 7px; color: #a59cff; background: rgba(91,75,211,.22); border: 1px solid rgba(127,111,255,.34); border-radius: 999px; font-size: 9px; }
.platform-update-card ul { display: grid; gap: 8px; padding: 0; margin: 0; list-style: none; }
.platform-update-card li { display: grid; align-items: center; gap: 8px; padding: 7px 8px; background: rgba(4,12,27,.42); border: 1px solid rgba(94,126,184,.16); border-radius: 8px; grid-template-columns: 38px minmax(0, 1fr); }
.platform-update-card li > i { padding: 4px 3px; color: #47d2b4; background: rgba(25,124,105,.2); border-radius: 6px; font-size: 9px; font-style: normal; text-align: center; }
.platform-update-card li > i.new { color: #a89cff; background: rgba(85,68,187,.23); }
.platform-update-card li div { display: grid; min-width: 0; gap: 2px; }
.platform-update-card li strong { color: #d9e2ef; font-size: 10px; }
.platform-update-card li span { color: #75869e; font-size: 9px; line-height: 1.4; }

.command-service-rail { display: flex; min-width: 0; flex-direction: column; gap: 12px; }
.service-profile-card,
.service-rail-card { position: relative; overflow: hidden; padding: 17px; background: linear-gradient(150deg, rgba(18,35,65,.95), rgba(5,13,31,.97)); border: 1px solid rgba(105,137,198,.34); border-radius: 14px; box-shadow: 0 16px 38px rgba(0,0,0,.18); }
.service-profile-card { display: grid; min-height: 248px; justify-items: center; text-align: center; align-content: start; }
.service-avatar { display: grid; width: 66px; height: 66px; padding: 7px; background: rgba(255,255,255,.96); border: 1px solid rgba(220,182,86,.7); border-radius: 50%; box-shadow: 0 0 0 8px rgba(54,226,190,.035), 0 0 26px rgba(55,224,189,.1); place-items: center; }
.service-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.service-profile-card strong { margin-top: 12px; color: #ecd18b; font-size: 15px; }
.service-profile-card small { margin-top: 3px; color: #718298; font-size: 9px; }
.service-profile-card > b { margin-top: 11px; padding: 4px 13px; color: #061320; background: linear-gradient(100deg, #d0a84e, #f0d17a); border-radius: 999px; font-size: 10px; }
.service-profile-card > button { width: 100%; min-height: 36px; margin-top: 17px; color: #ecd074; background: rgba(115,80,14,.14); border: 1px solid rgba(219,171,57,.45); border-radius: 999px; }
.service-rail-card { min-height: 122px; }
.service-rail-card::before { position: absolute; inset: 0 auto 0 0; width: 2px; content: ""; background: linear-gradient(transparent, currentColor, transparent); opacity: .8; }
.service-rail-card span { display: block; color: #e7c366; font-size: 14px; font-weight: 800; }
.service-rail-card p { min-height: 34px; margin: 7px 0 10px; color: #8594a9; font-size: 9.5px; line-height: 1.55; }
.service-rail-card button { width: 100%; min-height: 30px; color: #e3bd57; background: transparent; border: 1px solid rgba(214,168,55,.45); border-radius: 999px; font-size: 10px; }
.service-rail-card.premium { color: #7d70ff; background: linear-gradient(145deg, rgba(27,30,83,.96), rgba(7,14,38,.97)); border-color: rgba(105,88,246,.42); }
.service-rail-card.premium span { color: #9c8fff; }
.service-rail-card.premium button { color: #9e91ff; border-color: rgba(112,94,242,.47); }
.service-rail-card.guide { color: #53a4ff; }
.service-rail-card.guide span { color: #8a9dff; }
.service-rail-card.guide button { color: #918cff; border-color: rgba(95,86,231,.43); }
.portal-service-button { z-index: 8; }

.portal-shell.sidebar-collapsed .command-dashboard-layout { max-width: 1800px; }
.portal-shell.focus-mode .command-service-rail { display: none; }
.portal-shell.focus-mode .command-dashboard-layout { max-width: 1740px; grid-template-columns: 1fr; }

.portal-shell.light-theme .command-dashboard { --command-border: rgba(52,102,86,.14); --command-panel: rgba(255,255,255,.9); --command-panel-strong: #fff; --command-muted: #718078; color: #17201d; background: radial-gradient(circle at 71% 0, rgba(184,243,225,.5), transparent 27%), linear-gradient(135deg, #f7faf9, #eef7f4); }
.portal-shell.light-theme .command-dashboard::before { opacity: .5; background-image: radial-gradient(circle, rgba(46,132,108,.12) 1px, transparent 1px); background-size: 19px 19px; mask-image: linear-gradient(#000, transparent 92%); }
.portal-shell.light-theme .brand-command-hero { background: #f7fbfa; border-color: rgba(54,118,99,.15); box-shadow: 0 18px 50px rgba(46,99,81,.1); }
.portal-shell.light-theme .brand-command-visual { opacity: .18; filter: saturate(.75) brightness(1.65); }
.portal-shell.light-theme .brand-command-hero::after { background: linear-gradient(90deg, rgba(248,252,251,.99) 0%, rgba(248,252,251,.93) 42%, rgba(248,252,251,.48) 72%, rgba(248,252,251,.18)), linear-gradient(0deg, rgba(248,252,251,.96), transparent 55%); }
.portal-shell.light-theme .brand-command-copy .eyebrow { color: #0b8a67; }
.portal-shell.light-theme .brand-command-copy h1 { color: #16231f; text-shadow: none; }
.portal-shell.light-theme .brand-command-copy p { color: #718078; }
.portal-shell.light-theme .hero-status-strip { background: rgba(255,255,255,.88); border-color: rgba(45,117,96,.15); box-shadow: 0 12px 34px rgba(47,92,79,.1); }
.portal-shell.light-theme .hero-status-strip article + article { border-color: rgba(44,115,94,.12); }
.portal-shell.light-theme .hero-status-strip span,
.portal-shell.light-theme .hero-status-strip small { color: #75837d; }
.portal-shell.light-theme .hero-status-strip strong { color: #087d5d; }
.portal-shell.light-theme .command-tools-section,
.portal-shell.light-theme .command-info-card,
.portal-shell.light-theme .service-profile-card,
.portal-shell.light-theme .service-rail-card { background: rgba(255,255,255,.88); border-color: rgba(50,111,93,.14); box-shadow: 0 12px 32px rgba(48,91,78,.08); }
.portal-shell.light-theme .command-section-heading h2,
.portal-shell.light-theme .command-tool-card h3,
.portal-shell.light-theme .command-card-heading h2,
.portal-shell.light-theme .recent-task-row strong { color: #182520; }
.portal-shell.light-theme .command-tool-card { background: linear-gradient(150deg, #fff, #f8fbfa); border-color: rgba(54,111,95,.13); box-shadow: 0 8px 24px rgba(48,91,78,.06); }
.portal-shell.light-theme .command-tool-card.ready { border-color: rgba(10,156,115,.36); background: linear-gradient(150deg, #f6fffb, #fff); }
.portal-shell.light-theme .command-tool-card p,
.portal-shell.light-theme .command-card-heading span,
.portal-shell.light-theme .member-benefit-card li,
.portal-shell.light-theme .platform-update-card li span,
.portal-shell.light-theme .recent-task-row span,
.portal-shell.light-theme .service-rail-card p { color: #718078; }
.portal-shell.light-theme .recent-task-empty,
.portal-shell.light-theme .recent-task-row,
.portal-shell.light-theme .platform-update-card li { background: rgba(241,248,245,.85); border-color: rgba(53,111,94,.11); }
.portal-shell.light-theme .recent-task-empty strong,
.portal-shell.light-theme .platform-update-card li strong { color: #34423d; }
.portal-shell.light-theme .service-profile-card strong { color: #88702d; }

@media (max-width: 1540px) {
  .command-dashboard { margin: -32px -28px -40px; padding: 22px 20px 36px; }
  .command-dashboard-layout { grid-template-columns: minmax(0, 1fr) 214px; }
  .brand-command-hero { min-height: 328px; }
  .command-tool-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .command-tool-card { min-height: 194px; }
  .command-tool-card p { min-height: 32px; }
  .command-information-grid { grid-template-columns: 1fr 1.25fr; }
  .platform-update-card { grid-column: 1 / -1; min-height: auto; }
  .platform-update-card ul { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1180px) {
  .command-dashboard-layout { grid-template-columns: 1fr; }
  .command-service-rail { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .service-profile-card { min-height: 150px; }
  .service-avatar { width: 48px; height: 48px; }
  .service-profile-card small { display: none; }
  .service-profile-card > button { margin-top: 10px; }
  .brand-command-copy { width: 52%; }
}
@media (max-width: 780px) {
  .command-dashboard { margin: -20px -14px -32px; padding: 12px 10px 28px; }
  .brand-command-hero { min-height: 570px; }
  .brand-command-visual { height: 310px; object-position: 64% center; }
  .brand-command-hero::after { background: linear-gradient(0deg, #020814 0%, rgba(2,8,20,.97) 42%, rgba(2,8,20,.1) 80%); }
  .portal-shell.light-theme .brand-command-hero::after { background: linear-gradient(0deg, #f8fcfb 0%, rgba(248,252,251,.98) 43%, rgba(248,252,251,.12) 82%); }
  .brand-command-copy { width: 100%; padding: 292px 20px 170px; }
  .hero-status-strip { grid-template-columns: 1fr; }
  .hero-status-strip article { min-height: 64px; }
  .hero-status-strip article + article { border-top: 1px solid rgba(104,147,199,.17); border-left: 0; }
  .hero-status-strip .dashboard-icon { width: 38px; height: 38px; flex-basis: 38px; }
  .command-tool-grid,
  .command-information-grid,
  .command-service-rail,
  .platform-update-card ul { grid-template-columns: 1fr; }
  .platform-update-card { grid-column: auto; }
  .command-tool-card { min-height: 176px; }
}

/* 3.23 最终首页：统一明亮工作台，保留飞羽地球主视觉与指定深色功能模块 */
.portal-shell.light-theme {
  color: #172722;
  background: #f7faf9;
  background-image: none;
}
.portal-shell.light-theme::before { opacity: 0; }
.portal-shell.light-theme .portal-topbar {
  color: #243630;
  background: rgba(255,255,255,.96);
  border-color: #e6eeeb;
  box-shadow: 0 4px 18px rgba(32,75,61,.045);
  backdrop-filter: blur(18px);
}
.portal-shell.light-theme .portal-sidebar {
  color: #34443f;
  background: #eef2f3;
  border-color: #dce5e7;
  box-shadow: 8px 0 26px rgba(24,71,57,.035);
}
.portal-shell.light-theme .portal-topbar-left strong,
.portal-shell.light-theme .sidebar-brand strong { color: #173a31; }
.portal-shell.light-theme .portal-topbar-left small,
.portal-shell.light-theme .sidebar-brand small { color: #84948f; }
.portal-shell.light-theme .portal-version,
.portal-shell.light-theme .portal-login-account,
.portal-shell.light-theme .focus-mode-button {
  color: #42544e;
  background: #f8fbfa;
  border-color: #e2ebe8;
}
.portal-shell.light-theme .portal-account > i { background: #dfe8e5; }
.portal-shell.light-theme .platform-menu-button,
.portal-shell.light-theme .shell-icon-button { color: #4d605a; background: #f7faf9; border-color: #dfe9e6; }
.portal-shell.light-theme .portal-nav-group > span { color: #9aa7a3; }
.portal-shell.light-theme .portal-nav-button { color: #3e504b; }
.portal-shell.light-theme .portal-nav-button svg { color: #536761; }
.portal-shell.light-theme .portal-nav-button:hover,
.portal-shell.light-theme .portal-nav-button.active {
  color: #087b5c;
  background: linear-gradient(90deg, #ebf8f3, #f5fbf9);
  border-color: #dcece6;
  box-shadow: none;
}
.portal-shell.light-theme .portal-nav-button.active svg { color: #0b9870; }
.portal-shell.light-theme .portal-nav-button small { color: #8a9a95; }
.portal-shell.light-theme .portal-plan-card {
  color: #fff;
  background: linear-gradient(145deg, #087d5d, #0ba475);
  border-color: rgba(255,255,255,.28);
  box-shadow: 0 14px 30px rgba(7,130,94,.16);
}
.portal-shell.light-theme .portal-plan-card strong,
.portal-shell.light-theme .portal-plan-card span { color: #fff; }
.portal-shell.light-theme .portal-plan-card small { color: rgba(255,255,255,.72); }
.portal-shell.light-theme .portal-main { background: #f8fbfa; }

.portal-shell.light-theme .command-dashboard {
  --command-border: #e0e9e6;
  min-height: calc(100vh - 78px);
  color: #1c2d27;
  background-color: #f8fbfa;
  background-image: radial-gradient(circle, rgba(49,126,104,.09) 1px, transparent 1px), radial-gradient(circle at 78% 9%, rgba(74,214,172,.13), transparent 23%);
  background-size: 22px 22px, auto;
}
.portal-shell.light-theme .command-dashboard::before { display: none; }
.portal-shell.light-theme .command-dashboard-layout { grid-template-columns: minmax(0, 1fr) 232px; gap: 16px; }

.portal-shell.light-theme .brand-command-hero {
  min-height: 326px;
  overflow: hidden;
  background: #fff;
  border-color: #e1eae7;
  box-shadow: 0 14px 38px rgba(31,82,66,.08);
}
.portal-shell.light-theme .brand-command-visual {
  inset: 0 0 auto auto;
  width: 68%;
  height: 100%;
  opacity: 1;
  object-position: right center;
  filter: saturate(.98) contrast(1.02);
}
.portal-shell.light-theme .brand-command-hero::after {
  background: linear-gradient(90deg, #fff 0%, #fff 33%, rgba(255,255,255,.88) 43%, rgba(255,255,255,.22) 63%, rgba(255,255,255,0) 79%);
}
.portal-shell.light-theme .brand-command-copy {
  width: min(54%, 690px);
  padding: 44px 36px 118px;
}
.portal-shell.light-theme .brand-command-copy h1 {
  margin: 0;
  color: #182722;
  font-size: clamp(32px, 2.55vw, 47px);
  line-height: 1.22;
  letter-spacing: -.025em;
  text-shadow: none;
}
.portal-shell.light-theme .brand-command-copy h1 span {
  margin-left: .25em;
  color: #0b946d;
  background: linear-gradient(105deg, #745cf6 0%, #258dcc 42%, #0aa376 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.portal-shell.light-theme .brand-command-copy p {
  margin-top: 12px;
  color: #65746f;
  font-size: 15px;
}
.portal-shell.light-theme .hero-status-strip {
  right: auto;
  bottom: 20px;
  left: 22px;
  width: min(58%, 690px);
  background: rgba(255,255,255,.95);
  border-color: #e0e9e6;
  box-shadow: 0 12px 28px rgba(35,85,69,.08);
  backdrop-filter: blur(18px);
}
.portal-shell.light-theme .hero-status-strip article { min-height: 78px; padding: 12px 15px; }
.portal-shell.light-theme .hero-status-strip article + article { border-color: #e8eeec; }
.portal-shell.light-theme .hero-status-strip .dashboard-icon {
  color: #0a9c72;
  background: #f0faf6;
  border-color: #bfe8d9;
}
.portal-shell.light-theme .hero-status-strip span,
.portal-shell.light-theme .hero-status-strip small { color: #7d8b87; }
.portal-shell.light-theme .hero-status-strip strong { color: #087c5c; }

/* 保留现有紧凑工具结构，颜色统一为明亮主题 */
.portal-shell.light-theme .command-tools-section {
  margin-top: 14px;
  padding: 12px 10px 10px;
  color: #263934;
  background: rgba(255,255,255,.96);
  border-color: #e0e9e6;
  box-shadow: 0 12px 30px rgba(31,79,64,.055);
}
.portal-shell.light-theme .command-section-heading { margin: 0 3px 9px; }
.portal-shell.light-theme .command-section-heading h2 { color: #263934; font-size: 16px; }
.portal-shell.light-theme .command-section-heading > span { height: 18px; }
.portal-shell.light-theme .command-tool-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; }
.portal-shell.light-theme .command-tool-card {
  display: grid;
  min-height: 150px;
  padding: 10px 9px 8px;
  overflow: hidden;
  color: #31443e;
  background: linear-gradient(150deg, #fff, #f9fbfa);
  border-color: #e1e9e7;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(37,82,68,.045);
  grid-template-columns: 40px minmax(0, 1fr);
  grid-template-rows: 20px auto minmax(42px, 1fr) auto;
  column-gap: 9px;
}
.portal-shell.light-theme .command-tool-card:hover { border-color: #b9d8cf; box-shadow: 0 10px 24px rgba(27,102,79,.09); }
.portal-shell.light-theme .command-tool-card.ready { background: linear-gradient(150deg, #f2fcf8, #fff); border-color: #a8dbc9; }
.portal-shell.light-theme .command-tool-card .tool-state { grid-column: 1 / -1; align-self: start; padding: 2px 6px; font-size: 8px; }
.portal-shell.light-theme .command-tool-icon { width: 38px; height: 38px; margin: 5px 0 0; border-radius: 9px; grid-column: 1; grid-row: 2 / 4; }
.portal-shell.light-theme .command-tool-icon svg { width: 21px; height: 21px; }
.portal-shell.light-theme .command-tool-card h3 { align-self: end; margin: 4px 0 3px; color: #263934; font-size: 13px; line-height: 1.3; grid-column: 2; grid-row: 2; }
.portal-shell.light-theme .command-tool-card p { min-height: 0; margin: 0; color: #7b8a85; font-size: 8.6px; line-height: 1.45; grid-column: 2; grid-row: 3; }
.portal-shell.light-theme .command-tool-card > button {
  min-height: 22px;
  padding: 0;
  margin-top: 5px;
  color: #d8b14b;
  background: transparent;
  border: 0;
  border-radius: 0;
  font-size: 9px;
  text-align: left;
  grid-column: 1 / -1;
  grid-row: 4;
}
.portal-shell.light-theme .command-tool-card.ready > button { color: #20d9ae; background: transparent; border: 0; }

/* 其余内容沿用用户确认的明亮信息卡结构 */
.portal-shell.light-theme .command-information-grid { grid-template-columns: 1.15fr 1fr .8fr; gap: 12px; }
.portal-shell.light-theme .command-info-card {
  min-height: 258px;
  padding: 16px;
  color: #24342f;
  background: rgba(255,255,255,.95);
  border-color: #e1eae7;
  box-shadow: 0 12px 30px rgba(31,79,64,.055);
}
.portal-shell.light-theme .command-card-heading h2,
.portal-shell.light-theme .recent-task-row strong { color: #21322c; }
.portal-shell.light-theme .command-card-heading span,
.portal-shell.light-theme .platform-update-card li span,
.portal-shell.light-theme .recent-task-row span { color: #7d8b87; }
.portal-shell.light-theme .recent-task-empty,
.portal-shell.light-theme .recent-task-row,
.portal-shell.light-theme .platform-update-card li {
  background: #f8fbfa;
  border-color: #e8efed;
}
.portal-shell.light-theme .recent-task-empty strong,
.portal-shell.light-theme .platform-update-card li strong { color: #34443f; }
.quick-action-list { display: grid; gap: 8px; }
.quick-action-list button {
  display: grid;
  min-height: 45px;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  color: #365048;
  background: #f8fbfa;
  border: 1px solid #e5eeeb;
  border-radius: 9px;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  text-align: left;
}
.quick-action-list button i { display: grid; width: 28px; height: 28px; color: #0b956d; background: #e6f7f1; border-radius: 8px; font-size: 10px; font-style: normal; place-items: center; }
.quick-action-list button span { display: grid; min-width: 0; gap: 2px; }
.quick-action-list button strong { color: #2b3e38; font-size: 10px; }
.quick-action-list button small { color: #899692; font-size: 8.5px; }
.quick-action-list button b { color: #0b956d; }

/* 保留现有账号与服务模块结构，配色跟随明亮主题 */
.portal-shell.light-theme .command-service-rail { gap: 12px; }
.portal-shell.light-theme .service-profile-card,
.portal-shell.light-theme .service-rail-card {
  color: #31443e;
  background: rgba(255,255,255,.96);
  border-color: #dfe8e5;
  box-shadow: 0 12px 30px rgba(31,79,64,.065);
}
.portal-shell.light-theme .service-profile-card strong { color: #765f23; }
.portal-shell.light-theme .service-profile-card small,
.portal-shell.light-theme .service-rail-card p { color: #7b8a85; }
.portal-shell.light-theme .service-rail-card.invite { background: linear-gradient(145deg, #fffdf7, #fff); border-color: #eadfbf; }
.portal-shell.light-theme .service-rail-card.premium { background: linear-gradient(145deg, #f7f5ff, #fff); border-color: #ddd7fb; }
.portal-shell.light-theme .service-rail-card.guide { background: linear-gradient(145deg, #f5f9ff, #fff); border-color: #d7e5f7; }

.portal-shell.light-theme .portal-service-button {
  color: #fff;
  background: #098561;
  border-color: #73d9bb;
  box-shadow: 0 8px 24px rgba(8,133,97,.23);
}

@media (max-width: 1540px) {
  .portal-shell.light-theme .command-dashboard-layout { grid-template-columns: minmax(0, 1fr) 214px; }
  .portal-shell.light-theme .command-tool-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .portal-shell.light-theme .command-tool-card { min-height: 148px; }
  .portal-shell.light-theme .command-information-grid { grid-template-columns: 1fr 1fr; }
  .portal-shell.light-theme .quick-action-card { grid-column: 1 / -1; min-height: auto; }
  .portal-shell.light-theme .quick-action-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1180px) {
  .portal-shell.light-theme .command-dashboard-layout { grid-template-columns: 1fr; }
  .portal-shell.light-theme .brand-command-visual { width: 59%; }
  .portal-shell.light-theme .command-tool-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .portal-shell.light-theme .command-service-rail { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
  .portal-shell.light-theme .brand-command-hero { min-height: 560px; }
  .portal-shell.light-theme .brand-command-visual { width: 100%; height: 270px; }
  .portal-shell.light-theme .brand-command-hero::after { background: linear-gradient(0deg, #fff 0%, #fff 54%, rgba(255,255,255,.08) 86%); }
  .portal-shell.light-theme .brand-command-copy { width: 100%; padding: 285px 18px 210px; }
  .portal-shell.light-theme .brand-command-copy h1 span { display: block; margin: 3px 0 0; }
  .portal-shell.light-theme .hero-status-strip { right: 14px; bottom: 14px; left: 14px; width: auto; }
  .portal-shell.light-theme .command-tool-grid,
  .portal-shell.light-theme .command-information-grid,
  .portal-shell.light-theme .command-service-rail,
  .portal-shell.light-theme .quick-action-list { grid-template-columns: 1fr; }
  .portal-shell.light-theme .quick-action-card { grid-column: auto; }
}

/* 3.23.1：严格按明亮参考稿提高文字对比度，绿色仅用于状态与重点操作。 */
.portal-shell.light-theme {
  color: #17211e;
}
.portal-shell.light-theme .portal-topbar-left strong,
.portal-shell.light-theme .sidebar-brand strong,
.portal-shell.light-theme .portal-account,
.portal-shell.light-theme .portal-account strong,
.portal-shell.light-theme .portal-version,
.portal-shell.light-theme .portal-login-account,
.portal-shell.light-theme .focus-mode-button {
  color: #1f2d28;
}
.portal-shell.light-theme .portal-topbar-left small,
.portal-shell.light-theme .sidebar-brand small {
  color: #60706b;
}
.portal-shell.light-theme .portal-account-state {
  color: #087b5c;
}
.portal-shell.light-theme .portal-nav-group > span {
  color: #65736f;
  font-weight: 650;
}
.portal-shell.light-theme .portal-nav-button,
.portal-shell.light-theme .portal-nav-button:disabled {
  color: #34443f;
  opacity: 1;
}
.portal-shell.light-theme .portal-nav-button svg,
.portal-shell.light-theme .portal-nav-button:disabled svg {
  color: #4f625c;
}
.portal-shell.light-theme .portal-nav-button small,
.portal-shell.light-theme .portal-nav-button:disabled small {
  color: #687873;
}
.portal-shell.light-theme .portal-nav-button:hover,
.portal-shell.light-theme .portal-nav-button.active {
  color: #07694f;
  font-weight: 720;
}
.portal-shell.light-theme .portal-plan-card small {
  color: rgba(255, 255, 255, .88);
}

.portal-shell.light-theme .brand-command-copy p {
  color: #485853;
  font-weight: 520;
}
.portal-shell.light-theme .hero-status-strip span {
  color: #596863;
  font-weight: 600;
}
.portal-shell.light-theme .hero-status-strip small {
  color: #52615c;
}
.portal-shell.light-theme .hero-status-strip strong {
  color: #076f53;
}

.portal-shell.light-theme .command-section-heading h2,
.portal-shell.light-theme .command-tool-card h3,
.portal-shell.light-theme .command-card-heading h2,
.portal-shell.light-theme .recent-task-row strong,
.portal-shell.light-theme .recent-task-empty strong,
.portal-shell.light-theme .platform-update-card li strong,
.portal-shell.light-theme .quick-action-list button strong {
  color: #1f2d28;
}
.portal-shell.light-theme .command-tool-card {
  min-height: 160px;
  color: #2d3c37;
  grid-template-rows: 22px auto minmax(48px, 1fr) auto;
}
.portal-shell.light-theme .command-tool-card .tool-state {
  font-size: 9px;
  font-weight: 750;
}
.portal-shell.light-theme .command-tool-card h3 {
  font-size: 13.5px;
  font-weight: 750;
}
.portal-shell.light-theme .command-tool-card p {
  color: #4f5f59;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.5;
}
.portal-shell.light-theme .command-tool-card > button,
.portal-shell.light-theme .command-tool-card > button:disabled {
  color: #896814;
  font-size: 10.5px;
  font-weight: 720;
  opacity: 1;
}
.portal-shell.light-theme .command-tool-card.ready > button,
.portal-shell.light-theme .command-tool-card.ready > button:disabled {
  color: #087b5c;
}

.portal-shell.light-theme .command-card-heading span,
.portal-shell.light-theme .platform-update-card li span,
.portal-shell.light-theme .recent-task-row span {
  color: #566660;
}
.portal-shell.light-theme .command-card-heading span {
  font-weight: 600;
}
.portal-shell.light-theme .platform-update-card li span,
.portal-shell.light-theme .recent-task-row span {
  font-size: 10.5px;
}
.portal-shell.light-theme .recent-task-empty p,
.portal-shell.light-theme .recent-task-empty small {
  color: #566660;
}
.portal-shell.light-theme .quick-action-list button {
  color: #2e4039;
}
.portal-shell.light-theme .quick-action-list button strong {
  font-size: 11px;
}
.portal-shell.light-theme .quick-action-list button small {
  color: #596963;
  font-size: 9.5px;
}

.portal-shell.light-theme .service-profile-card small,
.portal-shell.light-theme .service-rail-card p {
  color: #4f5f59;
}
.portal-shell.light-theme .service-profile-card small {
  font-weight: 520;
}
.portal-shell.light-theme .service-rail-card span {
  font-size: 14px;
}
.portal-shell.light-theme .service-rail-card p {
  font-size: 10.5px;
  font-weight: 500;
  line-height: 1.55;
}
.portal-shell.light-theme .service-rail-card button,
.portal-shell.light-theme .service-rail-card button:disabled {
  color: #806016;
  font-size: 10.5px;
  font-weight: 720;
  opacity: 1;
}
.portal-shell.light-theme .service-rail-card.premium button,
.portal-shell.light-theme .service-rail-card.premium button:disabled {
  color: #6455d5;
}
.portal-shell.light-theme .service-rail-card.guide button,
.portal-shell.light-theme .service-rail-card.guide button:disabled {
  color: #4c5fd0;
}

@media (max-width: 1540px) {
  .portal-shell.light-theme .command-tool-card { min-height: 158px; }
}

/* 3.23.1：账号、会员、付款与管理页面沿用同一套清晰文字层级。 */
.portal-shell.light-theme .portal-page-heading h1,
.portal-shell.light-theme .portal-page-heading h2,
.portal-shell.light-theme .coming-soon h1,
.portal-shell.light-theme .account-card,
.portal-shell.light-theme .membership-section-title h2,
.portal-shell.light-theme .membership-plan-card strong,
.portal-shell.light-theme .payment-tutorial-grid h3 {
  color: #1f2d28;
}
.portal-shell.light-theme .portal-page-heading p,
.portal-shell.light-theme .coming-soon p,
.portal-shell.light-theme .account-card p,
.portal-shell.light-theme .membership-section-title p,
.portal-shell.light-theme .membership-plan-card small,
.portal-shell.light-theme .payment-tutorial-grid p {
  color: #53635d;
}
.portal-shell.light-theme .account-card,
.portal-shell.light-theme .membership-section,
.portal-shell.light-theme .admin-form-card,
.portal-shell.light-theme .admin-table-wrap,
.portal-shell.light-theme .coming-soon {
  color: #263731;
  background: rgba(255, 255, 255, .97);
  border-color: #dce7e3;
  box-shadow: 0 12px 30px rgba(31, 79, 64, .065);
}
.portal-shell.light-theme .account-card label,
.portal-shell.light-theme .payment-submit-card > label,
.portal-shell.light-theme .admin-user-form label {
  color: #34463f;
}
.portal-shell.light-theme .account-card input,
.portal-shell.light-theme .account-card select,
.portal-shell.light-theme .payment-submit-card input,
.portal-shell.light-theme .payment-submit-card select,
.portal-shell.light-theme .admin-user-form input,
.portal-shell.light-theme .admin-user-form select {
  color: #1f2d28;
  background: #fff;
  border-color: #bdcbc6;
}
.portal-shell.light-theme .account-card input::placeholder,
.portal-shell.light-theme .payment-submit-card input::placeholder,
.portal-shell.light-theme .admin-user-form input::placeholder {
  color: #72817c;
  opacity: 1;
}
.portal-shell.light-theme .payment-submit-card input[readonly] {
  color: #076f53;
  background: #f1f8f5;
}
.portal-shell.light-theme .payment-qr-card,
.portal-shell.light-theme .payment-tutorial-grid article,
.portal-shell.light-theme .membership-plan-card > span {
  color: #2a3b35;
  background: #f8fbfa;
  border-color: #dce7e3;
}
.portal-shell.light-theme .payment-qr-heading,
.portal-shell.light-theme .payment-qr-heading strong {
  color: #283a34;
}
.portal-shell.light-theme .payment-qr-heading span {
  color: #596a64;
}
.portal-shell.light-theme .membership-plan-card input:checked + span {
  color: #1f2d28;
  background: #edf8f4;
  border-color: #69bca3;
  box-shadow: 0 0 0 2px rgba(11, 148, 109, .08);
}
.portal-shell.light-theme .membership-plan-card b {
  color: #076f53;
}

.portal-shell.light-theme .admin-table-wrap {
  overflow-x: auto;
}
.portal-shell.light-theme .admin-table th {
  color: #34453f;
  background: #f0f5f3;
  border-color: #dce5e2;
  font-weight: 700;
}
.portal-shell.light-theme .admin-table td,
.portal-shell.light-theme .admin-table tbody tr,
.portal-shell.light-theme .admin-table tbody tr:hover,
.portal-shell.light-theme .admin-table tbody tr:focus-within {
  color: #2a3b35;
  background: #fff;
  border-color: #e0e8e5;
}
.portal-shell.light-theme .admin-table tbody tr:hover,
.portal-shell.light-theme .admin-table tbody tr:focus-within {
  background: #f4f8f6;
}
.portal-shell.light-theme .admin-table td strong,
.portal-shell.light-theme .admin-table tbody tr:hover td strong,
.portal-shell.light-theme .admin-table tbody tr:focus-within td strong {
  color: #253630;
}
.portal-shell.light-theme .admin-table td small,
.portal-shell.light-theme .admin-table tbody tr:hover td small,
.portal-shell.light-theme .admin-table tbody tr:focus-within td small {
  color: #62726c;
}
.portal-shell.light-theme .admin-table button,
.portal-shell.light-theme .admin-table button:hover,
.portal-shell.light-theme .admin-table button:focus {
  color: #076f53;
  background: #f4faf7;
  border-color: #84bba9;
}
.portal-shell.light-theme .user-status.active,
.portal-shell.light-theme .payment-status.approved {
  color: #076f53;
  background: #ddf4eb;
}
.portal-shell.light-theme .user-status.disabled,
.portal-shell.light-theme .payment-status.rejected {
  color: #8a3f2b;
  background: #fff0ea;
}
.portal-shell.light-theme .payment-status.pending {
  color: #765715;
  background: #fff3cd;
}

/* 3.23.2 全站可读性、统一底板与转换器融合 */
.portal-shell.light-theme {
  --fy-page: #edf3f1;
  --fy-sidebar: #edf3f1;
  --fy-surface: #f7faf9;
  --fy-card: #ffffff;
  --fy-text: #172521;
  --fy-heading: #102b25;
  --fy-muted: #4b5f58;
  --fy-subtle: #61736c;
  --fy-line: #d3dfdb;
  --fy-green: #087b5c;
  --fy-green-dark: #065f49;
  --fy-gold: #76540b;
  --fy-purple: #5744c6;
  color: var(--fy-text);
  background: var(--fy-page);
}

.portal-shell.light-theme .portal-topbar {
  color: #f4fffb;
  background: linear-gradient(100deg, #06362e 0%, #07483b 56%, #06362e 100%);
  border-color: rgba(177, 236, 219, .24);
  box-shadow: 0 5px 22px rgba(9, 50, 41, .18);
}
.portal-shell.light-theme .portal-topbar-left strong,
.portal-shell.light-theme .portal-account,
.portal-shell.light-theme .portal-version,
.portal-shell.light-theme .portal-login-account,
.portal-shell.light-theme .portal-version strong,
.portal-shell.light-theme .portal-login-account strong {
  color: #f7fffc !important;
}
.portal-shell.light-theme .portal-topbar-left small { color: #b9d5cc !important; }
.portal-shell.light-theme .portal-account > i { background: rgba(222, 250, 241, .28); }
.portal-shell.light-theme .portal-account-state { color: #89f0d4 !important; }
.portal-shell.light-theme .portal-account-state.expired { color: #ffd09f !important; }

.portal-failure-notifications{position:relative;display:flex;align-items:center}
.portal-account .portal-notification-button{position:relative;display:grid;place-items:center;width:36px;height:36px;padding:0;border-color:rgba(255,255,255,.26);border-radius:50%}
.portal-notification-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.portal-notification-button>span{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:19px;height:19px;padding:0 4px;border:2px solid #064b3f;border-radius:999px;background:#e7493f;color:#fff;font-size:10px;font-weight:800;line-height:1}
.portal-notification-panel{position:absolute;z-index:80;top:46px;right:0;width:min(430px,calc(100vw - 24px));overflow:hidden;border:1px solid #cfe0db;border-radius:12px;background:#fff;color:#163c34;box-shadow:0 18px 50px rgba(17,51,44,.2)}
.portal-notification-panel[hidden]{display:none}
.portal-notification-panel header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid #e4eeeb;background:#f5faf8}
.portal-notification-panel header div{display:grid;gap:2px}
.portal-notification-panel header strong{color:#153d34;font-size:15px}
.portal-notification-panel header small{color:#71847f;font-size:11px}
.portal-account .portal-notification-panel header button{padding:6px 9px;border-color:#93c9ba;background:#fff;color:#08765e;font-size:11px}
.portal-notification-list{max-height:420px;overflow:auto}
.portal-notification-list>p{margin:0;padding:24px 16px;color:#71847f;text-align:center}
.portal-notification-item{display:grid;gap:7px;padding:13px 16px;border-bottom:1px solid #e8efed;background:#fff}
.portal-notification-item.unread{border-left:3px solid #e7493f;background:#fff9f7}
.portal-notification-item>div{display:flex;align-items:start;justify-content:space-between;gap:12px}
.portal-notification-item strong{color:#173c34;font-size:13px}
.portal-notification-item time,.portal-notification-item small{color:#778983;font-size:10px}
.portal-notification-item p{margin:0;color:#a83d32;font-size:12px;line-height:1.55}
.ad-date-presets button:disabled{cursor:not-allowed!important;border-color:transparent!important;background:#eef1f0!important;color:#abb6b2!important;opacity:.72}

@media(max-width:760px){.portal-notification-panel{position:fixed;top:62px;right:12px}}
.portal-shell.light-theme .shell-icon-button,
.portal-shell.light-theme .focus-mode-button,
.portal-shell.light-theme .platform-menu-button {
  color: #f4fffb !important;
  background: rgba(255, 255, 255, .08) !important;
  border-color: rgba(222, 250, 241, .32) !important;
}
.portal-shell.light-theme .shell-icon-button span,
.portal-shell.light-theme .platform-menu-button span { background: currentColor !important; }

.portal-shell.light-theme .portal-layout,
.portal-shell.light-theme .portal-main,
.portal-shell.light-theme .portal-content,
.portal-shell.light-theme .portal-view,
.portal-shell.light-theme .command-dashboard { background: var(--fy-page); }
.portal-shell.light-theme .portal-sidebar {
  background: var(--fy-sidebar);
  border-color: var(--fy-line);
  box-shadow: 8px 0 24px rgba(39, 74, 63, .035);
}
.portal-shell.light-theme .sidebar-brand strong { color: var(--fy-heading) !important; }
.portal-shell.light-theme .sidebar-brand small,
.portal-shell.light-theme .portal-nav-group > span { color: var(--fy-muted) !important; }
.portal-shell.light-theme .portal-nav-button,
.portal-shell.light-theme .portal-nav-button:disabled {
  color: #3f544d !important;
  background: transparent !important;
  border-color: transparent !important;
  opacity: 1 !important;
}
.portal-shell.light-theme .portal-nav-button > span,
.portal-shell.light-theme .portal-nav-button:disabled > span {
  color: #273d36 !important;
  opacity: 1 !important;
}
.portal-shell.light-theme .portal-nav-button small,
.portal-shell.light-theme .portal-nav-button:disabled small {
  color: #61736c !important;
  opacity: 1 !important;
}
.portal-shell.light-theme .portal-nav-button svg,
.portal-shell.light-theme .portal-nav-button:disabled svg {
  color: #425d54 !important;
  opacity: 1 !important;
}
.portal-shell.light-theme .portal-nav-button:hover,
.portal-shell.light-theme .portal-nav-button:focus-visible,
.portal-shell.light-theme .portal-nav-button.active {
  color: var(--fy-green-dark) !important;
  background: #e4f2ed !important;
  border-color: #bfdbd1 !important;
  transform: none;
}
.portal-shell.light-theme .portal-nav-button:hover > span,
.portal-shell.light-theme .portal-nav-button:focus-visible > span,
.portal-shell.light-theme .portal-nav-button.active > span { color: var(--fy-green-dark) !important; }
.portal-shell.light-theme .portal-nav-button:hover small,
.portal-shell.light-theme .portal-nav-button:focus-visible small,
.portal-shell.light-theme .portal-nav-button.active small { color: #49685d !important; }
.portal-shell.light-theme .portal-plan-card {
  color: #f4fffb;
  background: linear-gradient(145deg, #087b5c, #0b9a72);
  border-color: #0a7459;
}
.portal-shell.light-theme .portal-plan-card strong,
.portal-shell.light-theme .portal-plan-card span,
.portal-shell.light-theme .portal-plan-card small { color: #f4fffb !important; }

.portal-shell.light-theme .brand-command-hero,
.portal-shell.light-theme .command-tools-section,
.portal-shell.light-theme .command-info-card,
.portal-shell.light-theme .service-profile-card,
.portal-shell.light-theme .service-rail-card,
.portal-shell.light-theme .dashboard-card,
.portal-shell.light-theme .admin-form-card,
.portal-shell.light-theme .admin-table-wrap,
.portal-shell.light-theme .account-card,
.portal-shell.light-theme .membership-section,
.portal-shell.light-theme .membership-benefit-comparison article,
.portal-shell.light-theme .coming-soon {
  color: var(--fy-text);
  background: var(--fy-card);
  border-color: var(--fy-line);
  box-shadow: 0 10px 28px rgba(40, 79, 67, .065);
}
.portal-shell.light-theme .brand-command-copy h1,
.portal-shell.light-theme .brand-command-copy h1 span,
.portal-shell.light-theme .command-section-heading h2,
.portal-shell.light-theme .command-card-heading h2,
.portal-shell.light-theme .portal-page-heading h1,
.portal-shell.light-theme .portal-page-heading h2,
.portal-shell.light-theme .coming-soon h1,
.portal-shell.light-theme .account-card h2,
.portal-shell.light-theme .membership-section-title h2 { color: var(--fy-heading) !important; }
.portal-shell.light-theme .brand-command-copy p,
.portal-shell.light-theme .portal-page-heading p,
.portal-shell.light-theme .coming-soon p,
.portal-shell.light-theme .membership-section-title p,
.portal-shell.light-theme .local-record-note { color: var(--fy-muted) !important; }
.portal-shell.light-theme .brand-command-copy h1 span { color: var(--fy-green) !important; }

.portal-shell.light-theme .hero-status-strip {
  background: rgba(255, 255, 255, .94);
  border-color: var(--fy-line);
}
.portal-shell.light-theme .hero-status-strip article { border-color: var(--fy-line); }
.portal-shell.light-theme .hero-status-strip span { color: var(--fy-muted) !important; }
.portal-shell.light-theme .hero-status-strip strong { color: var(--fy-heading) !important; }
.portal-shell.light-theme .hero-status-strip small { color: var(--fy-subtle) !important; }
.portal-shell.light-theme .dashboard-icon { color: var(--fy-green) !important; background: #e8f6f1 !important; border-color: #b7dfd1 !important; }

.portal-shell.light-theme .command-tool-card,
.portal-shell.light-theme .command-tool-card.ready,
.portal-shell.light-theme .command-tool-card.pending {
  color: var(--fy-text);
  background: linear-gradient(160deg, #ffffff, #f7faf9);
  border-color: var(--fy-line);
  box-shadow: none;
}
.portal-shell.light-theme .command-tool-card:hover,
.portal-shell.light-theme .command-tool-card:focus-within {
  background: #ffffff;
  border-color: #a9cfc2;
  box-shadow: 0 9px 22px rgba(31, 99, 77, .085);
  transform: translateY(-1px);
}
.portal-shell.light-theme .command-tool-card h3 { color: #172a24 !important; }
.portal-shell.light-theme .command-tool-card p { color: #465b54 !important; opacity: 1 !important; }
.portal-shell.light-theme .command-tool-card .tool-state { color: var(--fy-gold) !important; background: #fff4d8 !important; border-color: #e2c675 !important; opacity: 1 !important; }
.portal-shell.light-theme .command-tool-card.ready .tool-state { color: #066f52 !important; background: #daf3e9 !important; border-color: #78c6ad !important; }
.portal-shell.light-theme .command-tool-card > button,
.portal-shell.light-theme .command-tool-card > button:hover,
.portal-shell.light-theme .command-tool-card > button:focus {
  color: var(--fy-gold) !important;
  background: transparent !important;
  border-color: #c9ab56 !important;
  opacity: 1 !important;
}
.portal-shell.light-theme .command-tool-card.ready > button,
.portal-shell.light-theme .command-tool-card.ready > button:hover,
.portal-shell.light-theme .command-tool-card.ready > button:focus { color: var(--fy-green-dark) !important; border-color: #76bba4 !important; }

.portal-shell.light-theme .command-card-heading span,
.portal-shell.light-theme .recent-task-empty span,
.portal-shell.light-theme .platform-update-card li span,
.portal-shell.light-theme .quick-action-list small { color: var(--fy-muted) !important; }
.portal-shell.light-theme .recent-task-empty strong,
.portal-shell.light-theme .platform-update-card li strong,
.portal-shell.light-theme .quick-action-list strong { color: var(--fy-text) !important; }
.portal-shell.light-theme .platform-update-card li,
.portal-shell.light-theme .quick-action-list button,
.portal-shell.light-theme .recent-task-list > * { background: #f5f8f7 !important; border-color: #d8e3df !important; }
.portal-shell.light-theme .platform-update-card li i,
.portal-shell.light-theme .quick-action-list i { color: var(--fy-green-dark) !important; background: #e1f2ec !important; }
.portal-shell.light-theme .command-card-heading button,
.portal-shell.light-theme .quick-action-list b { color: var(--fy-green-dark) !important; }

.portal-shell.light-theme .service-profile-card strong { color: var(--fy-heading) !important; }
.portal-shell.light-theme .service-profile-card small,
.portal-shell.light-theme .service-rail-card p { color: var(--fy-muted) !important; opacity: 1 !important; }
.portal-shell.light-theme .service-profile-card > b { color: var(--fy-gold) !important; background: #fff1c4 !important; }
.portal-shell.light-theme .service-rail-card span { color: var(--fy-gold) !important; opacity: 1 !important; }
.portal-shell.light-theme .service-rail-card.premium span,
.portal-shell.light-theme .service-rail-card.guide span { color: var(--fy-purple) !important; }
.portal-shell.light-theme .service-profile-card button,
.portal-shell.light-theme .service-rail-card button,
.portal-shell.light-theme .service-rail-card button:hover,
.portal-shell.light-theme .service-rail-card button:focus {
  color: var(--fy-gold) !important;
  background: #fff !important;
  border-color: #c8aa55 !important;
  opacity: 1 !important;
}
.portal-shell.light-theme .service-rail-card.premium button,
.portal-shell.light-theme .service-rail-card.guide button { color: var(--fy-purple) !important; border-color: #9587dc !important; }

.portal-shell.light-theme .account-panel,
.portal-shell.light-theme .account-drawer,
.portal-shell.light-theme .account-panel-group { color: var(--fy-text); background: var(--fy-card); border-color: var(--fy-line); }
.portal-shell.light-theme .account-panel strong,
.portal-shell.light-theme .account-drawer strong,
.portal-shell.light-theme .account-panel-title { color: var(--fy-heading) !important; }
.portal-shell.light-theme .account-panel small,
.portal-shell.light-theme .account-drawer small,
.portal-shell.light-theme .account-panel p,
.portal-shell.light-theme .account-drawer p { color: var(--fy-muted) !important; }

.portal-shell.light-theme .benefit-plan,
.portal-shell.light-theme .membership-plan-card > span,
.portal-shell.light-theme .payment-qr-card,
.portal-shell.light-theme .payment-tutorial-grid article {
  color: var(--fy-text);
  background: #f8fbfa;
  border-color: var(--fy-line);
}
.portal-shell.light-theme .benefit-plan h2,
.portal-shell.light-theme .benefit-plan strong,
.portal-shell.light-theme .membership-plan-card strong,
.portal-shell.light-theme .payment-qr-heading strong,
.portal-shell.light-theme .payment-tutorial-grid h3 { color: var(--fy-heading) !important; }
.portal-shell.light-theme .benefit-plan small,
.portal-shell.light-theme .benefit-plan li,
.portal-shell.light-theme .membership-plan-card small,
.portal-shell.light-theme .payment-qr-heading span,
.portal-shell.light-theme .payment-tutorial-grid p { color: var(--fy-muted) !important; }
.portal-shell.light-theme .benefit-plan li.muted { color: #6d7b76 !important; }
.portal-shell.light-theme .membership-plan-card input:checked + span { color: var(--fy-text); background: #eaf6f1; border-color: #62ac94; }
.portal-shell.light-theme .membership-plan-card b,
.portal-shell.light-theme .payment-submit-card input[readonly] { color: var(--fy-green-dark) !important; }
.portal-shell.light-theme .payment-submit-card > label { color: #324b43 !important; }
.portal-shell.light-theme .payment-submit-card input,
.portal-shell.light-theme .payment-submit-card select { color: #172521 !important; background: #fff !important; border-color: #bfcfca !important; }
.portal-shell.light-theme .payment-submit-card input::placeholder { color: #6b7974 !important; opacity: 1; }

.portal-shell.light-theme .admin-table { color: var(--fy-text); background: #fff; }
.portal-shell.light-theme .admin-table th { color: #203a32 !important; background: #edf3f1 !important; border-color: #d3dfdb !important; }
.portal-shell.light-theme .admin-table td,
.portal-shell.light-theme .admin-table tbody tr,
.portal-shell.light-theme .admin-table tbody tr:hover,
.portal-shell.light-theme .admin-table tbody tr:focus-within { color: #20332d !important; background: #fff !important; border-color: #d7e1de !important; opacity: 1 !important; }
.portal-shell.light-theme .admin-table tbody tr:hover,
.portal-shell.light-theme .admin-table tbody tr:focus-within { background: #f1f6f4 !important; }
.portal-shell.light-theme .admin-table td strong { color: #172521 !important; }
.portal-shell.light-theme .admin-table td small { color: #536760 !important; }
.portal-shell.light-theme .admin-table button,
.portal-shell.light-theme .admin-table button:hover,
.portal-shell.light-theme .admin-table button:focus { color: var(--fy-green-dark) !important; background: #f7fbf9 !important; border-color: #6eae99 !important; }

.portal-shell.light-theme .portal-primary-button,
.portal-shell.light-theme .portal-primary-button:hover,
.portal-shell.light-theme .portal-primary-button:focus { color: #fff !important; background: var(--fy-green) !important; border-color: var(--fy-green-dark) !important; }
.portal-shell.light-theme button:disabled,
.portal-shell.light-theme [aria-disabled="true"] { opacity: 1 !important; }

/* 转换器成为平台主工作区的一部分 */
.portal-shell.light-theme .converter-view {
  margin: -42px -52px -48px;
  color: #17212b;
  background: #eef2f3;
}
.portal-shell.light-theme .converter-view .app-header { display: none !important; }
.portal-shell.light-theme .converter-view .workspace { min-height: calc(100vh - 72px); background: #eef2f3; }
.portal-shell.light-theme .converter-view .settings-panel { color: #17212b; background: #eef2f3; border-color: #cbd7da; }
.portal-shell.light-theme .converter-view .panel-block,
.portal-shell.light-theme .converter-view .content-panel,
.portal-shell.light-theme .converter-view .summary-card,
.portal-shell.light-theme .converter-view .table-wrap { color: #17212b; background: #fff; border-color: #cbd7da; }
.portal-shell.light-theme .converter-view h1,
.portal-shell.light-theme .converter-view h2,
.portal-shell.light-theme .converter-view h3,
.portal-shell.light-theme .converter-view label,
.portal-shell.light-theme .converter-view strong { color: #17212b; }
.portal-shell.light-theme .converter-view p,
.portal-shell.light-theme .converter-view small,
.portal-shell.light-theme .converter-view .hint,
.portal-shell.light-theme .converter-view .summary-group span { color: #4f626b; }
.portal-shell.light-theme .converter-view input,
.portal-shell.light-theme .converter-view select,
.portal-shell.light-theme .converter-view textarea { color: #17212b; background: #fff; border-color: #bfcbd0; }
.portal-shell.light-theme .converter-view button:not(.primary-button) { color: #183c34; }

/* 登录、注册与密码页保持相同的清晰层级 */
.auth-shell { color: #172521; }
.auth-card { color: #172521; background: rgba(255, 255, 255, .97); border-color: #cddbd6; box-shadow: 0 24px 70px rgba(22, 59, 48, .18); }
.auth-card h1,
.auth-card strong { color: #102b25; }
.auth-card p,
.auth-card .remember-login-row small { color: #536760; }
.auth-card label,
.auth-card .remember-login-row span { color: #273e36; }
.auth-card input,
.auth-card input:-webkit-autofill { color: #172521; -webkit-text-fill-color: #172521; background: #fff; border-color: #b9cbc5; box-shadow: 0 0 0 1000px #fff inset; }
.auth-card input::placeholder { color: #687873; opacity: 1; }
.auth-card .portal-primary-button { color: #fff; background: #087b5c; border-color: #065f49; box-shadow: none; }
.auth-link,
.auth-card a { color: #066c52; }

@media (max-width: 1180px) {
  .portal-shell.light-theme .converter-view { margin: -32px -28px -40px; }
}

/* 3.23.2 浏览器逐页验收修正：账号侧栏、转换器按钮与交互态 */
.portal-shell.light-theme .account-service-panel {
  color: var(--fy-text) !important;
  background: #f8fbfa !important;
  border-color: var(--fy-line) !important;
  box-shadow: -20px 0 60px rgba(29, 61, 52, .16) !important;
}
.portal-shell.light-theme .account-panel-header { border-color: #d7e2de !important; }
.portal-shell.light-theme .account-panel-header span,
.portal-shell.light-theme .account-panel-title span,
.portal-shell.light-theme .account-profile-card span,
.portal-shell.light-theme .account-profile-card small,
.portal-shell.light-theme .account-panel-grid small,
.portal-shell.light-theme .drawer-membership-summary > span,
.portal-shell.light-theme .drawer-membership-summary > small,
.portal-shell.light-theme .update-drawer-card ul { color: var(--fy-muted) !important; opacity: 1 !important; }
.portal-shell.light-theme .account-panel-header strong,
.portal-shell.light-theme .account-profile-card strong,
.portal-shell.light-theme .account-panel-grid b,
.portal-shell.light-theme .account-panel-title,
.portal-shell.light-theme .account-panel-title strong { color: var(--fy-heading) !important; }
.portal-shell.light-theme .account-panel-header button {
  color: #304940 !important;
  background: #edf3f1 !important;
  border-color: #c4d4cf !important;
}
.portal-shell.light-theme .account-profile-card,
.portal-shell.light-theme .account-panel-group {
  color: var(--fy-text) !important;
  background: #fff !important;
  border-color: #d5e1dd !important;
  box-shadow: none !important;
}
.portal-shell.light-theme .account-panel-grid button {
  color: var(--fy-text) !important;
  background: #f4f8f6 !important;
  border-color: #d7e2de !important;
}
.portal-shell.light-theme .account-panel-grid button:not(:disabled):hover,
.portal-shell.light-theme .account-panel-grid button:not(:disabled):focus {
  color: var(--fy-heading) !important;
  background: #e9f4f0 !important;
  border-color: #75b59f !important;
}
.portal-shell.light-theme .account-panel-title > b,
.portal-shell.light-theme .drawer-membership-summary > strong { color: var(--fy-green-dark) !important; }
.portal-shell.light-theme .drawer-membership-summary button {
  color: #fff !important;
  background: var(--fy-green) !important;
  border: 1px solid var(--fy-green-dark) !important;
}
.portal-shell.light-theme .drawer-logout-button,
.portal-shell.light-theme .drawer-logout-button:hover,
.portal-shell.light-theme .drawer-logout-button:focus {
  color: #a1202a !important;
  background: #fff4f4 !important;
  border-color: #d99a9f !important;
}

.portal-shell.light-theme .converter-view .primary-btn,
.portal-shell.light-theme .converter-view .accent-btn,
.portal-shell.light-theme .converter-view button.primary-btn,
.portal-shell.light-theme .converter-view button.accent-btn,
.portal-shell.light-theme .converter-view .primary-btn:hover,
.portal-shell.light-theme .converter-view .primary-btn:focus,
.portal-shell.light-theme .converter-view .accent-btn:hover,
.portal-shell.light-theme .converter-view .accent-btn:focus {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.portal-shell.light-theme .converter-view .primary-btn:disabled,
.portal-shell.light-theme .converter-view .accent-btn:disabled {
  color: #36514a !important;
  -webkit-text-fill-color: #36514a !important;
  background: #c9d7d3 !important;
  border-color: #b8c9c4 !important;
}

/* 3.23.2 最终验收：聚焦态保持清晰，中等屏幕避免工具卡拥挤 */
.portal-shell.light-theme .account-panel-grid button:focus,
.portal-shell.light-theme .account-panel-grid button:focus-visible,
.portal-shell.light-theme .portal-sidebar button:focus,
.portal-shell.light-theme .portal-sidebar button:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(8, 123, 92, .2) !important;
}

@media (max-width: 1400px) {
  .portal-shell.light-theme .command-tool-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .portal-shell.light-theme .command-tool-card {
    min-height: 156px !important;
  }
}

@media (max-width: 820px) {
  .portal-shell.light-theme .command-tool-grid {
    grid-template-columns: 1fr !important;
  }
}

/* 3.23.3 顶部信息与专注模式布局修正 */
.portal-shell.light-theme .portal-version,
.portal-shell.light-theme .portal-login-account {
  color: #f7fffc !important;
  -webkit-text-fill-color: #f7fffc;
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.portal-shell.light-theme .portal-version strong,
.portal-shell.light-theme .portal-login-account strong {
  color: #f7fffc !important;
  -webkit-text-fill-color: #f7fffc;
}
.portal-shell.light-theme.focus-mode .portal-layout {
  grid-template-columns: 0 minmax(0, 1fr);
}
.portal-shell.light-theme.focus-mode .portal-main {
  padding: 0;
  overflow-x: hidden;
}
.portal-shell.light-theme.focus-mode .converter-view {
  width: 100%;
  max-width: 100%;
  margin: 0 !important;
}
.portal-shell.light-theme.focus-mode .converter-view .workspace {
  width: 100%;
  min-width: 0;
}

/* 社媒账号视频监测：独立模块样式，不改变转换器布局。 */
.social-monitor-shell { color: #18302a; }
.social-monitor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.social-monitor-heading .eyebrow { display: block; margin-bottom: 6px; color: #087b5c; font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.social-monitor-heading h1 { margin: 0 0 7px; color: #102b25; font-size: 26px; }
.social-monitor-heading p { max-width: 760px; margin: 0; color: #61736c; line-height: 1.65; }
.social-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.social-heading-actions button,
.social-toolbar button,
.social-card-heading button,
.social-dialog-actions button { min-height: 36px; padding: 0 13px; color: #065f49; background: #f7fbf9; border: 1px solid #9ec5b7; border-radius: 7px; font-weight: 700; cursor: pointer; }
.social-heading-actions button:disabled,
.social-toolbar button:disabled { cursor: wait; opacity: .6; }
.social-source-status { display: inline-flex; align-items: center; min-height: 32px; padding: 0 10px; color: #5c4b17; background: #fff7dc; border: 1px solid #ead58b; border-radius: 999px; font-size: 12px; font-weight: 700; }
.social-source-status.ready { color: #066548; background: #eaf8f2; border-color: #9fd9c5; }
.social-notice { margin-bottom: 14px; padding: 11px 14px; color: #694d09; background: #fff8de; border: 1px solid #ead28a; border-radius: 9px; font-size: 13px; line-height: 1.55; }
.social-tabs { display: flex; gap: 4px; margin-bottom: 16px; padding: 5px; overflow-x: auto; background: #e5efec; border: 1px solid #d1dfda; border-radius: 10px; }
.social-tabs button { flex: 0 0 auto; min-height: 36px; padding: 0 15px; color: #536760; background: transparent; border: 0; border-radius: 7px; font-weight: 700; cursor: pointer; }
.social-tabs button.active { color: #fff; background: #087b5c; box-shadow: 0 5px 14px rgba(8,123,92,.18); }
.social-tabs button b { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; margin-left: 4px; padding: 0 5px; color: #fff; background: #c2413b; border-radius: 999px; font-size: 10px; }
.social-stat-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 11px; margin-bottom: 14px; }
.social-stat-grid article,
.social-card,
.social-settings-card { background: #fff; border: 1px solid #d3dfdb; border-radius: 11px; box-shadow: 0 8px 22px rgba(28,75,61,.05); }
.social-stat-grid article { min-width: 0; padding: 15px; }
.social-stat-grid span { display: block; color: #61736c; font-size: 12px; }
.social-stat-grid strong { display: block; margin: 7px 0 4px; color: #102b25; font-size: 27px; line-height: 1; }
.social-stat-grid strong.small-value { overflow: hidden; font-size: 13px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.social-stat-grid small { display: block; overflow: hidden; color: #7b8c85; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.social-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.social-card { padding: 17px; }
.social-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.social-card-heading h2 { margin: 0 0 4px; color: #18302a; font-size: 16px; }
.social-card-heading p { margin: 0; color: #72837d; font-size: 12px; }
.social-compact-list { display: grid; gap: 8px; }
.social-compact-item { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 11px; background: #f6f9f8; border: 1px solid #e0e9e6; border-radius: 8px; }
.social-compact-item div { min-width: 0; }
.social-compact-item strong,
.social-compact-item span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.social-compact-item strong { color: #20352f; font-size: 12px; }
.social-compact-item span,
.social-compact-item time { color: #73847e; font-size: 11px; }
.social-empty { padding: 30px 16px; color: #7b8c85; text-align: center; }
.social-toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 11px; flex-wrap: wrap; }
.social-toolbar input,
.social-toolbar select,
.social-settings-card input,
.social-dialog input,
.social-dialog select,
.social-dialog textarea { min-height: 36px; padding: 7px 10px; color: #20352f; background: #fff; border: 1px solid #bdccc7; border-radius: 7px; font: inherit; }
.social-toolbar input[type="search"] { min-width: 250px; }
.social-table-wrap { overflow: auto; background: #fff; border: 1px solid #d3dfdb; border-radius: 10px; box-shadow: 0 8px 22px rgba(28,75,61,.04); }
.social-table-wrap table { width: 100%; min-width: 920px; border-collapse: collapse; }
.social-table-wrap th,
.social-table-wrap td { padding: 11px 12px; border-bottom: 1px solid #e2eae7; text-align: left; vertical-align: middle; }
.social-table-wrap th { color: #52665f; background: #edf3f1; font-size: 12px; white-space: nowrap; }
.social-table-wrap td { color: #283c36; font-size: 12px; }
.social-table-wrap td strong,
.social-table-wrap td small { display: block; }
.social-table-wrap td small { max-width: 280px; margin-top: 3px; overflow: hidden; color: #778880; text-overflow: ellipsis; white-space: nowrap; }
.social-table-wrap tr:last-child td { border-bottom: 0; }
.social-row-actions { display: flex; gap: 5px; flex-wrap: wrap; }
.social-row-actions button { padding: 4px 7px; color: #066548; background: #f7fbf9; border: 1px solid #9ec5b7; border-radius: 5px; cursor: pointer; white-space: nowrap; }
.social-row-actions button.danger { color: #a52f2a; border-color: #e5aaa6; }
.social-status { display: inline-flex; align-items: center; min-height: 22px; padding: 0 7px; border-radius: 999px; color: #5c4b17; background: #fff4ca; font-size: 11px; font-weight: 700; white-space: nowrap; }
.social-status.success,
.social-status.enabled,
.social-status.read { color: #086046; background: #e8f6f0; }
.social-status.failed,
.social-status.unread { color: #a52f2a; background: #ffe8e6; }
.social-status.disabled,
.social-status.skipped { color: #64716d; background: #e9eeec; }
.social-status.partial { color: #865f0b; background: #fff2c7; }
.social-video-cell { display: flex; align-items: center; gap: 9px; min-width: 250px; }
.social-video-cell img { width: 48px; height: 48px; object-fit: cover; background: #edf3f1; border: 1px solid #d3dfdb; border-radius: 6px; }
.social-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 7px; min-height: 42px; color: #61736c; font-size: 12px; }
.social-pagination button { min-width: 32px; height: 30px; color: #075f48; background: #fff; border: 1px solid #b7cbc4; border-radius: 6px; cursor: pointer; }
.social-pagination button:disabled { cursor: not-allowed; opacity: .4; }
.social-settings-card { display: grid; grid-template-columns: minmax(250px, 1fr) minmax(250px, 1fr); gap: 17px 24px; max-width: 920px; padding: 22px; }
.social-settings-card h2 { margin: 0 0 5px; color: #163029; font-size: 17px; }
.social-settings-card p { margin: 0; color: #6a7b75; font-size: 12px; line-height: 1.55; }
.social-settings-card label:not(.social-switch) { display: grid; gap: 6px; color: #334a43; font-size: 12px; font-weight: 700; }
.social-switch { display: flex; align-items: center; gap: 9px; color: #30473f; font-size: 13px; font-weight: 700; }
.social-switch input { width: 17px; height: 17px; min-height: 0; }
.social-settings-card > button { justify-self: start; }
.social-dialog { width: min(660px, calc(100vw - 28px)); max-height: calc(100vh - 40px); padding: 0; overflow: auto; color: #20352f; background: #fff; border: 1px solid #b8cbc4; border-radius: 12px; box-shadow: 0 24px 70px rgba(4,40,30,.28); }
.social-dialog::backdrop { background: rgba(7,23,19,.48); }
.social-dialog > form,
.social-video-dialog { padding: 20px; }
.social-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 17px; }
.social-dialog-heading h2 { margin: 0 0 4px; color: #132f27; font-size: 20px; }
.social-dialog-heading p { margin: 0; color: #70817b; font-size: 12px; }
.social-dialog-heading > button { width: 32px; height: 32px; color: #50645d; background: #f1f6f4; border: 0; border-radius: 7px; font-size: 20px; cursor: pointer; }
.social-dialog form > label { display: grid; gap: 6px; margin-bottom: 13px; color: #334a43; font-size: 12px; font-weight: 700; }
.social-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.social-form-grid label { display: grid; gap: 6px; color: #334a43; font-size: 12px; font-weight: 700; }
.social-dialog textarea { resize: vertical; }
.social-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.social-video-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin: 13px 0; }
.social-video-summary article { padding: 11px; background: #f4f8f6; border-radius: 8px; }
.social-video-summary span,
.social-video-summary strong { display: block; }
.social-video-summary span { color: #687a73; font-size: 11px; }
.social-video-summary strong { margin-top: 4px; color: #18332b; font-size: 16px; }
.social-detail-block { margin-top: 13px; padding: 13px; background: #f6f9f8; border: 1px solid #e0e9e6; border-radius: 8px; }
.social-detail-block h3 { margin: 0 0 8px; font-size: 14px; }
.social-detail-block p { margin: 4px 0; color: #5d7069; font-size: 12px; line-height: 1.55; }
.social-toast { position: fixed; right: 26px; bottom: 26px; z-index: 4000; max-width: 420px; padding: 11px 15px; color: #fff; background: #087b5c; border-radius: 8px; box-shadow: 0 16px 38px rgba(4,62,45,.26); font-size: 13px; }
.social-toast.error { background: #a93631; }

@media (max-width: 1180px) {
  .social-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .social-monitor-heading { flex-direction: column; }
  .social-heading-actions { justify-content: flex-start; }
}

@media (max-width: 760px) {
  .social-stat-grid,
  .social-card-grid,
  .social-settings-card,
  .social-form-grid { grid-template-columns: 1fr; }
  .social-toolbar input[type="search"] { width: 100%; min-width: 0; }
  .social-heading-actions { width: 100%; }
  .social-heading-actions button { flex: 1; }
  .social-video-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  body:has(.portal-view[data-portal-page="social"]:not([hidden])) { min-width: 0; }
  .portal-shell:has(.portal-view[data-portal-page="social"]:not([hidden])) { --sidebar-width: 72px; min-width: 0; }
  .portal-shell:has(.portal-view[data-portal-page="social"]:not([hidden])) .portal-layout { grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
  .portal-shell:has(.portal-view[data-portal-page="social"]:not([hidden])) .portal-main { padding: 20px 12px 30px; }
  .portal-shell:has(.portal-view[data-portal-page="social"]:not([hidden])) .social-monitor-heading h1 { font-size: 22px; }
  .portal-shell:has(.portal-view[data-portal-page="social"]:not([hidden])) .social-monitor-heading p { font-size: 13px; }
}
/* 3.27.0 会员独立浏览器与连接窗口 */
.member-runtime-card label{display:grid;gap:6px;color:#35584f;font-size:13px}.member-runtime-card input{width:100%;min-height:38px;border:1px solid #bfd3cd;border-radius:7px;padding:0 10px;background:#fff;color:#123c33}.member-runtime-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.member-runtime-card>button{min-height:38px;border:1px solid #0b8a70;border-radius:7px;background:#0b8a70;color:#fff;font-weight:700}.member-platform-actions{display:grid;gap:9px;margin-top:12px}.member-platform-actions>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:9px;padding:9px;border:1px solid #d1e0dc;border-radius:8px;background:#f7fbfa}.member-platform-actions b{font-size:12px;color:#62766f}.member-platform-actions button{border:1px solid #96c7ba;border-radius:6px;background:#fff;color:#086c59;padding:7px 10px}
.member-runtime-note{margin:0 0 10px;color:#647a73;font-size:12px;line-height:1.55}.member-advanced-proxy{margin-top:12px;border:1px solid #d1e0dc;border-radius:8px;background:#f7fbfa;padding:9px}.member-advanced-proxy summary{cursor:pointer;color:#46665d;font-size:12px;font-weight:700}.member-advanced-proxy[open]{display:grid;gap:9px}.member-advanced-proxy>button{min-height:36px;border:1px solid #76b7a7;border-radius:7px;background:#fff;color:#086c59;font-weight:700}.social-quickq-card{margin-bottom:14px}.social-quickq-card>.quickq-connection-actions{align-self:end}.quickq-connection-actions{display:flex;align-items:center;gap:12px;align-self:end;min-height:38px;flex-wrap:wrap}.quickq-connection-actions>button{min-height:38px}.quickq-connection-result{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:4px 11px;border:1px solid transparent;border-radius:999px;font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap}.quickq-connection-result[hidden]{display:none}.quickq-connection-result.is-checking{color:#6f5500;background:#fff8d9;border-color:#ead57d}.quickq-connection-result.is-success{color:#08734e;background:#e6f8f1;border-color:#94d9c1}.quickq-connection-result.is-failure{color:#a52a2a;background:#fff0ee;border-color:#eab1aa}.quickq-connection-result.is-timeout{color:#9a4f00;background:#fff3e3;border-color:#e9bb7d}
.quickq-connection-result.is-saved{color:#52665f;background:#edf3f1;border-color:#cbd9d4}.password-visibility-field{position:relative;display:block;width:100%}.password-visibility-field>input{width:100%;padding-right:43px!important}.password-visibility-toggle{all:unset;box-sizing:border-box;position:absolute;top:50%;right:7px;display:grid;width:30px;height:30px;place-items:center;color:#557069;border-radius:6px;cursor:pointer;transform:translateY(-50%)}.password-visibility-toggle:hover{color:#08745b;background:#edf6f3}.password-visibility-toggle:focus-visible{outline:2px solid #18a684;outline-offset:1px}.password-visibility-toggle svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-visibility-toggle[aria-pressed="true"]:after{position:absolute;width:20px;height:2px;background:currentColor;border-radius:2px;content:"";transform:rotate(-45deg)}
.member-browser-dialog,.social-login-dialog{width:min(1040px,94vw);max-width:none;border:0;border-radius:14px;padding:0;box-shadow:0 24px 80px rgba(0,44,36,.28);background:#f8fbfa;color:#123c33}.member-browser-dialog::backdrop,.social-login-dialog::backdrop{background:rgba(2,31,26,.58)}.member-browser-heading{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px;border-bottom:1px solid #d4e1dd}.member-browser-heading h2{margin:0;font-size:20px}.member-browser-heading p{margin:5px 0 0;color:#687c75}.member-browser-heading>button{border:0;border-radius:8px;background:#edf4f2;width:36px;height:36px;font-size:23px;color:#35584f}.member-browser-progress{min-height:520px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px}.member-browser-progress[hidden]{display:none}.member-browser-progress>span{width:min(560px,80%);height:12px;border-radius:999px;background:#dfeae7;overflow:hidden}.member-browser-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#0b8a70,#32c8a5);transition:width .35s ease}.member-browser-progress b{font-size:22px;color:#0b8a70}.member-browser-screen,.social-login-screen{display:block;width:100%;max-height:640px;object-fit:contain;background:#fff;border-bottom:1px solid #d4e1dd}.member-browser-screen[hidden],.social-login-screen[hidden]{display:none}.member-browser-controls,.social-login-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 16px}.member-browser-controls[hidden],.social-login-controls[hidden]{display:none}.member-browser-controls button,.social-login-controls button{min-height:36px;border:1px solid #98c7bc;border-radius:7px;background:#fff;color:#086c59;padding:0 12px}.member-browser-controls input,.social-login-controls input{flex:1 1 300px;min-height:38px;border:1px solid #b8cec8;border-radius:7px;padding:0 10px}.social-session-card{margin-bottom:14px}.social-session-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.social-session-actions{display:flex;gap:9px;flex-wrap:wrap}
@media (max-width:720px){.member-runtime-field-grid{grid-template-columns:1fr}.member-platform-actions>div{grid-template-columns:1fr auto}.member-platform-actions button{grid-column:1/-1}.member-browser-progress{min-height:360px}}

/* 3.28.1 图片生成表格批量产品选择与独立文案 */
.product-row-selected>td{background:#eefaf5}.product-row-selected>td:first-child{box-shadow:inset 4px 0 0 #0f8a69}.product-target-selector{display:grid;justify-items:center;gap:4px;min-width:54px;cursor:pointer;color:#0f6b55;font-size:11px;font-weight:700}.product-target-selector input{width:18px;height:18px;accent-color:#0f8a69;cursor:pointer}.product-description-editor{display:grid;gap:6px;min-width:250px}.product-description-editor textarea{min-width:240px;resize:vertical;border:1px solid #cbded6;border-radius:8px;padding:8px;line-height:1.5}.product-description-editor button{justify-self:start;padding:5px 9px}.product-description-editor small{color:#60736c;line-height:1.35}
/* 3.28.1 统一认证与店铺 ROI监测测试状态 */
.auth-link-row{display:flex;justify-content:center;gap:12px}.auth-inline-code{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:8px}.auth-inline-code button{border:1px solid #168b73;border-radius:9px;background:#effaf6;color:#08745f;font-weight:700;cursor:pointer}.auth-inline-code button:disabled{opacity:.58;cursor:wait}.ad-monitor-shell{display:grid;gap:20px;padding:24px;max-width:1280px;margin:0 auto;color:#163d35}.ad-monitor-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.ad-monitor-heading span{display:inline-block;color:#07866c;font-weight:800;margin-bottom:6px}.ad-monitor-heading h1{margin:0 0 8px;font-size:30px}.ad-monitor-heading p{margin:0;color:#648078}.ad-monitor-heading button{border:1px solid #91cbbd;border-radius:9px;background:#fff;color:#0c755f;padding:10px 18px;cursor:pointer}.ad-monitor-stage{padding:14px 18px;border:1px solid #e6c778;border-radius:12px;background:#fff9e8;color:#805200;font-weight:700}.ad-monitor-stage[data-kind="ready"]{background:#edf9f5;border-color:#8fd1bf;color:#08705b}.ad-monitor-stage[data-kind="error"]{background:#fff1f0;border-color:#f1aaa3;color:#a62d22}.ad-monitor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ad-monitor-grid article,.ad-monitor-card{border:1px solid #d7e8e2;border-radius:15px;background:#fff;box-shadow:0 8px 25px rgba(19,84,69,.05)}.ad-monitor-grid article{display:grid;gap:7px;padding:19px}.ad-monitor-grid span,.ad-monitor-grid small{color:#6b827d}.ad-monitor-grid strong{font-size:20px}.ad-monitor-card{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px}.ad-monitor-card h2{margin:0 0 7px}.ad-monitor-card p{margin:0;color:#657d77}.ad-monitor-card ul{margin:0;line-height:1.9}.ad-monitor-empty{min-width:150px;padding:14px;border-radius:10px;background:#f2f7f5;text-align:center;font-weight:800;color:#547169}@media(max-width:900px){.ad-monitor-grid{grid-template-columns:1fr 1fr}.ad-monitor-heading,.ad-monitor-card{align-items:stretch;flex-direction:column}}@media(max-width:560px){.ad-monitor-grid{grid-template-columns:1fr}.auth-inline-code{grid-template-columns:1fr}.auth-link-row{flex-direction:column;gap:0}}
.easyboss-credential-card{display:grid;gap:12px;margin-top:16px;padding:16px;border:1px solid #cfe4dd;border-radius:12px;background:#f8fcfa}.easyboss-credential-card>div:first-child{display:grid;gap:4px}.easyboss-credential-card small{color:#647e77}.easyboss-credential-card>button{justify-self:start;border:0;border-radius:9px;background:#078b70;color:#fff;padding:10px 16px;font-weight:700;cursor:pointer}

/* 3.28.1 对外界面降噪、产品卡片与店铺监测统一样式 */
.portal-shell.light-theme,.portal-shell.light-theme .portal-main,.command-dashboard{background:#f1f2ed;color:#183b34}.portal-shell.light-theme .portal-topbar{box-shadow:0 1px 0 rgba(17,63,52,.12)}.command-hero{overflow:hidden;background:#f7f7f3;border-color:#d7dfda;box-shadow:0 9px 26px rgba(33,67,57,.055)}.command-hero::after{opacity:.14;filter:saturate(.72) brightness(.98)}.command-tool-card,.command-panel,.command-profile-card,.command-side-card,.service-rail-card{background:#fafaf7;border-color:#d8dfdb;box-shadow:0 6px 18px rgba(34,63,55,.045)}.portal-nav-link.is-active,.portal-nav-link:hover{background:#e7f1ed}.portal-sidebar,.portal-service-rail{background:#eef2ef}.portal-brand img,.service-rail-brand img,.account-drawer-brand img,.converter-brand img{object-fit:contain;filter:none;transform:none}

.collector-setting-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.collector-setting-grid>.member-runtime-card{grid-column:1/-1}.member-runtime-card{background:#fafbf8;border-color:#d3dfda;box-shadow:none}.member-runtime-field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.easyboss-credential-card{background:#f6f8f5;border-color:#d4dfda}.member-platform-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.member-platform-actions>div{grid-template-columns:minmax(0,1fr) auto;background:#f8f9f6;border-color:#d6dfdb;padding:13px}.member-platform-actions button{white-space:nowrap}.member-advanced-proxy{background:#f3f6f3;border-color:#d6dfdb}

.converter-view .table-wrap{overflow:visible;border:0;background:transparent}.converter-view .table-wrap table{display:block;width:100%;min-width:0}.converter-view .table-wrap thead{display:none}.converter-view #productRows{display:grid;gap:16px;width:100%}.converter-view #productRows tr{display:grid;grid-template-columns:68px 68px minmax(140px,.7fr) minmax(180px,1fr);grid-template-areas:"select number main info" "count images images images" "styles styles styles styles" "title title description description" "sku sku url url";gap:0 14px;overflow:hidden;width:100%;border:1px solid #d5dfda;border-radius:15px;background:#fbfbf8;box-shadow:0 6px 16px rgba(27,66,55,.045)}.converter-view #productRows tr.product-row-selected{border-color:#55aa91;box-shadow:0 0 0 2px rgba(32,145,111,.12)}.converter-view #productRows td{display:block;min-width:0;padding:14px;background:transparent!important;border:0;border-bottom:1px solid #e4e9e6;vertical-align:top}.converter-view #productRows td::before{display:block;margin-bottom:7px;color:#6d7f79;font-size:11px;font-weight:700;content:attr(data-label)}.converter-view #productRows .product-select-cell{grid-area:select}.converter-view #productRows .product-sequence-cell{grid-area:number}.converter-view #productRows .product-main-cell{grid-area:main}.converter-view #productRows .product-info-cell{grid-area:info}.converter-view #productRows .product-count-cell{grid-area:count}.converter-view #productRows .product-images-cell{grid-area:images}.converter-view #productRows .product-styles-cell{grid-area:styles}.converter-view #productRows .product-title-cell{grid-area:title}.converter-view #productRows .product-description-cell{grid-area:description}.converter-view #productRows .product-sku-cell{grid-area:sku}.converter-view #productRows .product-url-cell{grid-area:url}.converter-view #productRows .product-main-cell img{width:84px;height:84px;object-fit:cover;border-radius:10px}.converter-view #productRows .image-details{display:flex;flex-wrap:wrap;gap:10px}.converter-view #productRows .product-description-editor,.converter-view #productRows textarea,.converter-view #productRows input,.converter-view #productRows select{width:100%;min-width:0}.converter-view #productRows .product-description-editor textarea{min-width:0}.converter-view #productRows .product-url-cell,.converter-view #productRows .product-sku-cell{border-bottom:0}

.ad-monitor-shell{max-width:1380px;padding:28px 30px;background:#f1f2ed}.ad-monitor-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:16px;border:1px solid #d8e0dc;border-radius:13px;background:#fafaf7}.ad-monitor-toolbar label{display:grid;gap:6px;color:#587069;font-size:12px}.ad-monitor-toolbar input,.ad-monitor-toolbar select{min-height:38px;border:1px solid #c8d5d0;border-radius:8px;background:#fff;padding:0 10px;color:#183b34}.ad-monitor-toolbar button{min-height:38px;border:0;border-radius:8px;background:#087e66;color:#fff;padding:0 18px;font-weight:700}.ad-monitor-grid article,.ad-monitor-card{background:#fafaf7;border-color:#d7dfdb;box-shadow:0 5px 16px rgba(30,63,54,.045)}.ad-monitor-chart{display:grid;gap:13px;width:100%}.ad-monitor-chart-bars{display:grid;grid-template-columns:repeat(12,minmax(12px,1fr));align-items:end;gap:8px;height:180px;padding:18px 12px 0;border-bottom:1px solid #cfd9d4;background:linear-gradient(to top,rgba(9,128,102,.035),transparent)}.ad-monitor-chart-bars i{display:block;min-height:18px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#57aa93,#167c65);opacity:.82}.ad-monitor-chart-bars i:nth-child(3n+1){height:34%}.ad-monitor-chart-bars i:nth-child(3n+2){height:58%}.ad-monitor-chart-bars i:nth-child(3n){height:76%}

@media(max-width:1100px){.collector-setting-grid{grid-template-columns:1fr}.member-runtime-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-platform-actions{grid-template-columns:1fr}.converter-view #productRows tr{grid-template-columns:64px 64px minmax(120px,.7fr) minmax(160px,1fr)}}
@media(max-width:760px){.member-runtime-field-grid{grid-template-columns:1fr}.converter-view #productRows tr{grid-template-columns:1fr;grid-template-areas:"select" "number" "main" "info" "count" "images" "styles" "title" "description" "sku" "url"}.converter-view #productRows td{padding:12px}.ad-monitor-shell{padding:18px 12px}.ad-monitor-chart-bars{gap:4px}.member-platform-actions>div{grid-template-columns:1fr}.member-platform-actions button{grid-column:auto}}

.converter-view #productRows .product-info-cell{display:grid;align-content:start;gap:7px}.converter-view #productRows .product-info-cell small{color:#6a7c76;overflow-wrap:anywhere}.converter-view #productRows .product-info-cell button{justify-self:start}.converter-view #productRows .image-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:10px;width:100%}.converter-view #productRows .image-detail-item{width:100%;min-width:0}.converter-view #productRows .variant-summary{display:grid;gap:9px;max-width:none}.converter-view #productRows .variant-summary>div{display:grid;grid-template-columns:58px minmax(160px,1fr) auto;align-items:center;gap:9px}.converter-view #productRows .variant-summary>div b{font-size:12px}.converter-view #productRows .variant-summary>div input{height:38px}.converter-view #productRows .variant-summary>div button{white-space:nowrap}.converter-view #productRows .source-image-summary{font-size:13px}.converter-view #productRows .product-target-selector{min-width:0;text-align:center}
@media(max-width:760px){.converter-view #productRows .variant-summary>div{grid-template-columns:1fr}.converter-view #productRows .variant-summary>div button{justify-self:start}}

/* 3.28.2 账号连接卡片与转换器长列表布局修正 */
.collector-setting-grid>.member-runtime-card{
  width:min(100%,1180px);
  justify-self:center;
  padding:24px;
  border-radius:16px;
}
.member-runtime-heading{align-items:flex-start;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #dde6e2}
.member-runtime-heading>div{display:grid;gap:5px}
.member-runtime-heading h2,.member-runtime-heading p{margin:0}
.member-runtime-heading p{color:#6a7d77;font-size:12px;line-height:1.55}
.member-runtime-primary{display:grid;gap:16px;padding:18px;border:1px solid #d8e3de;border-radius:13px;background:#fff}
.member-runtime-primary .member-runtime-note{margin:0}
.member-runtime-credentials{grid-template-columns:repeat(2,minmax(0,1fr))}
.member-runtime-connect-row{display:grid;grid-template-columns:minmax(240px,360px) minmax(0,1fr);align-items:end;gap:18px}
.member-runtime-country{min-width:0}
.member-runtime-country select{width:100%;min-height:40px;border:1px solid #bfd3cd;border-radius:8px;padding:0 10px;background:#fff;color:#123c33}
.member-runtime-connect-row .quickq-connection-actions{min-height:40px;align-self:end}
.member-runtime-connect-row .quickq-connection-actions>button{min-height:40px;padding:0 18px;border:1px solid #087c65;border-radius:8px;background:#087c65;color:#fff;font-weight:700;cursor:pointer}
.member-runtime-card>.member-advanced-proxy,.member-runtime-card>.easyboss-credential-card,.member-runtime-card>.member-platform-actions{margin-top:16px}
.member-runtime-card>.member-advanced-proxy{padding:12px 14px}
.member-runtime-card>.easyboss-credential-card{padding:18px}

body:has(.portal-view[data-portal-page="converter"]:not([hidden])){height:100%;overflow:hidden}
.portal-shell:has(.portal-view[data-portal-page="converter"]:not([hidden])){height:100vh;min-height:0;overflow:hidden}
.portal-shell:has(.portal-view[data-portal-page="converter"]:not([hidden])) .portal-layout{height:calc(100vh - 72px);min-height:0;overflow:hidden}
.portal-shell:has(.portal-view[data-portal-page="converter"]:not([hidden])) .portal-main{height:100%;min-height:0;padding:0;overflow:hidden}
.portal-shell:has(.portal-view[data-portal-page="converter"]:not([hidden])) .converter-view{width:100%;height:100%;margin:0!important;overflow:hidden}
.portal-shell.light-theme .converter-view .workspace{height:100%;min-height:0;align-items:stretch;overflow:hidden}
.portal-shell.light-theme .converter-view .settings-panel{height:100%;min-height:0;align-self:stretch;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.portal-shell.light-theme .converter-view .work-panel{height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.portal-shell.light-theme .converter-view .settings-panel::-webkit-scrollbar,
.portal-shell.light-theme .converter-view .work-panel::-webkit-scrollbar{width:10px}
.portal-shell.light-theme .converter-view .settings-panel::-webkit-scrollbar-thumb,
.portal-shell.light-theme .converter-view .work-panel::-webkit-scrollbar-thumb{background:#9bacaa;border:2px solid #eef2f3;border-radius:999px}
.converter-view .help-panel{position:relative;z-index:0;clear:both;margin:12px 0 16px;padding:14px 16px;border-radius:10px}
.converter-view .table-wrap{height:auto;max-height:none!important;min-height:0;margin-top:0;overflow:visible!important}
.converter-view .table-wrap table,.converter-view #productRows{height:auto;max-height:none;overflow:visible}
.converter-view #productRows tr{height:auto;min-height:0;overflow:hidden}

@media(max-width:900px){
  .collector-setting-grid>.member-runtime-card{padding:18px}
  .member-runtime-credentials,.member-runtime-connect-row{grid-template-columns:1fr}
  .member-runtime-connect-row .quickq-connection-actions{align-self:start}
}

/* 3.28.3 远程平台登录输入与窗口切换 */
.member-browser-controls{display:block;padding:12px 16px 14px}
.member-browser-input-panel{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;gap:9px;align-items:center}
.member-browser-input-mode{display:flex;align-items:center;padding:3px;border:1px solid #b8cec8;border-radius:9px;background:#edf4f2}
.member-browser-input-mode button{min-height:32px;border:0!important;border-radius:6px!important;background:transparent!important;padding:0 14px!important;color:#557069!important}
.member-browser-input-mode button.active{background:#08745b!important;color:#fff!important;box-shadow:0 2px 8px rgba(8,116,91,.18)}
.member-browser-text-field{position:relative;display:block;min-width:0}
.member-browser-text-field input{width:100%;padding-right:44px}
.member-browser-text-field>button{position:absolute;top:50%;right:7px;display:grid;width:30px;min-height:30px!important;height:30px;place-items:center;border:0!important;border-radius:6px!important;background:transparent!important;padding:0!important;color:#557069!important;transform:translateY(-50%)}
.member-browser-text-field>button:hover{background:#edf6f3!important;color:#08745b!important}
.member-browser-text-field>button[hidden]{display:none}
.member-browser-text-field svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.member-browser-text-field>button[aria-pressed="true"]:after{position:absolute;width:20px;height:2px;background:currentColor;border-radius:2px;content:"";transform:rotate(-45deg)}
.member-browser-type-button{min-width:146px;background:#08745b!important;color:#fff!important;border-color:#08745b!important;font-weight:700}
.member-browser-command-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:9px}
.member-browser-command-row #memberBrowserComplete{margin-left:auto;background:#08745b;color:#fff;border-color:#08745b}
@media(max-width:760px){.member-browser-input-panel{grid-template-columns:1fr}.member-browser-input-mode{width:max-content}.member-browser-type-button{width:100%}.member-browser-command-row #memberBrowserComplete{width:100%;margin-left:0}}

/* 3.28.4 虾皮与易老板独立登录工作区 */
.member-platform-actions>div>span{display:grid;gap:3px;min-width:0}.member-platform-actions>div>span strong{font-size:14px;color:#183f36}.member-platform-actions>div>span small{color:#71827d;font-size:11px}.member-platform-actions>div>b{padding:5px 9px;border-radius:999px;background:#edf3f1;color:#5a6e68}.member-platform-actions>div>b.is-connected{background:#e5f7ef;color:#087253}.member-platform-actions>div>button{min-height:38px;background:#fff;font-weight:700}
.member-browser-dialog{width:calc(100vw - 24px);height:calc(100vh - 24px);max-height:none;margin:auto;border-radius:16px;overflow:hidden}.member-browser-workspace{display:flex;height:100%;min-height:0;flex-direction:column}.member-browser-heading{flex:0 0 auto;padding:13px 18px;background:#f8fbfa}.member-browser-heading>div{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:center}.member-browser-heading span{grid-row:1/3;align-self:center;padding:6px 10px;border-radius:999px;background:#e5f4ef;color:#08725c;font-size:12px;font-weight:800}.member-browser-heading h2{font-size:19px}.member-browser-heading p{margin:2px 0 0;font-size:12px}.member-browser-progress{flex:1;min-height:0}.member-browser-stage{display:flex;flex:1;min-height:0;align-items:center;justify-content:center;overflow:hidden;background:#e8eeeb;padding:8px}.member-browser-stage[hidden]{display:none}.member-browser-screen{width:auto;height:100%;max-width:100%;max-height:100%;border:1px solid #cbd8d4;border-radius:9px;object-fit:contain;background:#fff;box-shadow:0 4px 18px rgba(20,60,50,.08);user-select:none}.member-browser-screen[hidden]{display:none}.member-browser-controls{flex:0 0 auto;padding:10px 14px 12px;border-top:1px solid #d4e1dd;background:#f8fbfa}.member-browser-platform-note{margin-bottom:8px;color:#557069;font-size:12px}.member-browser-controls[data-platform="easyboss"] .member-browser-input-panel{display:none}.member-browser-controls [data-member-browser-platform]{display:none}.member-browser-controls[data-platform="shopee"] [data-member-browser-platform="shopee"],.member-browser-controls[data-platform="easyboss"] [data-member-browser-platform="easyboss"]{display:inline-flex;align-items:center}.member-browser-command-row{margin-top:8px}.member-browser-command-row button{font-weight:600}.member-browser-command-row button:disabled{opacity:.55;cursor:wait}.member-browser-command-row #memberBrowserComplete{min-width:150px}.member-browser-command-row #memberBrowserComplete.is-detected{background:#e4f7ef;color:#087253;border-color:#78c6aa}.member-browser-dialog.is-busy .member-browser-screen{cursor:wait!important;opacity:.88}
@media(max-width:900px){.member-browser-dialog{width:100vw;height:100vh;border-radius:0}.member-browser-heading{padding:10px 12px}.member-browser-stage{padding:4px}.member-browser-controls{padding:8px}.member-browser-platform-note{display:none}.member-browser-command-row{max-height:88px;overflow:auto}.member-browser-command-row #memberBrowserComplete{width:auto;margin-left:0}}

/* 3.29.0 站斧店铺控制台与广告数据看板 */
.operations-shell{display:grid;gap:18px;max-width:1380px;margin:0 auto;padding:28px 30px;color:#183b34}
.operations-heading,.operations-heading-actions,.operations-notice,.operations-tabs,.ad-monitor-safety,.ad-monitor-tabs,.ad-monitor-meta{display:flex;align-items:center}
.operations-heading{justify-content:space-between;gap:18px}
.operations-heading>div:first-child{display:grid;gap:5px}.operations-heading span{color:#08765f;font-size:13px;font-weight:800}.operations-heading h1{margin:0;font-size:30px}.operations-heading p{margin:0;color:#657d76}
.operations-heading-actions{gap:9px}.operations-heading-actions button,.operations-toolbar button,.operations-table-wrap button,.pairing-panel button{min-height:38px;border:1px solid #8fc8b7;border-radius:8px;background:#fff;padding:0 15px;color:#08725c;font-weight:700;cursor:pointer}.operations-heading-actions button:first-child{border-color:#087a62;background:#087a62;color:#fff}
.operations-heading-actions button:disabled,.operations-table-wrap button:disabled{opacity:.48;cursor:not-allowed}
.operations-notice,.ad-monitor-safety{gap:12px;padding:13px 16px;border:1px solid #cbded8;border-radius:12px;background:#f8fbfa}.operations-notice strong,.ad-monitor-safety strong{white-space:nowrap;color:#08725c}.operations-notice span,.ad-monitor-safety span{flex:1;color:#5f756f;font-size:13px}.operations-notice b,.ad-monitor-safety b{white-space:nowrap;padding:5px 10px;border-radius:999px;background:#e8f2ef;color:#527069;font-size:12px}.operations-notice b[data-kind="ready"],.ad-monitor-safety b[data-kind="ready"]{background:#ddf5ec;color:#087253}.operations-notice b[data-kind="error"],.ad-monitor-safety b[data-kind="error"]{background:#fff0ee;color:#aa3428}
.operations-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.operations-summary-grid article{display:grid;gap:6px;padding:18px;border:1px solid #d7e1dd;border-radius:14px;background:#fafaf7;box-shadow:0 5px 16px rgba(30,63,54,.045)}.operations-summary-grid span,.operations-summary-grid small{color:#687d77}.operations-summary-grid strong{font-size:23px}
.pairing-panel{display:grid;grid-template-columns:minmax(240px,1fr) minmax(260px,2fr) auto;align-items:center;gap:20px;padding:18px;border:1px solid #83c7b3;border-radius:14px;background:#eff9f5}.pairing-panel>div{display:grid;gap:4px}.pairing-panel span,.pairing-panel small{color:#5d746d}.pairing-panel strong{color:#075e4d;font-size:27px;letter-spacing:2px}.pairing-panel p{margin:0;color:#3f6259;line-height:1.6}
.pairing-guide{display:grid;gap:7px}.pairing-guide ol{margin:0;padding-left:20px;color:#4b675f;font-size:12px;line-height:1.7}.pairing-actions{display:grid!important;gap:7px!important}.pairing-actions a{display:grid;min-height:38px;place-items:center;border:1px solid #087a62;border-radius:8px;background:#087a62;padding:0 15px;color:#fff;font-weight:700;text-decoration:none}.pairing-actions button{width:100%}
.operations-tabs,.ad-monitor-tabs{gap:4px;overflow-x:auto;border-bottom:1px solid #d4dfdb}.operations-tabs button,.ad-monitor-tabs button{white-space:nowrap;border:0;border-bottom:3px solid transparent;background:transparent;padding:11px 17px;color:#61766f;font-weight:700;cursor:pointer}.operations-tabs button.active,.ad-monitor-tabs button.active{border-bottom-color:#078169;color:#08725c}
.operations-panel,.ad-monitor-panel{display:grid;gap:13px;padding:17px;border:1px solid #d7dfdb;border-radius:14px;background:#fafaf7}.operations-toolbar{display:flex;gap:9px}.operations-toolbar input{min-width:280px;min-height:38px;border:1px solid #c8d5d0;border-radius:8px;background:#fff;padding:0 11px;color:#183b34}
.zhanfu-sync-control{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;gap:12px;border:1px solid #a9d8c9;border-radius:12px;background:#f0faf6;padding:14px}.zhanfu-sync-control>div:first-child{display:grid;gap:3px}.zhanfu-sync-control>div:first-child span{color:#08745c;font-size:11px;font-weight:800}.zhanfu-sync-control>div:first-child strong{font-size:17px}.zhanfu-sync-control>div:first-child small{color:#667b74}.zhanfu-sync-control>button{min-height:40px;border:1px solid #087a62;border-radius:8px;background:#087a62;padding:0 14px;color:#fff;font-weight:800;cursor:pointer}.zhanfu-sync-control>button:disabled{cursor:wait;opacity:.58}.zhanfu-auto-switch{display:flex;align-items:center;gap:8px;white-space:nowrap;color:#345d53;font-size:13px;font-weight:700}.zhanfu-auto-switch input{width:18px;height:18px;accent-color:#087a62}.zhanfu-sync-times{display:flex!important;grid-column:1/-1;gap:18px!important;color:#60776f;font-size:12px}.zhanfu-sync-times b{color:#214c41}.zhanfu-batch-progress{display:grid;gap:8px;border:1px solid #cbded8;border-radius:12px;background:#fff;padding:13px 14px}.zhanfu-batch-progress[hidden]{display:none}.zhanfu-batch-progress>div{display:flex;justify-content:space-between;gap:12px}.zhanfu-batch-progress>div strong{color:#17483c}.zhanfu-batch-progress>div b{color:#08745c}.zhanfu-batch-progress>span{height:11px;overflow:hidden;border-radius:999px;background:#e2ece8}.zhanfu-batch-progress>span i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#08745c,#39b995);transition:width .35s ease}.zhanfu-batch-progress p{margin:0;color:#3f6259;font-size:13px}.zhanfu-batch-progress small{color:#70837d}.zhanfu-batch-progress>#zhanfuCancelSync{justify-self:end;min-height:32px;border:1px solid #c96b5f;border-radius:8px;background:#fff5f3;padding:0 13px;color:#a53f34;font-weight:800;cursor:pointer}.zhanfu-batch-progress>#zhanfuCancelSync:disabled{cursor:wait;opacity:.55}.zhanfu-batch-progress>#zhanfuCancelSync[hidden]{display:none}.zhanfu-batch-progress[data-stalled="true"]{border-color:#e0b754;background:#fff9e9}.zhanfu-batch-progress[data-failed="true"]{border-color:#dda39c;background:#fff3f1}
.operations-table-wrap,.ad-monitor-table-wrap{width:100%;overflow:auto}.operations-table-wrap table,.ad-monitor-table-wrap table{width:100%;min-width:870px;border-collapse:collapse}.operations-table-wrap th,.operations-table-wrap td,.ad-monitor-table-wrap th,.ad-monitor-table-wrap td{padding:12px 11px;border-bottom:1px solid #e1e7e4;text-align:left;vertical-align:middle}.operations-table-wrap th,.ad-monitor-table-wrap th{color:#62766f;font-size:12px}.operations-table-wrap td,.ad-monitor-table-wrap td{color:#294b42;font-size:13px}.operations-table-wrap td strong,.operations-table-wrap td small,.ad-monitor-table-wrap td strong,.ad-monitor-table-wrap td small{display:block}.operations-table-wrap td small,.ad-monitor-table-wrap td small{margin-top:4px;color:#73857f;font-size:11px}.operations-empty{padding:30px!important;text-align:center!important;color:#6d817b!important}
.operations-status,.ad-campaign-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf2f0;color:#536c65;font-size:12px;font-weight:700}.operations-status.online,.operations-status.running,.operations-status.success,.ad-campaign-status.running,.ad-campaign-status.available{background:#ddf5eb;color:#087054}.operations-status.offline,.operations-status.stopped,.operations-status.expired,.ad-campaign-status.paused,.ad-campaign-status.unavailable{background:#edf0ef;color:#667771}.operations-status.error,.operations-status.failed,.ad-campaign-status.error{background:#ffebe8;color:#a63227}.operations-status.queued,.operations-status.dispatched{background:#fff4d9;color:#88600b}
.capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.capability-grid article{display:grid;gap:8px;padding:18px;border:1px solid #d9e1de;border-radius:12px;background:#fff}.capability-grid span{color:#657b74;font-size:12px}.capability-grid strong{font-size:18px}.capability-grid p{min-height:42px;margin:0;color:#657b74;font-size:13px;line-height:1.6}.capability-grid button{min-height:36px;border:1px solid #d5dcda;border-radius:8px;background:#f2f4f3;color:#487267}.operations-capability-warning{margin:14px 0 0;border-left:4px solid #d6a52f;background:#fff8e7;padding:11px 13px;color:#79580b;font-size:13px}
.zhanfu-snapshot{display:grid;gap:14px;margin-top:18px;border-top:1px solid #dce6e2;padding-top:18px}.zhanfu-snapshot[hidden]{display:none}.zhanfu-snapshot .operations-table-wrap{max-height:540px;border:1px solid #dde6e2;border-radius:12px;background:#fff}

.ad-monitor-shell{gap:18px}.ad-monitor-heading{align-items:center}.ad-monitor-safety{margin-top:-3px}.ad-monitor-search{min-width:220px;flex:1}.ad-monitor-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.ad-monitor-grid article{min-width:0}.ad-monitor-grid strong{overflow-wrap:anywhere;font-size:19px}.ad-monitor-grid .ad-profit-card{border-color:#a9d6c9;background:#f4faf7}.ad-monitor-grid #adMonitorProfitState[data-state="profit"]{color:#087054}.ad-monitor-grid #adMonitorProfitState[data-state="loss"]{color:#b1362d}.ad-monitor-grid #adMonitorProfitState[data-state="break_even"]{color:#8a6308}.ad-monitor-meta{flex-wrap:wrap;gap:10px 24px;padding:0 3px;color:#657a73;font-size:12px}.ad-monitor-meta strong{color:#294c43}.ad-monitor-card-heading{display:flex;justify-content:space-between;align-items:center}.ad-monitor-card-heading h2{margin:0 0 4px}.ad-monitor-card-heading p{margin:0;color:#687d77;font-size:13px}.ad-monitor-panel{padding:0;overflow:hidden}.ad-monitor-panel>.ad-monitor-card-heading,.ad-monitor-settings{padding:18px}.ad-monitor-table-wrap table{min-width:960px}.ad-monitor-table-wrap button{min-height:32px;border:1px solid #9bc9bc;border-radius:7px;background:#fff;padding:0 11px;color:#08715a;font-weight:700;cursor:pointer}
.ad-monitor-safety>button{min-height:32px;white-space:nowrap;border:1px solid #d58b84;border-radius:8px;background:#fff;color:#9e3027;padding:0 12px;font-weight:700;cursor:pointer}.ad-monitor-safety>button[hidden]{display:none}
.ad-shop-sync-card{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;align-items:center;gap:18px;padding:13px 16px;border:1px solid #bfdcd3;border-radius:12px;background:linear-gradient(135deg,#f3faf7,#edf7f3);box-shadow:0 5px 14px rgba(27,83,68,.045)}.ad-shop-sync-copy{display:grid;gap:2px}.ad-shop-sync-copy>span{color:#08745c;font-size:11px;font-weight:800}.ad-shop-sync-copy>strong{color:#173e34;font-size:15px}.ad-shop-sync-copy>small{color:#667a74;font-size:11px;line-height:1.45}.ad-shop-sync-stats{display:flex;align-items:stretch;gap:7px}.ad-shop-sync-stats>span{display:grid;min-width:80px;gap:2px;padding:6px 9px;border:1px solid #d5e6e0;border-radius:8px;background:rgba(255,255,255,.82);color:#6b7f78;font-size:10px}.ad-shop-sync-stats strong{color:#174c3e;font-size:15px}.ad-shop-sync-actions{display:flex;gap:8px}.ad-shop-sync-actions button{min-height:34px;white-space:nowrap;border:1px solid #8fc6b7;border-radius:8px;background:#fff;padding:0 12px;color:#08725a;font-weight:800;cursor:pointer}.ad-shop-sync-actions button:disabled{cursor:not-allowed;opacity:.55}.ad-shop-sync-actions .portal-primary-button{border-color:#087d65;background:#087d65;color:#fff}.ad-shop-sync-actions[hidden]{display:none}
.ad-campaign-table{table-layout:fixed}.ad-campaign-table th:first-child,.ad-campaign-table td:first-child{width:30%;min-width:280px}.ad-campaign-table th:nth-child(2),.ad-campaign-table td:nth-child(2){width:96px}.ad-campaign-table th:nth-child(3),.ad-campaign-table td:nth-child(3),.ad-campaign-table th:nth-child(4),.ad-campaign-table td:nth-child(4),.ad-campaign-table th:nth-child(5),.ad-campaign-table td:nth-child(5),.ad-campaign-table th:nth-child(6),.ad-campaign-table td:nth-child(6){width:105px}.ad-campaign-table th:nth-child(7),.ad-campaign-table td:nth-child(7),.ad-campaign-table th:nth-child(8),.ad-campaign-table td:nth-child(8){width:120px}.ad-campaign-table th:last-child,.ad-campaign-table td:last-child{width:105px}.ad-campaign-table tbody tr:nth-child(even){background:#f7faf8}.ad-campaign-name strong{display:-webkit-box!important;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;overflow-wrap:anywhere}.ad-campaign-name small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-campaign-number,.ad-campaign-action{white-space:nowrap}.ad-campaign-number strong{font-size:14px}.ad-campaign-number small{margin-top:2px!important}.ad-campaign-action{text-align:center!important}
.ad-campaign-table thead button{display:inline-flex;align-items:center;min-height:28px;border:0;background:transparent;padding:0;color:#506a62;font:inherit;font-weight:800;cursor:pointer}.ad-campaign-table thead button:hover,.ad-campaign-table thead button[aria-pressed="true"]{color:#08745c}.ad-monitor-grid.is-partial article{border-color:#e8c66f;background:#fffaf0}.ad-monitor-grid.is-partial article small::after{content:" · 部分数据";color:#9a6500;font-weight:700}.ad-monitor-diagnostics{margin:0 18px;border:1px solid #e8c66f;border-radius:10px;background:#fff9e8;color:#76530b}.ad-monitor-diagnostics[hidden]{display:none}.ad-monitor-diagnostics summary{padding:11px 13px;font-weight:800;cursor:pointer}.ad-monitor-diagnostics>div{padding:0 13px 13px}.ad-monitor-diagnostics p{margin:0 0 8px}.ad-monitor-diagnostics ul{margin:0 0 10px;padding-left:22px}.ad-monitor-diagnostics div div{display:grid;gap:5px;max-height:180px;overflow:auto;font-size:12px}
.ad-monitor-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:end}.ad-monitor-settings>div{grid-column:1/-1}.ad-monitor-settings h2,.ad-monitor-settings p{margin:0}.ad-monitor-settings p{margin-top:5px;color:#687d77}.ad-monitor-settings label{display:grid;gap:7px;color:#587069;font-size:12px}.ad-monitor-settings input{min-height:40px;border:1px solid #c8d5d0;border-radius:8px;background:#fff;padding:0 10px}.ad-monitor-settings button{justify-self:start}
.ad-product-dialog{width:min(1180px,calc(100vw - 34px));max-width:none;max-height:calc(100vh - 50px);border:0;border-radius:16px;padding:0;color:#183b34;box-shadow:0 22px 70px rgba(18,56,46,.24)}.ad-product-dialog[open]{display:flex;flex-direction:column}.ad-product-dialog.is-fullscreen{width:100vw;height:100dvh;max-height:none;margin:0;border-radius:0}.ad-product-dialog::backdrop{background:rgba(13,40,33,.45)}.ad-product-dialog-heading{display:flex;flex:0 0 auto;justify-content:space-between;align-items:flex-start;padding:18px 20px;border-bottom:1px solid #dbe4e0;background:#f8faf8}.ad-product-dialog-heading span{color:#08745c;font-size:12px;font-weight:800}.ad-product-dialog-heading h2{margin:4px 0}.ad-product-dialog-heading p{margin:0;color:#687c76}.ad-product-dialog-actions{display:flex;align-items:center;gap:8px}.ad-product-dialog-heading button{height:36px;border:1px solid #ccd9d5;border-radius:8px;background:#fff;color:#3e5b53;padding:0 11px;font-size:13px;font-weight:800;cursor:pointer}.ad-product-dialog-heading #adMonitorProductClose{width:36px;padding:0;font-size:22px}.ad-product-dialog-heading .ad-product-fullscreen-button[aria-pressed="true"]{border-color:#08745c;background:#e8f6f1;color:#08745c}.ad-product-dialog>.ad-monitor-table-wrap{flex:1;min-height:220px;max-height:calc(100vh - 170px);overflow:auto;padding:0 18px 18px}.ad-product-dialog.is-fullscreen>.ad-monitor-table-wrap{max-height:none}.ad-product-table{min-width:1280px!important}.ad-product-table th:first-child,.ad-product-table td:first-child{min-width:360px}.ad-product-table th:last-child,.ad-product-table td:last-child{min-width:210px}.ad-product-cell{display:flex;align-items:center;gap:10px}.ad-product-cell>span:last-child{display:grid;gap:4px;min-width:260px}.ad-product-cell strong{overflow-wrap:anywhere}.ad-product-id{display:inline-block!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;color:#597069;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-variant-numeric:tabular-nums}.ad-product-image-frame{position:relative;display:flex;flex:0 0 58px;width:58px;height:58px;align-items:center;justify-content:center;overflow:hidden;border:1px solid #dce4e1;border-radius:9px;background:#f1f5f3}.ad-product-image-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff}.ad-product-image-placeholder{display:flex;align-items:center;justify-content:center;padding:4px;color:#84938e;font-size:10px;text-align:center}.ad-product-image-frame.has-image .ad-product-image-placeholder{display:none}.ad-product-image-frame.image-failed img{display:none}.ad-product-image-frame.image-failed .ad-product-image-placeholder{display:flex}.ad-product-image-frame.detail{flex-basis:72px;width:72px;height:72px}.ad-product-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.ad-product-remove-button{min-width:96px!important;border-color:#d9b1ac!important;color:#a43f34!important}.ad-product-remove-button:disabled{cursor:not-allowed!important;opacity:.55}.ad-product-image-access{flex:0 0 auto;margin:0;padding:9px 18px;border-bottom:1px solid #dce7e2;background:#f2faf7;color:#176a57;font-size:12px;font-weight:700}.ad-product-image-access[data-state="authorization_required"],.ad-product-image-access[data-state="unavailable"],.ad-product-image-access[data-state="no_image"]{border-left:4px solid #d9a936;background:#fff8e7;color:#7d5a0c}
.ad-product-table{table-layout:auto!important}.ad-product-table th:first-child,.ad-product-table td:first-child{width:360px;min-width:360px}.ad-product-table th:nth-child(2),.ad-product-table td:nth-child(2){min-width:84px}.ad-product-table th:nth-child(3),.ad-product-table td:nth-child(3),.ad-product-table th:nth-child(5),.ad-product-table td:nth-child(5),.ad-product-table th:nth-child(6),.ad-product-table td:nth-child(6),.ad-product-table th:nth-child(7),.ad-product-table td:nth-child(7),.ad-product-table th:nth-child(8),.ad-product-table td:nth-child(8){min-width:110px}.ad-product-table th:nth-child(4),.ad-product-table td:nth-child(4){min-width:72px}.ad-product-table th:last-child,.ad-product-table td:last-child{width:210px;min-width:210px}
.ad-product-summary{display:grid;flex:0 0 auto;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;padding:14px 18px;border-bottom:1px solid #dfe8e4;background:#f8fbf9}.ad-product-summary article{display:grid;gap:4px;padding:12px;border:1px solid #dce8e3;border-radius:10px;background:#fff}.ad-product-summary span,.ad-product-detail-grid span{color:#647a73;font-size:11px}.ad-product-summary strong,.ad-product-detail-grid strong{color:#063f33;font-size:18px}.ad-product-summary small,.ad-product-detail-grid small{color:#72847e;font-size:10px}.ad-product-detail{flex:0 0 auto;margin:14px 18px 0;border:1px solid #99d2c0;border-radius:12px;background:#f5fbf8}.ad-product-detail-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border-bottom:1px solid #d4e8e0}.ad-product-detail-heading span{color:#08745c;font-size:11px;font-weight:800}.ad-product-detail-heading h3{margin:3px 0;color:#153e35}.ad-product-detail-heading p{margin:0;color:#657a73;font-size:11px}.ad-product-detail-heading button,.ad-product-detail-button{border:1px solid #9bcabd;border-radius:8px;background:#fff;color:#08745c;font-weight:700;cursor:pointer}.ad-product-detail-heading button{padding:8px 11px}.ad-product-detail-button{padding:6px 9px;white-space:nowrap}.ad-product-detail-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:9px;padding:12px}.ad-product-detail-grid article{display:grid;gap:5px;padding:10px;border-radius:9px;background:#fff}.ad-product-readonly-note,.ad-product-detail-loading,.ad-product-detail-error{margin:0;padding:0 14px 14px;color:#08745c;font-size:11px;font-weight:700}.ad-product-detail-loading,.ad-product-detail-error{padding-top:14px}.ad-product-detail-error{color:#a33531}
.ad-write-preview-panel{padding:18px}.ad-write-preview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.ad-write-preview-heading span{color:#08745c;font-size:12px;font-weight:800}.ad-write-preview-heading h2{margin:4px 0 6px}.ad-write-preview-heading p{margin:0;color:#687d77}.ad-write-preview-heading>strong{white-space:nowrap;border:1px solid #e0bc68;border-radius:999px;background:#fff7df;padding:7px 12px;color:#8b6100;font-size:12px}.ad-write-capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ad-write-capability-grid article{display:grid;gap:5px;border:1px solid #cfe2dc;border-radius:11px;background:#fff;padding:13px}.ad-write-capability-grid span{color:#47675f;font-size:12px}.ad-write-capability-grid b{color:#08725b}.ad-write-capability-grid small{color:#6e827c}.ad-write-capability-grid article.pending{border-color:#e2e2da;background:#f6f6f2}.ad-write-capability-grid article.pending b{color:#777b72}.ad-write-preview-form{display:grid;grid-template-columns:1.3fr 1fr 1.4fr auto;align-items:end;gap:12px;padding:16px;border:1px solid #d6e1dd;border-radius:12px;background:#f6faf8}.ad-write-preview-form label{display:grid;gap:7px;color:#557068;font-size:12px}.ad-write-preview-form input,.ad-write-preview-form select{width:100%;min-height:40px;border:1px solid #c7d7d2;border-radius:8px;background:#fff;padding:0 10px;color:#183b34}.ad-write-preview-form button{min-height:40px;white-space:nowrap}.ad-write-preview-warning{margin:0;border-left:4px solid #d6a52f;background:#fff8e7;padding:11px 13px;color:#79580b;font-size:13px}.ad-write-preview-result{display:grid;gap:12px;border:1px solid #9bcfbe;border-radius:13px;background:#f4fbf8;padding:16px}.ad-write-preview-result[hidden]{display:none}.ad-write-preview-result h3,.ad-write-preview-result p{margin:0}.ad-write-preview-diff{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.ad-write-preview-diff>div{display:grid;gap:5px;border:1px solid #d2dfdb;border-radius:10px;background:#fff;padding:13px}.ad-write-preview-diff span{color:#677e77;font-size:12px}.ad-write-preview-diff strong{overflow-wrap:anywhere}.ad-write-preview-diff>i{font-style:normal;color:#08725b;font-weight:900}.ad-write-preview-request{display:flex;flex-wrap:wrap;gap:9px;color:#56726a;font-size:12px}.ad-write-preview-request span{border-radius:999px;background:#e6f3ee;padding:6px 9px}.ad-write-preview-safe{color:#08705b;font-weight:800}
.ad-write-readiness{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.ad-write-readiness article{display:grid;gap:6px;border:1px solid #cfe2dc;border-radius:11px;background:#f5fbf8;padding:12px}.ad-write-readiness span{color:#58736b;font-size:12px}.ad-write-readiness b{color:#075f4d;font-size:13px;overflow-wrap:anywhere}
.ad-write-test-control{display:flex;align-items:center;gap:10px;border:1px solid #bfd8d0;border-radius:12px;background:#f4faf7;padding:13px 15px}.ad-write-test-control>div{display:grid;gap:4px;margin-right:auto}.ad-write-test-control strong{color:#075f4d}.ad-write-test-control p{margin:0;color:#687d77;font-size:12px}.ad-write-test-control button{white-space:nowrap}.ad-write-test-control button.danger{border-color:#bd4b3d;background:#bd4b3d;color:#fff}.ad-write-test-control button:disabled{cursor:not-allowed;opacity:.55}

@media(max-width:1100px){.operations-summary-grid,.ad-monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.capability-grid{grid-template-columns:1fr}.pairing-panel{grid-template-columns:1fr}.ad-monitor-settings{grid-template-columns:1fr}.ad-write-readiness,.ad-write-capability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-write-preview-form{grid-template-columns:1fr 1fr}.ad-write-test-control{align-items:stretch;flex-direction:column}}
@media(max-width:900px){.ad-product-summary{grid-template-columns:repeat(2,minmax(130px,1fr))}.ad-product-detail-grid{grid-template-columns:repeat(2,minmax(120px,1fr))}}
@media(max-width:700px){.operations-shell{padding:18px 12px}.operations-heading{align-items:stretch;flex-direction:column}.operations-heading-actions{display:grid;grid-template-columns:1fr 1fr}.operations-notice,.ad-monitor-safety{align-items:flex-start;flex-direction:column}.operations-summary-grid,.ad-monitor-grid{grid-template-columns:1fr}.operations-toolbar{display:grid}.operations-toolbar input{min-width:0}.ad-monitor-toolbar>*{width:100%}.ad-monitor-toolbar input,.ad-monitor-toolbar select,.ad-monitor-toolbar button{width:100%}.ad-monitor-meta{display:grid}.ad-shop-sync-card{grid-template-columns:1fr}.ad-shop-sync-stats{display:grid;grid-template-columns:repeat(3,1fr)}.ad-shop-sync-actions{display:grid;grid-template-columns:1fr 1fr}.ad-product-dialog{width:100vw;max-height:100vh;border-radius:0}.ad-product-summary,.ad-product-detail-grid{grid-template-columns:1fr}.ad-product-detail-heading{grid-template-columns:1fr}.ad-product-detail-heading button{justify-self:start}.ad-write-preview-heading{display:grid}.ad-write-preview-heading>strong{justify-self:start}.ad-write-readiness,.ad-write-capability-grid,.ad-write-preview-form{grid-template-columns:1fr}.ad-write-preview-diff{grid-template-columns:1fr}.ad-write-preview-diff>i{text-align:center;transform:rotate(90deg)}}

/* 3.29.0 三板块修复：表格转换器按主图和款式分行 */
.converter-view #previewStrip[hidden]{display:none}
.converter-view #productRows tr.product-module-row{display:block;overflow:visible;border:1px solid #55aa91;border-radius:15px;background:#fbfbf8;box-shadow:0 6px 16px rgba(27,66,55,.045)}
.converter-view #productRows tr.product-module-row.product-row-selected{box-shadow:0 0 0 2px rgba(32,145,111,.14),0 6px 16px rgba(27,66,55,.045)}
.converter-view #productRows tr.product-module-row>.product-module-cell{display:block;width:100%;padding:0;border:0}
.converter-view #productRows tr.product-module-row>.product-module-cell::before{display:none}
.product-module-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid #dce7e2;background:#f7faf8}
.product-module-heading>div{display:grid;gap:3px;min-width:0}.product-module-heading>div>span{color:#08735d;font-size:11px;font-weight:800}.product-module-heading>div>strong,.product-module-heading>div>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-module-heading>div>small{color:#6b7d77;font-size:11px}.product-module-heading>.image-delete-button{min-width:76px;min-height:32px;padding:5px 10px;font-size:11px}
.product-media-board{display:grid}.product-media-row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:14px;align-items:center;min-width:0;padding:14px 16px;border-bottom:1px solid #e1e8e5}.product-media-common{background:#fbfcfa}.product-media-variant{background:#fff}
.product-media-label{display:grid;gap:6px;align-content:center;min-width:0}.product-media-label strong{color:#183f36;font-size:13px}.product-media-label small{color:#6b7d77;font-size:11px}.product-media-label input{width:100%;min-width:0;height:34px}
.converter-view #productRows .product-media-images{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;min-width:0}
.converter-view #productRows .product-media-images .image-detail-item{flex:0 0 82px;width:82px;min-width:82px;min-height:122px;padding:6px}
.converter-view #productRows .product-media-images .image-thumbnail-preview{width:68px;height:58px}
.converter-view #productRows .product-media-images .image-role,.converter-view #productRows .product-media-images .image-state-label{max-width:70px}
.converter-view #productRows .product-media-images .image-item-actions{width:70px}
.converter-view #productRows .product-media-images .image-add-item{flex:0 0 88px;width:88px;min-width:88px;min-height:122px;padding:6px}
.product-media-empty{align-self:center;color:#71817c;font-size:12px}.product-variant-delete{min-width:76px;min-height:32px;padding:5px 9px;font-size:11px;white-space:nowrap}
.product-media-images .image-retry-button{background:#08745b}.product-media-images .image-retry-button:disabled{opacity:.58;cursor:wait}.product-media-images .image-delete-button{color:#a32920;background:#fff;border-color:#d97e75}
.product-module-fields{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(360px,2fr);gap:18px;padding:16px;border-bottom:1px solid #e1e8e5}.product-module-fields>label{display:grid;align-content:start;gap:7px;color:#5f746d;font-size:11px}.product-module-fields input,.product-module-fields textarea{width:100%;min-width:0}.product-module-fields .product-description-editor{min-width:0}
.product-module-footer{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:14px 16px}.product-module-footer>div{display:grid;gap:6px;min-width:0}.product-module-footer span{color:#687c76;font-size:11px}.product-module-footer strong{overflow-wrap:anywhere;font-size:12px}
@media(max-width:900px){.product-media-row{grid-template-columns:120px minmax(0,1fr)}.product-media-row>.product-variant-delete{grid-column:1/-1;justify-self:start}.product-module-fields{grid-template-columns:1fr}}
@media(max-width:620px){.product-module-heading{grid-template-columns:1fr}.product-module-heading>.product-target-selector{justify-items:start}.product-module-heading>.image-delete-button{justify-self:start}.product-media-row{grid-template-columns:1fr}.product-module-footer{grid-template-columns:1fr}.product-media-images .image-detail-item{width:76px}}
.operations-status.api_unavailable{background:#fff4d9;color:#88600b}

/* 3.31.0 EasyBoss（易老板）源表产品卡片：严格按确认效果图布局 */
.converter-view #productRows tr.source-product-row{display:block!important;overflow:visible;border:0;background:transparent;box-shadow:none}
.converter-view #productRows tr.source-product-row>.source-product-cell{display:block;width:100%;padding:0;border:0;background:transparent}
.converter-view #productRows tr.source-product-row>.source-product-cell::before{display:none}
.source-product-overview,.source-product-title,.source-product-footer{border:1px solid #dfe7e4;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(28,71,59,.045)}
.source-product-overview{display:grid;grid-template-columns:120px 90px minmax(0,1fr);gap:0;align-items:start;padding:22px 24px}
.source-product-meta{display:grid;gap:12px;align-content:start;min-height:210px;padding:3px 18px 0 0;border-right:1px solid #e6ece9}
.source-product-meta span,.source-image-gallery-block header strong,.source-product-title>span,.source-product-footer span{color:#315f53;font-size:13px;font-weight:800}
.source-product-meta strong{color:#1b2e29;font-size:22px;font-weight:500}
.source-sequence{padding-left:20px}
.source-image-gallery-block{display:grid;min-width:0;gap:14px;padding-left:24px}
.source-image-gallery-block header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-right:4px}
.source-image-gallery-block header span{color:#7b8581;font-size:13px}
.source-image-gallery{display:flex;align-items:stretch;gap:16px;min-width:0;overflow-x:auto;padding:0 2px 5px}
.source-image-card{position:relative;display:grid;flex:0 0 126px;width:126px;height:194px;overflow:hidden;border:1px solid #d5dfdb;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(28,70,58,.04);grid-template-rows:1fr 40px}
.source-image-preview{display:block;width:100%;min-height:0;padding:0;border:0;background:#f4f6f5;cursor:zoom-in}
.source-image-preview img{display:block;width:100%;height:152px;object-fit:contain;background:#f6f7f6}
.source-image-card>strong{display:grid;color:#46534f;background:#fff;font-size:13px;font-weight:500;place-items:center}
.source-image-card>strong.source-main-badge{color:#fff;background:#2d715e;border-radius:8px;margin:5px auto;padding:3px 12px;font-weight:800}
.source-image-delete{position:absolute;z-index:2;top:7px;right:7px;min-height:26px;padding:2px 8px;border:1px solid #d5d8d6;border-radius:7px;background:rgba(255,255,255,.94);color:#5c5f5e;font-size:12px;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.06)}
.source-image-delete:hover{color:#a42f27;border-color:#dc8a82}
.source-image-add{display:grid;flex:0 0 126px;width:126px;height:194px;padding:16px;border:1px dashed #afc3bc;border-radius:10px;background:#fbfcfb;color:#2d745f;cursor:pointer;place-content:center;gap:13px;text-align:center}
.source-image-add strong{font-size:14px}.source-image-add span{color:#7f8d88;font-size:11px;line-height:1.55}.source-image-add:disabled{opacity:.68;cursor:default}
.source-product-title{display:grid;gap:12px;margin-top:14px;padding:20px 24px}
.source-product-title input{width:100%;min-height:42px;border:1px solid #d5dfdb;border-radius:8px;background:#fff;padding:0 12px;color:#263832;font-size:14px}
.source-product-footer{display:grid;grid-template-columns:1.18fr 1fr .9fr;margin-top:14px;padding:20px 24px}
.source-product-footer>div{display:grid;min-width:0;min-height:62px;gap:13px;align-content:start;padding:2px 24px}
.source-product-footer>div:first-child{padding-left:0}.source-product-footer>div+div{border-left:1px solid #e4eae7}.source-product-footer strong{overflow-wrap:anywhere;color:#263832;font-size:14px}.source-product-footer .url-ok strong{color:#078265}

/* 3.31.0 广告计划状态按钮 */
.ad-monitor-status-field{display:grid;gap:6px;color:#587069;font-size:12px}
.ad-monitor-status-field>select{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.ad-status-filters{display:flex;gap:6px;min-height:38px;padding:3px;border:1px solid #c8d5d0;border-radius:9px;background:#fff}
.ad-monitor-toolbar .ad-status-filters button{min-height:30px;padding:0 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:#587069;font-weight:700}
.ad-monitor-toolbar .ad-status-filters button:hover{background:#eef7f3;color:#08745c}
.ad-monitor-toolbar .ad-status-filters button.active,.ad-monitor-toolbar .ad-status-filters button[aria-pressed="true"]{border-color:#15896f;background:#087e66;color:#fff}

@media(max-width:900px){.source-product-overview{grid-template-columns:100px 70px minmax(520px,1fr);overflow-x:auto}.source-product-footer{grid-template-columns:1fr}.source-product-footer>div{padding:14px 0}.source-product-footer>div+div{border-top:1px solid #e4eae7;border-left:0}}
@media(max-width:620px){.source-product-overview{display:block}.source-product-meta{display:inline-grid;min-height:76px;width:46%;border-right:0}.source-image-gallery-block{padding-left:0}.source-product-title,.source-product-footer,.source-product-overview{padding:16px}}

/* 3.31.2 广告评级分析 */
.ad-rating-shell{display:grid;gap:18px;max-width:1420px;margin:0 auto;padding:34px 32px 56px;color:#123f35}
.ad-rating-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.ad-rating-heading span,.ad-rating-history-card>div>span,.ad-rating-cost-card form>div>span,.ad-rating-result-heading span{color:#078a70;font-size:13px;font-weight:800}.ad-rating-heading h1{margin:6px 0 5px;font-size:34px;line-height:1.1}.ad-rating-heading p,.ad-rating-history-card p,.ad-rating-cost-card p,.ad-rating-result-heading p{margin:0;color:#62766f}.ad-rating-rule-chip{padding:11px 15px;border:1px solid #afd6ca;border-radius:999px;background:#edf9f5;color:#086b57;font-size:13px;font-weight:800;white-space:nowrap}
.ad-rating-notice{display:flex;gap:16px;align-items:center;padding:14px 18px;border:1px solid #cdded8;border-radius:12px;background:#f7fbf9}.ad-rating-notice strong{color:#08735d}.ad-rating-notice span{color:#667a73;font-size:13px}
.ad-rating-upload{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(260px,1fr) minmax(260px,1fr) auto;gap:14px;align-items:end;padding:20px;border:1px solid #d7e3df;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(24,74,60,.04)}.ad-rating-upload label{display:grid;gap:7px;color:#28594d;font-size:13px;font-weight:800}.ad-rating-upload input{min-width:0;min-height:43px;border:1px solid #c7d7d1;border-radius:9px;background:#fff;padding:9px 11px;color:#263e37}.ad-rating-file{padding:12px;border:1px dashed #9bc8ba;border-radius:11px;background:#f7fcfa}.ad-rating-file small{color:#71837d;font-size:11px;font-weight:500}.ad-rating-file input{padding:5px;border:0;background:transparent}.ad-rating-upload button{min-height:44px;white-space:nowrap}
.ad-rating-message{margin:0;padding:10px 14px;border-radius:9px;background:#edf4f1;color:#4d675f;font-size:13px}.ad-rating-message[data-tone="success"]{background:#dff6ed;color:#087159}.ad-rating-message[data-tone="error"]{background:#fff0ed;color:#a43a2f}
.ad-rating-result,.ad-rating-history-card,.ad-rating-cost-card{overflow:hidden;border:1px solid #d7e3df;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(24,74,60,.04)}.ad-rating-result-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 22px 18px;border-bottom:1px solid #e2ebe7}.ad-rating-result-heading h2,.ad-rating-history-card h2,.ad-rating-cost-card h2{margin:5px 0;font-size:22px}.ad-rating-result-heading button{min-height:40px;padding:0 15px;border:1px solid #16856e;border-radius:9px;background:#078166;color:#fff;font-weight:800;cursor:pointer}
.ad-rating-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#dce7e3}.ad-rating-meta span{display:grid;gap:5px;padding:15px 18px;background:#f8fbfa;color:#6a7c76;font-size:11px}.ad-rating-meta strong{color:#18493d;font-size:13px}.ad-rating-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px 22px}.ad-rating-summary article{display:grid;grid-template-columns:1fr auto;align-items:end;padding:14px;border-radius:12px}.ad-rating-summary article span{font-weight:800}.ad-rating-summary article strong{font-size:28px}.ad-rating-summary article small{grid-column:1/-1;color:#6c7b76}.ad-rating-summary .quality{background:#e3f7ee;color:#08705a}.ad-rating-summary .observe{background:#fff5dc;color:#84620d}.ad-rating-summary .eliminate{background:#ffebe8;color:#a3382e}.ad-rating-summary .insufficient{background:#eef1f0;color:#5d6a66}
.ad-rating-plan-advice{display:grid;grid-template-columns:auto auto 1fr;gap:18px;align-items:center;margin:0 22px 18px;padding:14px 16px;border-left:4px solid #0b8a70;border-radius:9px;background:#f2f8f6}.ad-rating-plan-advice p{margin:0;color:#536c64}.ad-rating-table-wrap{overflow:auto;border-top:1px solid #e2ebe7}.ad-rating-table-wrap table{width:100%;min-width:1080px;border-collapse:collapse}.ad-rating-table-wrap th,.ad-rating-table-wrap td{padding:13px 14px;border-bottom:1px solid #e5ece9;text-align:left;vertical-align:top;font-size:12px}.ad-rating-table-wrap th{position:sticky;top:0;background:#edf4f1;color:#315f53}.ad-rating-table-wrap td:first-child{display:grid;gap:4px}.ad-rating-table-wrap td small{color:#71827c}.ad-rating-reason{display:block;min-width:220px;line-height:1.6}.ad-rating-badge{display:inline-block;padding:5px 10px;border-radius:999px;white-space:nowrap}.ad-rating-badge.quality{background:#d9f4e8;color:#06715a}.ad-rating-badge.observe{background:#fff0c8;color:#805c05}.ad-rating-badge.eliminate{background:#ffe0dc;color:#a02f26}.ad-rating-badge.insufficient{background:#e8ecea;color:#5b6864}.ad-rating-empty{text-align:center!important;color:#75847f}
.ad-rating-lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ad-rating-history-card>div:first-child,.ad-rating-cost-card form{padding:20px}.ad-rating-history{display:grid;border-top:1px solid #e2ebe7}.ad-rating-history>p{padding:18px}.ad-rating-history article{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px 15px;border-bottom:1px solid #e5ece9}.ad-rating-history button{display:grid;gap:3px;border:0;background:transparent;color:#17483c;text-align:left;cursor:pointer}.ad-rating-history button span{font-weight:800}.ad-rating-history button small{color:#6f817b}.ad-rating-history a{color:#078166;font-size:12px;font-weight:800}.ad-rating-cost-card form{display:grid;gap:14px}.ad-rating-cost-card label{display:grid;gap:6px;color:#315f53;font-size:12px;font-weight:800}.ad-rating-cost-card input,.ad-rating-cost-card textarea{width:100%;border:1px solid #c7d7d1;border-radius:9px;padding:10px;background:#fff;color:#263e37}.ad-rating-cost-card textarea{resize:vertical;line-height:1.6}.ad-rating-cost-card small{color:#6f817b}
@media(max-width:1050px){.ad-rating-upload{grid-template-columns:1fr 1fr}.ad-rating-upload .ad-rating-plan,.ad-rating-upload button{grid-column:1/-1}.ad-rating-lower-grid{grid-template-columns:1fr}}
@media(max-width:720px){.ad-rating-shell{padding:22px 14px 40px}.ad-rating-heading{align-items:flex-start;flex-direction:column}.ad-rating-rule-chip{white-space:normal}.ad-rating-upload{grid-template-columns:1fr}.ad-rating-upload .ad-rating-plan,.ad-rating-upload button{grid-column:auto}.ad-rating-meta,.ad-rating-summary{grid-template-columns:1fr 1fr}.ad-rating-plan-advice{grid-template-columns:1fr}.ad-rating-notice{align-items:flex-start;flex-direction:column}}

/* 3.31.9 商品窗口紧凑布局与排序 */
.ad-product-dialog-heading{align-items:center;padding:9px 14px}.ad-product-dialog-heading span{font-size:10px}.ad-product-dialog-heading h2{margin:2px 0;font-size:20px;line-height:1.2}.ad-product-dialog-heading p{font-size:11px}.ad-product-dialog-actions{gap:6px}.ad-product-dialog-heading button{width:32px;height:32px;padding:0}.ad-product-dialog-heading .ad-product-fullscreen-button{font-size:21px;line-height:1}.ad-product-dialog-heading #adMonitorProductClose{width:32px;height:32px;font-size:20px}
.ad-product-summary{gap:6px;padding:6px 14px}.ad-product-summary article{gap:2px;padding:6px 9px;border-radius:8px}.ad-product-summary span,.ad-product-detail-grid span{font-size:9px}.ad-product-summary strong,.ad-product-detail-grid strong{font-size:15px}.ad-product-summary small,.ad-product-detail-grid small{font-size:9px}.ad-product-image-access{padding:5px 14px;font-size:10px;line-height:1.4}
.ad-product-detail{margin:6px 14px 0;border-radius:9px}.ad-product-detail-heading{gap:9px;padding:6px 8px}.ad-product-detail-heading h3{margin:1px 0;font-size:15px}.ad-product-detail-heading p,.ad-product-detail-heading span{font-size:9px}.ad-product-detail-heading button{padding:5px 8px;font-size:11px}.ad-product-image-frame.detail{flex-basis:48px;width:48px;height:48px}.ad-product-detail-grid{gap:5px;padding:6px}.ad-product-detail-grid article{gap:2px;padding:6px 8px;border-radius:7px}.ad-product-readonly-note{padding:0 8px 6px;font-size:9px}
.ad-product-dialog>.ad-monitor-table-wrap{min-height:280px;padding:0 14px 10px}.ad-product-table th,.ad-product-table td{padding:8px 9px!important;font-size:11px!important}.ad-product-table thead th{position:sticky;top:0;z-index:2;background:#edf3f1}.ad-product-table thead button{min-height:24px!important;border:0!important;background:transparent!important;padding:0!important;color:#526b63!important;font:inherit;font-weight:800!important;white-space:nowrap;cursor:pointer}.ad-product-table thead button:hover,.ad-product-table thead button[aria-pressed="true"]{color:#08745c!important}.ad-product-cell{gap:8px}.ad-product-cell>span:last-child{gap:2px}.ad-product-cell strong{font-size:11px}.ad-product-cell small{font-size:9px!important}.ad-product-image-frame{flex-basis:46px;width:46px;height:46px;border-radius:7px}.ad-product-actions{gap:5px}.ad-product-actions button{min-height:28px!important;padding:0 8px!important;font-size:11px}.ad-product-remove-button{min-width:88px!important}

/* 3.32.2 多广告账户独立授权 */
.ad-account-heading-actions{display:flex;align-items:flex-end;gap:9px;flex-wrap:wrap;justify-content:flex-end}.ad-account-heading-actions label{display:grid;gap:5px;color:#587069;font-size:12px;font-weight:700}.ad-account-heading-actions select{min-width:290px;min-height:40px;border:1px solid #bfd3cc;border-radius:9px;background:#fff;padding:0 34px 0 11px;color:#163f36;font-weight:800}.ad-account-heading-actions button{min-height:40px;border:1px solid #0f8a70;border-radius:9px;background:#fff;color:#08745c;padding:0 14px;font-weight:800;cursor:pointer}.ad-account-heading-actions #adMonitorRefresh{background:#07856f;color:#fff}.ad-account-entry-card{border-color:#9cd5c5!important;background:linear-gradient(150deg,#f3fffb,#fff)!important}
.ad-account-dialog{width:min(820px,calc(100vw - 36px));max-width:none;border:0;border-radius:16px;padding:0;color:#183b34;box-shadow:0 24px 80px rgba(18,56,46,.28)}.ad-account-dialog::backdrop{background:rgba(13,40,33,.48)}.ad-account-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 16px;border-bottom:1px solid #dce7e2;background:#f8fbfa}.ad-account-dialog-heading span{color:#08745c;font-size:12px;font-weight:900}.ad-account-dialog-heading h2{margin:4px 0 5px;font-size:25px}.ad-account-dialog-heading p{margin:0;color:#687c76}.ad-account-dialog-heading button{width:38px;height:38px;border:1px solid #ccd9d5;border-radius:9px;background:#fff;color:#3e5b53;font-size:22px;cursor:pointer}.ad-account-isolation-notice{display:flex;gap:12px;padding:12px 22px;border-bottom:1px solid #dce7e2;background:#ecf8f4;color:#176a57}.ad-account-isolation-notice span{color:#587069}.ad-account-list{display:grid;gap:12px;padding:18px 22px 22px}.ad-account-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid #d7e4df;border-radius:12px;padding:16px;background:#fff}.ad-account-row.active{border-color:#49aa91;background:#f3fbf8}.ad-account-row h3{margin:0 0 5px;font-size:18px}.ad-account-row p{margin:0;color:#5f766f;font-size:13px}.ad-account-row small{display:block;margin-top:7px;color:#7c8f89}.ad-account-row-actions{display:flex;align-items:center;gap:8px}.ad-account-state{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;background:#eaf2ef;color:#516a62;padding:0 10px;font-size:12px;font-weight:800}.ad-account-state.configured{background:#e1f6ee;color:#08745c}.ad-account-switch,.ad-account-authorize{min-height:36px;border:1px solid #0f8a70;border-radius:8px;padding:0 12px;font-weight:800;cursor:pointer}.ad-account-switch{background:#fff;color:#08745c}.ad-account-authorize{background:#07856f;color:#fff}.ad-account-switch:disabled,.ad-account-authorize:disabled{border-color:#cbd8d3;background:#eef3f1;color:#80918b;cursor:not-allowed}
.ad-oauth-paste-panel{display:grid;gap:12px;border-top:1px solid #dce7e2;background:#fbfdfc;padding:18px 22px 22px}.ad-oauth-paste-panel strong{font-size:16px;color:#154b3f}.ad-oauth-paste-panel p{margin:5px 0 0;color:#667d76;line-height:1.65}.ad-oauth-paste-panel textarea{width:100%;box-sizing:border-box;resize:vertical;border:1px solid #b9d2ca;border-radius:10px;background:#fff;padding:11px 12px;color:#173f36;line-height:1.5}.ad-oauth-paste-panel textarea:focus{outline:2px solid rgba(7,133,111,.18);border-color:#07856f}.ad-oauth-paste-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.ad-oauth-paste-actions span{font-size:13px;color:#587069}.ad-oauth-paste-actions span[data-kind="success"]{color:#08745c;font-weight:800}.ad-oauth-paste-actions span[data-kind="error"]{color:#b23b31;font-weight:800}
@media(max-width:760px){.ad-account-heading-actions{justify-content:stretch}.ad-account-heading-actions label,.ad-account-heading-actions select,.ad-account-heading-actions button{width:100%}.ad-account-row{grid-template-columns:1fr}.ad-account-row-actions{justify-content:flex-start}.ad-account-isolation-notice{flex-direction:column;gap:4px}.ad-oauth-paste-actions{align-items:stretch;flex-direction:column}}

/* 3.33.2 广告看板日期、进度与紧凑布局 */
.ad-monitor-heading{align-items:flex-start}
.ad-account-heading-actions{align-items:flex-end}
.ad-monitor-update-badge{display:inline-flex;align-items:center;justify-content:center;min-height:31px;border-radius:999px;background:#e5f5ef;padding:0 11px;color:#08745c;font-size:12px;font-weight:800}
.ad-monitor-update-badge[data-kind="loading"]{background:#fff3d6;color:#805b08}
.ad-monitor-update-badge[data-kind="error"]{background:#ffebe8;color:#a43228}
.ad-monitor-manual-progress{display:grid;gap:7px;min-width:min(430px,100%);padding-top:2px}
.ad-monitor-manual-progress[hidden]{display:none}
.ad-monitor-manual-progress>div{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#4e6e65;font-size:12px;font-weight:700}
.ad-monitor-manual-progress progress{width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;accent-color:#078169}
.ad-monitor-manual-progress progress::-webkit-progress-bar{border-radius:999px;background:#dfeae6}
.ad-monitor-manual-progress progress::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,#078169,#40ba98)}
.ad-date-range-field{position:relative;display:grid;gap:6px;min-width:265px;color:#587069;font-size:12px}
.ad-date-range-field>button{min-height:38px;border:1px solid #c8d5d0!important;border-radius:8px!important;background:#fff!important;padding:0 34px 0 11px!important;color:#183b34!important;text-align:left}
.ad-date-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:40;display:grid;grid-template-columns:120px minmax(330px,1fr);gap:14px;width:min(620px,calc(100vw - 42px));border:1px solid #bfd5ce;border-radius:13px;background:#fff;padding:14px;box-shadow:0 18px 45px rgba(15,63,51,.2)}
.ad-date-panel[hidden]{display:none}
.ad-date-presets{display:grid;align-content:start;gap:6px;padding-right:12px;border-right:1px solid #e0e8e5}
.ad-date-presets button{min-height:32px!important;border:1px solid transparent!important;background:#f2f6f4!important;padding:0 10px!important;color:#315d52!important;text-align:left}
.ad-date-presets button:hover{border-color:#8fc9b9!important;background:#e8f6f1!important;color:#08745c!important}
.ad-date-custom{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:9px}
.ad-date-custom label{display:grid;gap:6px}
.ad-date-custom input{width:100%;min-width:0}
.ad-date-custom>span{padding-bottom:11px;color:#758781}
.ad-date-custom small{grid-column:1/-1;color:#758781}
.ad-date-custom>button{grid-column:1/-1;justify-self:end}
#adMonitorSummaryGrid.ad-monitor-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}
#adMonitorSummaryGrid article{min-height:84px;gap:4px;border-radius:12px;padding:12px 14px}
#adMonitorSummaryGrid strong{font-size:18px}
#adMonitorSummaryGrid span,#adMonitorSummaryGrid small{font-size:11px}

/* 3.33.2 站斧店铺列表比例 */
[data-zhanfu-panel="stores"] .operations-toolbar input{width:100%;min-width:0}
[data-zhanfu-panel="stores"] .operations-table-wrap table{min-width:1080px;table-layout:fixed}
[data-zhanfu-panel="stores"] .operations-table-wrap th:nth-child(1),[data-zhanfu-panel="stores"] .operations-table-wrap td:nth-child(1){width:17%}
[data-zhanfu-panel="stores"] .operations-table-wrap th:nth-child(2),[data-zhanfu-panel="stores"] .operations-table-wrap td:nth-child(2){width:13%}
[data-zhanfu-panel="stores"] .operations-table-wrap th:nth-child(3),[data-zhanfu-panel="stores"] .operations-table-wrap td:nth-child(3){width:20%}
[data-zhanfu-panel="stores"] .operations-table-wrap th:nth-child(4),[data-zhanfu-panel="stores"] .operations-table-wrap td:nth-child(4){width:12%}
[data-zhanfu-panel="stores"] .operations-table-wrap th:nth-child(5),[data-zhanfu-panel="stores"] .operations-table-wrap td:nth-child(5){width:10%}
[data-zhanfu-panel="stores"] .operations-table-wrap th:nth-child(6),[data-zhanfu-panel="stores"] .operations-table-wrap td:nth-child(6){width:18%}
[data-zhanfu-panel="stores"] .operations-table-wrap th:nth-child(7),[data-zhanfu-panel="stores"] .operations-table-wrap td:nth-child(7){width:10%}
[data-zhanfu-panel="stores"] .operations-table-wrap td{overflow-wrap:anywhere}

@media(max-width:1250px){#adMonitorSummaryGrid.ad-monitor-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){#adMonitorSummaryGrid.ad-monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-date-panel{grid-template-columns:1fr}.ad-date-presets{grid-template-columns:repeat(2,minmax(0,1fr));padding-right:0;padding-bottom:12px;border-right:0;border-bottom:1px solid #e0e8e5}}
@media(max-width:560px){#adMonitorSummaryGrid.ad-monitor-grid{grid-template-columns:1fr}.ad-date-range-field{min-width:0}.ad-date-panel{left:auto;right:0}.ad-date-custom{grid-template-columns:1fr}.ad-date-custom>span{display:none}.ad-date-custom small,.ad-date-custom>button{grid-column:auto;width:100%}}
.zhanfu-filter-control{display:grid;grid-template-columns:minmax(280px,1fr) auto minmax(320px,1.4fr);gap:12px;align-items:end;margin:12px 0;padding:14px 16px;border:1px solid #b9ddd2;border-radius:12px;background:#f2fbf8}.zhanfu-filter-control label,.zhanfu-filter-control div{display:grid;gap:6px}.zhanfu-filter-control span,.zhanfu-filter-control small{font-size:12px;color:#52716a}.zhanfu-filter-control input{min-height:40px;padding:0 12px;border:1px solid #b8cec8;border-radius:8px;background:#fff}.zhanfu-filter-control button{min-height:40px;padding:0 18px;border:1px solid #087c67;border-radius:8px;background:#fff;color:#087c67;font-weight:700}.zhanfu-filter-control strong{color:#075f50}.zhanfu-filter-control small{max-height:42px;overflow:auto}@media(max-width:900px){.zhanfu-filter-control{grid-template-columns:1fr}}

/* 3.33.25 创建并开启广告小窗口 */
.ad-create-capability button{justify-self:start;min-height:30px;margin-top:6px;border:1px solid #087e67;border-radius:7px;background:#fff;padding:0 10px;color:#08705b;font-weight:800;cursor:pointer}
.ad-create-dialog{width:min(720px,calc(100vw - 28px));height:min(720px,calc(100vh - 28px));max-width:none;max-height:none;overflow:hidden;border:0;border-radius:16px;padding:0;color:#163f36;box-shadow:0 28px 90px rgba(13,48,39,.3)}
.ad-create-dialog::backdrop{background:rgba(12,38,32,.52)}.ad-create-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.ad-create-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #dbe7e3;background:#f6fbf9;padding:16px 18px}.ad-create-dialog-heading span{color:#087c66;font-size:11px;font-weight:900}.ad-create-dialog-heading h2{margin:3px 0;font-size:23px}.ad-create-dialog-heading p{margin:0;color:#657a73;font-size:12px}.ad-create-dialog-heading>button{width:34px;height:34px;border:1px solid #c8d8d3;border-radius:8px;background:#fff;color:#365d52;font-size:21px;cursor:pointer}
.ad-create-dialog-body{display:grid;align-content:start;gap:12px;min-height:0;overflow:auto;padding:14px 18px}.ad-create-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ad-create-fields label{display:grid;gap:5px;color:#47685f;font-size:11px;font-weight:800}.ad-create-fields input,.ad-create-fields select,.ad-create-products input{width:100%;min-height:36px;border:1px solid #bfd2cc;border-radius:8px;background:#fff;padding:0 10px;color:#183f36}.ad-create-fields>button{align-self:end;min-height:36px;border:1px solid #087d67;border-radius:8px;background:#087d67;color:#fff;font-weight:800;cursor:pointer}
.ad-create-promotion{grid-column:1/-1;display:grid;grid-template-columns:auto max-content minmax(0,1fr);gap:8px;align-items:center;max-width:620px;border:1px solid #e4c568;border-radius:9px;background:#fff8df;padding:7px 9px}.ad-create-promotion>span{font-weight:900}.ad-create-promotion button{width:auto;min-width:92px;min-height:28px;border:1px solid #16856e;border-radius:999px;background:#e2f6ee;padding:0 10px;color:#08705b;font-weight:900;cursor:pointer}.ad-create-promotion button[data-state="on"]{border-color:#d36d46;background:#fff0e9;color:#a23920}.ad-create-promotion button[data-state="off"]{border-color:#16856e;background:#e2f6ee;color:#08705b}.ad-create-promotion small{color:#765b15}
.ad-create-products{display:grid;gap:8px;min-height:230px;border:1px solid #d4e2dd;border-radius:11px;padding:10px}.ad-create-products>div:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:end}.ad-create-products label{display:grid;gap:4px;color:#4f6c64;font-size:11px}.ad-create-products button{min-height:36px;border:1px solid #16856e;border-radius:8px;background:#fff;color:#08705b;padding:0 11px;font-weight:800;cursor:pointer}.ad-create-products strong{align-self:center;color:#08705b;font-size:11px;white-space:nowrap}.ad-create-product-list{display:grid;align-content:start;gap:5px;max-height:235px;overflow:auto;padding-right:4px}.ad-create-product-list>p{margin:18px;color:#71847e;text-align:center}.ad-create-product{display:grid;grid-template-columns:auto 42px minmax(0,1fr);gap:9px;align-items:center;border:1px solid #e0e9e6;border-radius:8px;padding:7px;background:#fff;cursor:pointer}.ad-create-product:has(input:checked){border-color:#45a88f;background:#effaf6}.ad-create-product img{width:42px;height:42px;border-radius:6px;object-fit:contain;background:#f0f3f2}.ad-create-product span{display:grid;min-width:0;gap:3px}.ad-create-product b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.ad-create-product small{color:#6d817a;font-size:10px}.ad-create-product[hidden]{display:none}
.ad-create-preview{border-left:4px solid #08826a;border-radius:8px;background:#eef8f4;padding:10px 12px;font-size:12px;line-height:1.6}.ad-create-preview strong{display:block;color:#086b57}.ad-create-status{margin:0;border-radius:8px;background:#eef3f1;padding:9px 11px;color:#506a62;font-size:12px}.ad-create-status[data-tone="error"]{background:#ffebe8;color:#a3342a}.ad-create-status[data-tone="success"]{background:#dff7ed;color:#08715a}.ad-create-dialog-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #dce7e3;background:#fafcfb;padding:12px 18px}.ad-create-dialog-actions button{min-height:38px;border:1px solid #15856e;border-radius:8px;background:#fff;color:#08705b;padding:0 14px;font-weight:900;cursor:pointer}.ad-create-dialog-actions button.danger{border-color:#be493f;background:#b83c33;color:#fff}.ad-create-dialog-actions button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:620px){.ad-create-dialog{height:calc(100vh - 16px);width:calc(100vw - 16px)}.ad-create-fields{grid-template-columns:1fr}.ad-create-promotion{grid-column:auto;grid-template-columns:1fr auto}.ad-create-promotion small{grid-column:1/-1}.ad-create-products>div:first-child{grid-template-columns:1fr 1fr}.ad-create-products strong{grid-column:1/-1}.ad-create-dialog-actions{flex-wrap:wrap}.ad-create-dialog-actions button{flex:1}}

/* 3.33.28 战斧面板正式版 */
[data-portal-page="zhanfu-board"]{background:#f6f7f3;color:#17211e}
.zhanfu-board-shell{display:grid;gap:16px;padding:28px clamp(18px,3vw,48px) 52px}
.zhanfu-board-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px}.zhanfu-board-heading span{color:#08725e;font-size:12px;font-weight:900}.zhanfu-board-heading h1{margin:5px 0 4px;color:#111b18;font-size:34px}.zhanfu-board-heading p{margin:0;color:#596661}.zhanfu-board-heading-actions{display:flex;gap:9px;flex-wrap:wrap}.zhanfu-board-heading-actions button,.zhanfu-board-row-actions button,.zhanfu-board-campaign-panel button{min-height:40px;border:1px solid #17846e;border-radius:9px;background:#fff;padding:0 14px;color:#086e5a;font-weight:800;cursor:pointer}.zhanfu-board-heading-actions .portal-primary-button,.zhanfu-board-campaign-panel .portal-primary-button{background:#087f69;color:#fff}.zhanfu-board-heading-actions button:disabled,.zhanfu-board-row-actions button:disabled{opacity:.45;cursor:not-allowed}
.zhanfu-board-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #dedfd7;border-radius:10px;background:#fffdfa;padding:11px 15px;color:#4f5d58;font-size:12px}.zhanfu-board-notice b{color:#08725e}.zhanfu-board-notice b[data-tone="error"]{color:#b13b31}
.zhanfu-board-filters{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px;border:1px solid #d9dfdb;border-radius:13px;background:#fff;padding:15px}.zhanfu-board-filters label,.zhanfu-board-campaign-panel label{display:grid;gap:6px;color:#273a34;font-size:12px;font-weight:800}.zhanfu-board-filters input,.zhanfu-board-filters select,.zhanfu-board-campaign-panel select{width:100%;min-height:39px;border:1px solid #cbd6d2;border-radius:8px;background:#fff;padding:0 10px;color:#17211e}
.zhanfu-board-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.zhanfu-board-summary article{display:grid;gap:8px;min-height:90px;border:1px solid #d9dfdb;border-radius:13px;background:#fff;padding:16px 18px}.zhanfu-board-summary span{color:#4d5d57;font-size:12px}.zhanfu-board-summary strong{color:#101b17;font-size:26px}.zhanfu-board-summary i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%}.zhanfu-board-summary i.online{background:#13ad6a}.zhanfu-board-summary i.offline{background:#a6ada9}
.zhanfu-board-table-card,.zhanfu-board-campaign-panel,.zhanfu-board-records{overflow:hidden;border:1px solid #d9dfdb;border-radius:14px;background:#fff}.zhanfu-board-table-wrap{overflow:auto}.zhanfu-board-table-wrap table{width:100%;min-width:1320px;border-collapse:collapse}.zhanfu-board-table-wrap th,.zhanfu-board-table-wrap td{padding:12px 13px;border-bottom:1px solid #e5e9e7;color:#18231f;text-align:left;vertical-align:middle;font-size:12px}.zhanfu-board-table-wrap th{background:#f1f4f2;color:#344841;white-space:nowrap}.zhanfu-board-table-card td:nth-child(1),.zhanfu-board-table-card td:nth-child(2),.zhanfu-board-table-card td:nth-child(4),.zhanfu-board-table-card td:nth-child(5),.zhanfu-board-table-card td:nth-child(6),.zhanfu-board-table-card td:nth-child(7),.zhanfu-board-table-card td:nth-child(8){white-space:nowrap}.zhanfu-board-table-card td:nth-child(1){min-width:112px}.zhanfu-board-table-card td:nth-child(2){min-width:170px}.zhanfu-board-table-card td:nth-child(3){min-width:230px}.zhanfu-board-table-wrap td strong,.zhanfu-board-table-wrap td small{display:block}.zhanfu-board-table-wrap td small{margin-top:4px;color:#75817c;font-size:10px}.zhanfu-board-status,.zhanfu-board-task{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-weight:800;white-space:nowrap}.zhanfu-board-status.online,.zhanfu-board-task.success{background:#e0f6ec;color:#087158}.zhanfu-board-status.offline,.zhanfu-board-task.cancelled,.zhanfu-board-task.expired{background:#edf0ef;color:#67736f}.zhanfu-board-task.running,.zhanfu-board-task.dispatched,.zhanfu-board-task.queued{background:#fff0cf;color:#875f08}.zhanfu-board-task.failed{background:#ffe6e2;color:#a8342b}.zhanfu-board-row-actions{display:flex;gap:6px;white-space:nowrap}.zhanfu-board-row-actions button{min-height:30px;padding:0 9px;font-size:11px}
.zhanfu-board-table-card .zhanfu-board-table-wrap table{width:1530px;min-width:1530px;table-layout:fixed}.zhanfu-board-table-card th:nth-child(1){width:125px}.zhanfu-board-table-card th:nth-child(2){width:255px}.zhanfu-board-table-card th:nth-child(3){width:125px}.zhanfu-board-table-card th:nth-child(4){width:160px}.zhanfu-board-table-card th:nth-child(5){width:95px}.zhanfu-board-table-card th:nth-child(6),.zhanfu-board-table-card th:nth-child(7){width:130px}.zhanfu-board-table-card th:nth-child(8){width:75px}.zhanfu-board-table-card th:nth-child(9){width:160px}.zhanfu-board-table-card th:nth-child(10){width:275px}.zhanfu-board-table-card td{overflow:hidden}.zhanfu-board-activities small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zhanfu-board-campaign-panel{display:grid;grid-template-columns:minmax(180px,.38fr) minmax(0,1fr);gap:18px;align-items:end;padding:18px}.zhanfu-board-campaign-panel h2{margin:4px 0 0;color:#121d19}.zhanfu-board-campaign-panel span{color:#08725e;font-size:12px;font-weight:900}.zhanfu-board-campaign-panel form{display:grid;grid-template-columns:1fr 1.5fr auto;gap:10px;align-items:end}.zhanfu-board-records>div:first-child{padding:17px 18px 10px}.zhanfu-board-records h2{margin:4px 0;color:#121d19}.zhanfu-board-records span{color:#08725e;font-size:12px;font-weight:900}

/* 正式修改窗口 */
.ad-edit-dialog{width:min(1380px,calc(100vw - 34px));height:min(870px,calc(100vh - 34px));max-width:none;max-height:none;overflow:hidden;border:0;border-radius:16px;background:#f9faf7;padding:0;color:#17211e;box-shadow:0 30px 100px rgba(12,34,28,.3)}.ad-edit-dialog::backdrop{background:rgba(14,29,25,.54)}.ad-edit-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}.ad-edit-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid #dce2df;background:#fff;padding:18px 22px}.ad-edit-heading span{color:#08725e;font-size:12px;font-weight:900}.ad-edit-heading h2{margin:4px 0;color:#111b18;font-size:26px}.ad-edit-heading p{margin:0;color:#65716d}.ad-edit-heading>button{width:38px;height:38px;border:1px solid #ced8d4;border-radius:9px;background:#fff;color:#273a34;font-size:22px;cursor:pointer}.ad-edit-body{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;min-height:0;overflow:hidden;padding:14px}.ad-edit-main{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0}.ad-edit-values,.ad-edit-products,.ad-edit-summary{border:1px solid #d9dfdb;border-radius:12px;background:#fff;padding:14px}.ad-edit-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.ad-edit-section-title h3,.ad-edit-summary h3{margin:0;color:#121d19}.ad-edit-section-title small{color:#6b7772}.ad-edit-value-head,.ad-edit-values label{display:grid;grid-template-columns:170px 1fr 1fr;gap:10px;align-items:center}.ad-edit-value-head{padding:0 0 5px;color:#6a7671;font-size:11px}.ad-edit-values label{margin-top:7px;color:#263832;font-size:12px;font-weight:800}.ad-edit-values input,.ad-edit-values output,.ad-edit-product-tools input{min-height:36px;border:1px solid #cdd7d3;border-radius:8px;background:#fff;padding:0 10px;color:#17211e}.ad-edit-values output{display:flex;align-items:center;background:#f2f4f2;color:#4d5955}.ad-edit-products{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:0}.ad-edit-product-tools{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;gap:9px;align-items:center;margin-bottom:9px}.ad-edit-product-tools label{display:flex;align-items:center;gap:7px;color:#273a34;font-size:12px}.ad-edit-product-tools button{min-height:36px;border:1px solid #14816b;border-radius:8px;background:#fff;color:#08705b;padding:0 12px;font-weight:800;cursor:pointer}.ad-edit-product-list{display:grid;align-content:start;gap:7px;min-height:0;overflow:auto;padding-right:5px}.ad-edit-product{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e0e5e2;border-radius:9px;background:#fff;padding:8px}.ad-edit-product.is-selected,.ad-edit-product:has(input:checked){border-color:#4fac93;background:#eff9f5}.ad-edit-product>label{display:grid;grid-template-columns:auto 52px minmax(0,1fr);gap:10px;align-items:center;min-width:0}.ad-edit-product .ad-product-image-frame,.ad-create-product .ad-product-image-frame{position:relative;display:grid;width:52px;height:52px;overflow:hidden;border-radius:7px;background:#eef1ef}.ad-edit-product img,.ad-create-product img{width:100%;height:100%;object-fit:contain}.ad-edit-product label>span:last-child,.ad-create-product>span:last-child{display:grid;gap:4px;min-width:0}.ad-edit-product b,.ad-create-product b{overflow:hidden;color:#17211e;text-overflow:ellipsis;white-space:nowrap}.ad-edit-product small,.ad-create-product small{color:#65716d}.ad-edit-product em,.ad-create-product em{color:#08715a;font-size:11px;font-style:normal}.ad-edit-product>div{display:flex;gap:7px}.ad-edit-product button{min-height:32px;border:1px solid #16836c;border-radius:7px;background:#fff;color:#08705b;padding:0 10px;font-weight:800;cursor:pointer}.ad-edit-product button:first-child{border-color:#d56b62;color:#ae352c}.ad-edit-summary{align-content:start;overflow:auto}.ad-edit-summary>div{display:grid;gap:8px;margin-top:12px}.ad-edit-summary article{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #e4e8e6;padding:9px 0}.ad-edit-impact{margin-top:20px!important;border-radius:9px;background:#f0f6f3;padding:12px;color:#40514b}.ad-edit-impact p{margin:6px 0 0;line-height:1.6}.ad-edit-status{margin:0 14px 10px;border-left:4px solid #0a8068;border-radius:8px;background:#edf7f3;padding:10px 12px}.ad-edit-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid #dce2df;background:#fff;padding:12px 18px}.ad-edit-actions button{min-height:40px;border:1px solid #17846e;border-radius:8px;background:#fff;color:#086e5a;padding:0 15px;font-weight:900;cursor:pointer}.ad-edit-actions button.danger{border-color:#bf493e;background:#b93b32;color:#fff}.ad-edit-actions .portal-primary-button{background:#087f69;color:#fff}

/* 正式创建窗口与竖向商品清单 */
.ad-create-dialog{width:min(1380px,calc(100vw - 34px));height:min(870px,calc(100vh - 34px));color:#17211e}.ad-create-dialog[open]{grid-template-rows:auto auto minmax(0,1fr) auto}.ad-create-dialog-heading{padding:18px 22px;background:#fff}.ad-create-steps{display:flex;align-items:center;justify-content:center;gap:0;margin:0;border-bottom:1px solid #e0e5e2;background:#fff;padding:12px 22px;list-style:none}.ad-create-steps li{display:flex;align-items:center;gap:8px;min-width:180px;color:#7a8480;font-size:13px;font-weight:800}.ad-create-steps li:not(:last-child)::after{content:"";width:70px;height:1px;margin-left:14px;background:#d5ddda}.ad-create-steps b{display:grid;place-items:center;width:27px;height:27px;border:1px solid #d3dcd8;border-radius:50%;background:#fff;color:#68756f}.ad-create-steps li.active{color:#17211e}.ad-create-steps li.active b{border-color:#087f69;background:#087f69;color:#fff}.ad-create-dialog-body{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden;padding:14px 18px}.ad-create-fields{grid-template-columns:minmax(210px,1fr) auto minmax(230px,1fr) minmax(160px,.55fr) minmax(170px,.55fr);align-items:end}.ad-create-promotion{grid-column:1/-1}.ad-create-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;min-height:0}.ad-create-products{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}.ad-create-products>div:first-child{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.ad-create-select-all{display:flex!important;align-items:center;gap:7px;white-space:nowrap}.ad-create-select-all input{width:auto!important;min-height:0!important}.ad-create-product-list{max-height:none;min-height:0;overflow:auto}.ad-create-product{grid-template-columns:auto 52px minmax(0,1fr);min-height:68px;padding:8px}.ad-product-image-placeholder{display:none!important}.ad-product-image-frame:not(.has-image) .ad-product-image-placeholder{display:grid!important;place-items:center;width:100%;height:100%;color:#86908c;font-size:9px}.ad-create-summary{overflow:auto;border:1px solid #d4e2dd;border-radius:11px;background:#fff;padding:15px}.ad-create-summary h3{margin:0 0 12px;color:#121d19}.ad-create-summary dl{display:grid;gap:0;margin:0}.ad-create-summary dl>div{display:grid;gap:4px;border-bottom:1px solid #e5e9e7;padding:9px 0}.ad-create-summary dt{color:#6d7874;font-size:11px}.ad-create-summary dd{margin:0;color:#17211e;font-weight:800;overflow-wrap:anywhere}

@media(max-width:1050px){.zhanfu-board-filters{grid-template-columns:1fr 1fr}.zhanfu-board-campaign-panel{grid-template-columns:1fr}.ad-edit-body{grid-template-columns:1fr}.ad-edit-summary{display:none}.ad-create-fields{grid-template-columns:1fr 1fr}.ad-create-fields>button{align-self:end}.ad-create-layout{grid-template-columns:1fr}.ad-create-summary{display:none}}
@media(max-width:680px){.zhanfu-board-shell{padding:18px 10px 36px}.zhanfu-board-heading{align-items:flex-start;flex-direction:column}.zhanfu-board-filters,.zhanfu-board-summary{grid-template-columns:1fr 1fr}.zhanfu-board-campaign-panel form{grid-template-columns:1fr}.ad-edit-dialog,.ad-create-dialog{width:calc(100vw - 12px);height:calc(100vh - 12px)}.ad-edit-value-head,.ad-edit-values label{grid-template-columns:1fr}.ad-edit-value-head{display:none}.ad-edit-product-tools{grid-template-columns:1fr}.ad-edit-product{grid-template-columns:1fr}.ad-edit-product>div{padding-left:31px}.ad-create-steps{justify-content:flex-start;overflow:auto}.ad-create-steps li{min-width:135px}.ad-create-steps li:not(:last-child)::after{width:24px}.ad-create-fields,.ad-create-products>div:first-child{grid-template-columns:1fr}.ad-create-layout{min-height:420px}.zhanfu-board-summary article{min-height:76px}}

/* 3.33.29 店铺管理 */
[data-portal-page="zhanfu-board"],
[data-portal-page="zhanfu-board"] input,
[data-portal-page="zhanfu-board"] select,
[data-portal-page="zhanfu-board"] button{color:#111}
.zhanfu-board-heading{align-items:center}.zhanfu-board-heading h1{margin:0;color:#050505}
.zhanfu-board-heading-actions button,.zhanfu-board-row-actions button,.zhanfu-board-loop button,.zhanfu-board-plan-toolbar button{border:1px solid #07816b;border-radius:8px;background:#fff;padding:0 13px;color:#076c5a;font-weight:900;cursor:pointer}
.zhanfu-board-heading-actions button{min-height:40px}.zhanfu-board-heading-actions button:hover,.zhanfu-board-row-actions button:hover,.zhanfu-board-plan-toolbar button:hover{background:#edf8f4}
.zhanfu-board-search{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;align-items:end;border:1px solid #d6dcda;border-radius:12px;background:#fff;padding:12px 14px}.zhanfu-board-search label{display:grid;gap:5px;color:#111;font-size:12px;font-weight:900}.zhanfu-board-search input{min-height:40px;border:1px solid #bdc9c5;border-radius:8px;background:#fff;padding:0 12px}.zhanfu-board-search button{min-height:40px;border:1px solid #087e69;border-radius:8px;background:#087e69;padding:0 24px;color:#fff;font-weight:900;cursor:pointer}.zhanfu-board-search b{align-self:center;color:#111;font-size:12px;white-space:nowrap}.zhanfu-board-search b[data-tone="success"]{color:#08725e}.zhanfu-board-search b[data-tone="error"]{color:#b13228}
.zhanfu-board-filters{grid-template-columns:1fr 1fr 1fr}.zhanfu-board-filters label{color:#111}.zhanfu-board-connector{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}.zhanfu-board-connector>span{grid-column:1/-1;font-size:12px;font-weight:900}.zhanfu-board-connector strong{font-size:14px}.zhanfu-board-connector em{border-radius:999px;background:#eef1f0;padding:5px 10px;color:#555;font-size:11px;font-style:normal;font-weight:900}.zhanfu-board-connector em[data-state="online"]{background:#ddf5ea;color:#087158}.zhanfu-board-connector em[data-state="offline"]{color:#666}
.zhanfu-board-summary span,.zhanfu-board-summary strong,.zhanfu-board-table-wrap th,.zhanfu-board-table-wrap td,.zhanfu-board-table-wrap td small{color:#111}.zhanfu-board-table-wrap td small{opacity:.72}.zhanfu-board-table-wrap th{background:#f2f4f3}
.zhanfu-board-loop{display:grid;gap:12px;border:1px solid #d5ddda;border-radius:14px;background:#fff;padding:16px 18px}.zhanfu-board-loop-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.zhanfu-board-loop-heading h2{margin:0;color:#111;font-size:18px}.zhanfu-board-loop-heading p{margin:5px 0 0;color:#222;font-size:12px}.zhanfu-board-loop-heading>div:last-child{display:flex;gap:8px}.zhanfu-board-loop-heading .portal-primary-button{min-height:38px;background:#087f69;color:#fff}.zhanfu-board-loop-heading .danger{min-height:38px;border-color:#ba4037;background:#ba4037;color:#fff}.zhanfu-board-loop-progress{display:grid;grid-template-columns:1fr 48px;gap:12px;align-items:center}.zhanfu-board-loop-progress>span{height:10px;overflow:hidden;border-radius:99px;background:#e4e8e6}.zhanfu-board-loop-progress i{display:block;width:0;height:100%;border-radius:99px;background:#0c9578;transition:width .25s}.zhanfu-board-loop-progress b{text-align:right}.zhanfu-board-loop dl{display:grid;grid-template-columns:1.5fr 1.5fr repeat(3,1fr);gap:8px;margin:0}.zhanfu-board-loop dl>div{border-radius:8px;background:#f5f7f6;padding:9px 11px}.zhanfu-board-loop dt{color:#333;font-size:10px}.zhanfu-board-loop dd{overflow:hidden;margin:4px 0 0;color:#111;font-size:12px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.zhanfu-board-realtime{border-left:4px solid #0c8069;border-radius:7px;background:#edf8f4;padding:9px 11px;color:#111;font-size:12px}.zhanfu-board-realtime[data-tone="success"]{background:#dff7ed;color:#075f4d}.zhanfu-board-realtime[data-tone="error"]{border-color:#b43b31;background:#ffebe8;color:#a42e26}
.zhanfu-board-table-card .zhanfu-board-table-wrap table{width:1530px;min-width:1530px}.zhanfu-board-table-card th:nth-child(1){width:125px}.zhanfu-board-table-card th:nth-child(2){width:255px}.zhanfu-board-table-card th:nth-child(3){width:125px}.zhanfu-board-table-card th:nth-child(4){width:160px}.zhanfu-board-table-card th:nth-child(5){width:95px}.zhanfu-board-table-card th:nth-child(6),.zhanfu-board-table-card th:nth-child(7){width:130px}.zhanfu-board-table-card th:nth-child(8){width:75px}.zhanfu-board-table-card th:nth-child(9){width:160px}.zhanfu-board-table-card th:nth-child(10){width:275px}.zhanfu-board-row-actions button{min-height:31px}
.zhanfu-board-detail-dialog{width:min(920px,calc(100vw - 28px));height:min(780px,calc(100vh - 28px));max-width:none;max-height:none;overflow:hidden;border:0;border-radius:16px;background:#f7f8f6;padding:0;color:#111;box-shadow:0 30px 100px rgba(8,28,23,.35)}.zhanfu-board-detail-dialog::backdrop{background:rgba(12,31,26,.54)}.zhanfu-board-detail-dialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr)}.zhanfu-board-detail-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #dde3e0;background:#fff;padding:17px 20px}.zhanfu-board-detail-dialog h2{margin:0;color:#050505}.zhanfu-board-detail-dialog header p{margin:5px 0 0;color:#222;font-size:12px}.zhanfu-board-detail-dialog header>button{width:36px;height:36px;border:1px solid #cbd5d1;border-radius:8px;background:#fff;color:#111;font-size:21px;cursor:pointer}.zhanfu-board-plan-toolbar{display:flex;justify-content:flex-end;gap:8px;border-bottom:1px solid #dde3e0;background:#fff;padding:10px 20px}.zhanfu-board-plan-toolbar button{min-height:36px}.zhanfu-board-plan-toolbar .portal-primary-button{background:#087f69;color:#fff}
.zhanfu-board-product-list,.zhanfu-board-plan-list{display:grid;align-content:start;gap:8px;min-height:0;overflow:auto;padding:14px}.zhanfu-board-product-list>p,.zhanfu-board-plan-list>p{margin:30px;text-align:center}.zhanfu-board-product-list .is-error,.zhanfu-board-plan-list .is-error{color:#a83229}.zhanfu-board-product{display:grid;grid-template-columns:18px 66px minmax(0,1fr);gap:12px;align-items:center;border:1px solid #dce2df;border-radius:10px;background:#fff;padding:9px 11px}.zhanfu-board-product-check{width:14px;height:14px;border:1px solid #9eaaa5;border-radius:3px;background:#fff}.zhanfu-board-product-image{display:grid;place-items:center;width:66px;height:82px;overflow:hidden;border-radius:7px;background:#eff2f1;color:#777;font-size:10px}.zhanfu-board-product-image img{width:100%;height:100%;object-fit:contain}.zhanfu-board-product div{display:grid;gap:5px;min-width:0}.zhanfu-board-product strong{color:#111}.zhanfu-board-product small,.zhanfu-board-product p{margin:0;color:#333;font-size:11px}.zhanfu-board-product small{overflow-wrap:anywhere}
.zhanfu-board-plan{display:grid;grid-template-columns:minmax(220px,1fr) auto 2fr auto;gap:14px;align-items:center;width:100%;border:1px solid #dce2df;border-radius:10px;background:#fff;padding:12px;text-align:left;cursor:pointer}.zhanfu-board-plan:hover{border-color:#26957d;background:#f2fbf7}.zhanfu-board-plan>span:first-child{display:grid;gap:5px;min-width:0}.zhanfu-board-plan strong{overflow:hidden;color:#111;text-overflow:ellipsis;white-space:nowrap}.zhanfu-board-plan small{color:#333;overflow-wrap:anywhere}.zhanfu-board-plan>span.running,.zhanfu-board-plan>span.paused{border-radius:99px;padding:5px 9px;font-size:11px;font-weight:900}.zhanfu-board-plan>span.running{background:#def6eb;color:#087158}.zhanfu-board-plan>span.paused{background:#eef0ef;color:#555}.zhanfu-board-plan dl{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0}.zhanfu-board-plan dl>div{display:grid;gap:3px}.zhanfu-board-plan dt{color:#555;font-size:10px}.zhanfu-board-plan dd{margin:0;color:#111;font-size:11px;font-weight:800}.zhanfu-board-plan>b{color:#08715d;font-size:12px;white-space:nowrap}
@media(max-width:800px){.zhanfu-board-search{grid-template-columns:1fr auto}.zhanfu-board-search b{grid-column:1/-1}.zhanfu-board-filters{grid-template-columns:1fr}.zhanfu-board-loop dl{grid-template-columns:1fr 1fr}.zhanfu-board-plan{grid-template-columns:1fr auto}.zhanfu-board-plan dl{grid-column:1/-1}.zhanfu-board-plan>b{display:none}}

/* 3.33.30 正式页面层级、紧凑店铺筛选与战斧广告看板 */
.portal-main [data-portal-page],.portal-main [data-portal-page] input,.portal-main [data-portal-page] select,.portal-main [data-portal-page] button{color:#111}
#zhanfuBoardHome{display:grid;gap:16px}
#zhanfuBoardHome[hidden],.zhanfu-board-route-page[hidden]{display:none!important}
.zhanfu-board-filters{grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) minmax(520px,2.5fr);align-items:stretch}
.zhanfu-board-filters>.zhanfu-board-summary{grid-template-columns:repeat(4,minmax(105px,1fr));gap:8px}
.zhanfu-board-filters>.zhanfu-board-summary article{min-height:62px;border-radius:9px;padding:9px 12px}
.zhanfu-board-filters>.zhanfu-board-summary article span{font-size:11px}.zhanfu-board-filters>.zhanfu-board-summary article strong{font-size:21px}
.zhanfu-board-row-actions a,.zhanfu-ad-product-link{display:inline-flex;align-items:center;justify-content:center;min-height:31px;border:1px solid #07816b;border-radius:8px;background:#fff;padding:0 9px;color:#076c5a;font-size:11px;font-weight:900;text-decoration:none}
.zhanfu-board-row-actions a:hover,.zhanfu-ad-product-link:hover{background:#edf8f4}
.zhanfu-board-route-page:not([hidden]){position:static;inset:auto;display:grid;width:100%;max-width:none;height:auto;min-height:calc(100vh - 150px);max-height:none;margin:0;overflow:visible;border:1px solid #d9dfdb;border-radius:14px;background:#f7f8f6;padding:0;color:#111;box-shadow:none}
.zhanfu-board-detail-dialog.zhanfu-board-route-page:not([hidden]){grid-template-rows:auto auto minmax(520px,1fr)}
.ad-edit-dialog.zhanfu-board-route-page:not([hidden]){grid-template-rows:auto minmax(650px,1fr) auto auto}
.ad-create-dialog.zhanfu-board-route-page:not([hidden]){grid-template-rows:auto auto minmax(680px,1fr) auto}
.zhanfu-board-route-page .zhanfu-board-back{display:inline-flex!important;align-items:center!important;width:auto!important;height:34px!important;margin:0 0 10px;border:1px solid #b9cbc5!important;border-radius:8px;background:#fff!important;padding:0 12px!important;color:#076c5a!important;font-size:12px!important;font-weight:900;cursor:pointer}
.zhanfu-board-route-page .zhanfu-board-product-list,.zhanfu-board-route-page .zhanfu-board-plan-list{overflow:visible}
.zhanfu-board-route-page .ad-edit-body,.zhanfu-board-route-page .ad-create-dialog-body{overflow:visible}
.zhanfu-board-route-page .ad-edit-product-list,.zhanfu-board-route-page .ad-create-product-list{max-height:520px;overflow:auto}
.zhanfu-board-plan{color:#111;text-decoration:none}
.zhanfu-ad-toolbar{grid-template-columns:minmax(150px,.7fr) minmax(180px,.9fr) minmax(150px,.65fr) minmax(320px,1.6fr) auto}.zhanfu-ad-toolbar>label{display:grid;gap:6px;color:#111;font-size:12px;font-weight:800}.zhanfu-ad-toolbar select{min-height:40px;border:1px solid #cbd6d2;border-radius:8px;background:#fff;padding:0 10px}
#zhanfuAdMonitorSummaryGrid.ad-monitor-grid{grid-template-columns:repeat(8,minmax(0,1fr))}
#zhanfuAdMonitorCampaignRows td small,#zhanfuAdMonitorAlertRows td small{display:block;margin-top:4px;color:#66756f;font-size:10px}.zhanfu-ad-product-link+small{max-width:160px}
@media(max-width:1250px){.zhanfu-board-filters{grid-template-columns:1fr 1fr}.zhanfu-board-filters>.zhanfu-board-summary{grid-column:1/-1}.zhanfu-ad-toolbar{grid-template-columns:1fr 1fr 1fr}.zhanfu-ad-toolbar .ad-monitor-search{grid-column:1/3}#zhanfuAdMonitorSummaryGrid.ad-monitor-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.zhanfu-board-filters{grid-template-columns:1fr}.zhanfu-board-filters>.zhanfu-board-summary{grid-column:auto;grid-template-columns:1fr 1fr}.zhanfu-ad-toolbar{grid-template-columns:1fr}.zhanfu-ad-toolbar .ad-monitor-search{grid-column:auto}#zhanfuAdMonitorSummaryGrid.ad-monitor-grid{grid-template-columns:1fr 1fr}.ad-edit-dialog.zhanfu-board-route-page:not([hidden]),.ad-create-dialog.zhanfu-board-route-page:not([hidden]){width:100%;height:auto}.zhanfu-board-route-page .ad-edit-body{grid-template-columns:1fr}}

/* 3.33.31 连接器层级、全宽页面与柔和文字层级 */
.portal-view[data-portal-page="zhanfu-board"],.portal-view[data-portal-page="zhanfu-ad-monitor"]{width:100%;max-width:none;margin:0}
.portal-shell:has(.portal-view[data-portal-page="zhanfu-board"]:not([hidden])) .portal-main,.portal-shell:has(.portal-view[data-portal-page="zhanfu-ad-monitor"]:not([hidden])) .portal-main{padding:16px}
.zhanfu-board-shell{width:100%;max-width:none;padding:12px 14px 36px}
#zhanfuBoardApp:has(.zhanfu-board-route-page:not([hidden])){padding:0}
.zhanfu-board-route-page:not([hidden]){min-height:calc(100vh - 104px);border-radius:0}
.zhanfu-board-route-page .zhanfu-board-back{display:none!important}
.zhanfu-connector-roster{display:grid;gap:12px;border:1px solid #d5dfdb;border-radius:13px;background:#fff;padding:14px 16px}
.zhanfu-connector-roster[hidden]{display:none!important}.zhanfu-connector-roster h2{margin:0;color:#1b4138;font-size:18px}.zhanfu-connector-roster p{margin:4px 0 0;color:#637870;font-size:12px}
.zhanfu-connector-rename{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:9px;align-items:end;border-radius:9px;background:#f0f7f4;padding:10px}.zhanfu-connector-rename[hidden]{display:none!important}.zhanfu-connector-rename label{display:grid;gap:5px;color:#38574f;font-size:11px;font-weight:800}.zhanfu-connector-rename input{min-height:36px;border:1px solid #bfcfc9;border-radius:7px;background:#fff;padding:0 10px}.zhanfu-connector-rename button{min-height:36px;border:1px solid #17826c;border-radius:7px;background:#fff;padding:0 13px;color:#08705c;font-weight:800}
.zhanfu-connector-roster table{min-width:840px}.zhanfu-connector-roster td strong,.zhanfu-connector-roster td small{display:block}.zhanfu-connector-level{display:inline-flex;border-radius:99px;background:#e7f4ef;padding:5px 9px;color:#176b58;font-size:11px;font-weight:800}.zhanfu-connector-level.level-1{background:#d9f2e8;color:#06654f}.zhanfu-connector-level.level-2{background:#edf2f0;color:#49645c}
#zhanfuAdMonitorSummaryGrid.ad-monitor-grid{gap:8px}
#zhanfuAdMonitorSummaryGrid.ad-monitor-grid article{min-height:88px;align-content:center;gap:4px;border-radius:10px;padding:11px 13px}
#zhanfuAdMonitorSummaryGrid.ad-monitor-grid strong{font-size:18px;line-height:1.18}#zhanfuAdMonitorSummaryGrid.ad-monitor-grid span,#zhanfuAdMonitorSummaryGrid.ad-monitor-grid small{font-size:10px;line-height:1.25}
[data-portal-page="zhanfu-board"],[data-portal-page="zhanfu-ad-monitor"]{color:#29463f!important}
[data-portal-page="zhanfu-board"] input,[data-portal-page="zhanfu-board"] select,[data-portal-page="zhanfu-board"] button,[data-portal-page="zhanfu-ad-monitor"] input,[data-portal-page="zhanfu-ad-monitor"] select,[data-portal-page="zhanfu-ad-monitor"] button{color:#29463f}
[data-portal-page="zhanfu-board"] h1,[data-portal-page="zhanfu-board"] h2,[data-portal-page="zhanfu-board"] h3,[data-portal-page="zhanfu-board"] strong,[data-portal-page="zhanfu-ad-monitor"] h1,[data-portal-page="zhanfu-ad-monitor"] h2,[data-portal-page="zhanfu-ad-monitor"] h3,[data-portal-page="zhanfu-ad-monitor"] strong{color:#183d35}
[data-portal-page="zhanfu-board"] small,[data-portal-page="zhanfu-board"] p,[data-portal-page="zhanfu-board"] dt,[data-portal-page="zhanfu-ad-monitor"] small,[data-portal-page="zhanfu-ad-monitor"] p,[data-portal-page="zhanfu-ad-monitor"] dt{color:#61766f}
@media(max-width:760px){.portal-shell:has(.portal-view[data-portal-page="zhanfu-board"]:not([hidden])) .portal-main,.portal-shell:has(.portal-view[data-portal-page="zhanfu-ad-monitor"]:not([hidden])) .portal-main{padding:6px}.zhanfu-board-shell{padding:8px 6px 28px}.zhanfu-connector-rename{grid-template-columns:1fr}}

/* 3.33.32 时间筛选、紧凑连接器、图片大图与正文颜色 */
.portal-main .portal-view{color:#111}
.portal-main .portal-view :where(h1,h2,h3,h4,h5,h6,table th,table td,label,legend,output,input,select,textarea){color:#111!important}
[data-portal-page="zhanfu-board"],[data-portal-page="zhanfu-ad-monitor"]{color:#111!important}
[data-portal-page="zhanfu-board"] h1,[data-portal-page="zhanfu-board"] h2,[data-portal-page="zhanfu-board"] h3,[data-portal-page="zhanfu-board"] strong,[data-portal-page="zhanfu-ad-monitor"] h1,[data-portal-page="zhanfu-ad-monitor"] h2,[data-portal-page="zhanfu-ad-monitor"] h3,[data-portal-page="zhanfu-ad-monitor"] strong{color:#111}
.zhanfu-board-status.online,.ad-status.running,.zhanfu-connector-level,.portal-primary-button{color:#08705b!important}
.portal-primary-button{color:#fff!important}
.zhanfu-connector-roster{gap:10px;padding:12px 16px}
.zhanfu-connector-roster-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:38px}
.zhanfu-connector-roster-heading>div{display:flex;align-items:baseline;gap:12px;min-width:0}
.zhanfu-connector-roster-heading h2,.zhanfu-connector-roster-heading p{white-space:nowrap}
.zhanfu-connector-roster-heading p{overflow:hidden;margin:0;text-overflow:ellipsis}
.zhanfu-connector-roster-heading>button{flex:0 0 auto;min-height:32px;border:1px solid #16836c;border-radius:7px;background:#fff;padding:0 13px;color:#08705b!important;font-weight:800}
.zhanfu-connector-roster.is-collapsed{padding-top:9px;padding-bottom:9px}
.zhanfu-connector-roster-table{max-height:609px;overflow:auto}
.zhanfu-connector-roster-table thead th{position:sticky;top:0;z-index:2}
.zhanfu-connector-roster-table table{width:1080px;min-width:1080px;table-layout:fixed}
.zhanfu-connector-roster-table th,.zhanfu-connector-roster-table td{height:38px;padding:7px 10px;white-space:nowrap}
.zhanfu-connector-roster-table tbody tr,.zhanfu-connector-roster-table tbody td{height:57px;max-height:57px}
.zhanfu-connector-roster-table th:nth-child(1){width:185px}.zhanfu-connector-roster-table th:nth-child(2){width:145px}.zhanfu-connector-roster-table th:nth-child(3){width:265px}.zhanfu-connector-roster-table th:nth-child(4){width:120px}.zhanfu-connector-roster-table th:nth-child(5){width:220px}.zhanfu-connector-roster-table th:nth-child(6){width:145px}
.zhanfu-connector-roster-table td strong,.zhanfu-connector-roster-table td small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zhanfu-ad-toolbar{grid-template-columns:minmax(145px,.68fr) minmax(145px,.68fr) minmax(175px,.82fr) minmax(145px,.65fr) minmax(300px,1.6fr) auto}
.zhanfu-ad-toolbar .ad-date-range-field{min-width:0}
.zhanfu-ad-toolbar .ad-date-range-field>button{min-height:40px}
.zhanfu-ad-toolbar input[type="date"]{min-height:40px;border:1px solid #cbd6d2;border-radius:8px;background:#fff;padding:0 10px}
.zhanfu-ad-alert-table{width:100%;min-width:1180px;table-layout:fixed}
.zhanfu-ad-alert-table th,.zhanfu-ad-alert-table td{padding:10px 12px;vertical-align:middle;line-height:1.35}
.zhanfu-ad-alert-table th:nth-child(1){width:300px}.zhanfu-ad-alert-table th:nth-child(2){width:125px}.zhanfu-ad-alert-table th:nth-child(3){width:90px}.zhanfu-ad-alert-table th:nth-child(4){width:105px}.zhanfu-ad-alert-table th:nth-child(5){width:95px}.zhanfu-ad-alert-table th:nth-child(6){width:115px}.zhanfu-ad-alert-table th:nth-child(7){width:105px}.zhanfu-ad-alert-table th:nth-child(8){width:auto}
.zhanfu-ad-alert-table td:first-child strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.35}
.zhanfu-ad-alert-table td:first-child small,.zhanfu-ad-alert-table td:nth-child(2) small{display:block;margin-top:4px;color:#66756f!important;font-size:10px}
.zhanfu-ad-alert-reason{display:block;min-width:210px;line-height:1.5}
.ad-create-locked-store{display:grid;align-content:end;gap:6px;min-height:62px}
.ad-create-locked-store>span{font-size:12px;font-weight:800}.ad-create-locked-store>strong{display:flex;align-items:center;min-height:40px;border:1px solid #c4d7d0;border-radius:8px;background:#f1f8f5;padding:0 11px;color:#111}.ad-create-locked-store>small{color:#66756f;font-size:10px}
.product-image-eye{position:absolute!important;z-index:3!important;right:4px!important;bottom:4px!important;display:grid!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;place-items:center;border:1px solid rgba(255,255,255,.88)!important;border-radius:50%!important;background:rgba(4,41,33,.82)!important;padding:0!important;color:#fff!important;font-size:12px!important;line-height:1!important;cursor:zoom-in!important;box-shadow:0 1px 5px rgba(0,0,0,.2)}
.product-image-eye:hover{background:#087e68!important}
.zhanfu-board-product-image{position:relative}
@media(max-width:1250px){.zhanfu-ad-toolbar{grid-template-columns:1fr 1fr 1fr}.zhanfu-ad-toolbar .ad-monitor-search{grid-column:1/3}}
@media(max-width:760px){.zhanfu-connector-roster-heading,.zhanfu-connector-roster-heading>div{align-items:flex-start;flex-direction:column}.zhanfu-connector-roster-heading h2,.zhanfu-connector-roster-heading p{white-space:normal}.zhanfu-ad-toolbar{grid-template-columns:1fr}.zhanfu-ad-toolbar .ad-monitor-search{grid-column:auto}}

/* 3.33.36 战斧任务紧凑进度、计划筛选与商品视频选择 */
.zhanfu-board-plan-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:8px}
.zhanfu-board-plan-toolbar>label{display:grid;gap:4px;color:#50635d;font-size:11px;font-weight:800}
.zhanfu-board-plan-toolbar select{min-width:112px;min-height:34px;border:1px solid #c7d4cf;border-radius:7px;background:#fff;padding:0 9px}
.compact-task-progress{display:grid;grid-template-columns:96px 36px minmax(110px,220px);align-items:center;gap:7px;min-height:30px;color:#445b54;font-size:10px}
.compact-task-progress[hidden]{display:none!important}
.compact-task-progress>span{overflow:hidden;height:5px;border-radius:99px;background:#dce7e3}
.compact-task-progress>span>i{display:block;width:0;height:100%;border-radius:inherit;background:#12836d;transition:width .2s ease}
.compact-task-progress>b{color:#146b59;font-size:10px}.compact-task-progress>em{overflow:hidden;color:#65766f;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.compact-task-progress[data-tone="error"]>span>i{background:#ba493e}.compact-task-progress[data-tone="error"]>b,.compact-task-progress[data-tone="error"]>em{color:#9b392f}
.compact-task-progress[data-tone="success"]>span>i{background:#07856c}.compact-task-progress[data-tone="success"]>em{color:#08705b}
.ad-edit-product-tools{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.ad-edit-asset-panel{display:grid;gap:10px;margin-top:10px;border:1px solid #bfd8cf;border-radius:10px;background:#f4faf7;padding:12px}
.ad-edit-asset-panel[hidden]{display:none!important}.ad-edit-asset-panel h3,.ad-edit-asset-panel p{margin:0}.ad-edit-asset-panel>div:last-child{display:flex;justify-content:flex-end;gap:8px}
.ad-edit-asset-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:8px;max-height:360px;overflow:auto}
.ad-edit-asset-item{display:grid;grid-template-columns:auto 52px 1fr;align-items:center;gap:9px;border:1px solid #d6e2de;border-radius:8px;background:#fff;padding:8px}
.ad-edit-asset-item .ad-product-image-frame{width:52px;height:52px}.ad-edit-asset-item b,.ad-edit-asset-item small,.ad-edit-asset-item em{display:block}.ad-edit-asset-item small,.ad-edit-asset-item em{margin-top:3px;color:#62736d;font-size:10px;font-style:normal}
.ad-edit-asset-preview{border-radius:8px;background:#e7f4ef;padding:9px 11px;color:#29483f;font-size:11px}.ad-edit-asset-preview strong{display:block;margin-bottom:4px}
.ad-create-promotion{grid-template-columns:max-content max-content minmax(160px,1fr);max-width:520px}.ad-create-promotion button{width:auto;min-width:82px;padding:0 10px}
@media(max-width:760px){.compact-task-progress{grid-template-columns:80px 34px minmax(90px,1fr)}.ad-edit-asset-list{grid-template-columns:1fr}}

/* 3.33.37 精确周期计划与单品数据 */
.route-page-close{flex:0 0 auto;display:grid!important;width:38px!important;height:38px!important;place-items:center;border:1px solid #cbd7d2!important;border-radius:50%!important;background:#fff!important;padding:0!important;color:#193e35!important;font-size:22px!important;line-height:1!important;cursor:pointer}
.ad-edit-body{grid-template-columns:minmax(0,1fr)}
.ad-edit-main{grid-template-rows:auto auto;width:100%}
.ad-edit-products{display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);width:100%;min-width:0}
.ad-edit-product-tools label{display:grid;gap:4px}.ad-edit-product-tools input[type="date"]{min-width:145px}
.ad-edit-product-summary{margin:0 0 10px;border:1px solid #dce8e3;border-radius:10px;padding:8px;background:#f8fbf9}
.ad-edit-product-detail{margin:0 0 10px}
.ad-edit-product-table{width:100%;min-width:1320px;table-layout:fixed}
.ad-edit-product-table th,.ad-edit-product-table td{padding:9px 10px;vertical-align:middle;line-height:1.35}
.ad-edit-product-table th:first-child{width:250px}.ad-edit-product-table th:nth-child(2){width:90px}.ad-edit-product-table th:nth-child(n+3):nth-child(-n+8){width:115px}.ad-edit-product-table th:last-child{width:205px}
.ad-edit-product-table .ad-product-cell{display:grid;grid-template-columns:52px minmax(0,1fr);gap:9px;align-items:center}.ad-edit-product-table .ad-product-cell>span:last-child{display:grid;gap:4px;min-width:0}.ad-edit-product-table .ad-product-cell strong,.ad-edit-product-table .ad-product-cell small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-edit-product-table .ad-product-image-frame{position:relative;display:grid;width:52px;height:52px;overflow:hidden;place-items:center;border-radius:7px;background:#eef1ef}.ad-edit-product-table .ad-product-image-frame img{width:100%;height:100%;object-fit:contain}.ad-edit-product-table .ad-product-image-placeholder{font-size:9px;color:#74827d}.ad-edit-product-table .has-image .ad-product-image-placeholder{display:none}
.ad-edit-product-table tr.is-selected td{background:#fff3f1}.ad-edit-product-table .ad-product-actions{display:flex;gap:6px}.ad-edit-product-table .ad-product-actions button{min-height:32px;border:1px solid #16836c;border-radius:7px;background:#fff;padding:0 9px;color:#08705b;font-size:11px;font-weight:800;white-space:nowrap}.ad-edit-product-table .ad-product-actions .ad-product-remove-button{border-color:#cf6d64;color:#a5372f}
.zhanfu-plan-data-table{width:100%;min-width:1540px;table-layout:auto}.zhanfu-plan-data-table th,.zhanfu-plan-data-table td{padding:9px 10px;vertical-align:middle;white-space:nowrap}.zhanfu-plan-data-table td:first-child strong,.zhanfu-plan-data-table td:first-child small{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis}.zhanfu-plan-data-table td:first-child small{margin-top:4px;font-size:10px}
.zhanfu-plan-actions{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:7px;align-items:end}.zhanfu-plan-period{display:grid;grid-template-columns:1fr 1fr;gap:6px}.zhanfu-plan-period label{display:grid;gap:3px;color:#5c7069!important;font-size:9px;font-weight:800}.zhanfu-plan-period input{width:132px;min-height:32px;border:1px solid #c8d5d0;border-radius:7px;background:#fff;padding:0 7px;font-size:11px}.zhanfu-plan-actions button,.zhanfu-plan-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border:1px solid #16836c;border-radius:7px;background:#fff;padding:0 9px;color:#08705b!important;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}
.zhanfu-period-compare{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.zhanfu-period-compare>span{border:1px solid #d8e2de;border-radius:8px;background:#fff;padding:7px 10px}.zhanfu-period-compare strong[data-tone="success"]{color:#08705b!important}.zhanfu-period-compare strong[data-tone="waiting"]{color:#8a6414!important}.zhanfu-period-compare strong[data-tone="error"]{color:#b23d34!important}
@media(max-width:760px){.ad-edit-product-summary{grid-template-columns:1fr 1fr}.zhanfu-plan-actions{grid-template-columns:1fr}.zhanfu-plan-period{grid-template-columns:1fr 1fr}}

/* 3.33.38 可核对的读取记录与失败详情 */
.zhanfu-read-record-panel,.zhanfu-board-records{display:grid;gap:11px;border:1px solid #d7e2de;border-radius:12px;background:#fff;padding:13px 15px}.zhanfu-read-record-panel h2,.zhanfu-board-records h2{margin:2px 0 0;font-size:17px}.zhanfu-read-record-panel>div>span,.zhanfu-board-records>div>span{color:#63766f;font-size:10px;font-weight:800;letter-spacing:.08em}
.zhanfu-read-summary{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:7px}.zhanfu-read-summary article{display:grid;gap:3px;border-radius:8px;background:#f3f8f6;padding:8px 10px}.zhanfu-read-summary span{color:#61756e;font-size:10px}.zhanfu-read-summary strong{font-size:17px}
.zhanfu-read-record-list{display:grid;gap:7px}.zhanfu-read-record-list>p{margin:0;color:#64766f;font-size:11px}.zhanfu-read-detail{margin-top:6px;border:1px solid #dbe5e1;border-radius:8px;background:#fafcfb}.zhanfu-read-detail summary{cursor:pointer;padding:8px 10px;color:#255047;font-size:11px;font-weight:800}.zhanfu-read-detail dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;border-top:1px solid #e0e8e5;background:#e0e8e5}.zhanfu-read-detail dl>div{min-width:0;background:#fff;padding:8px 9px}.zhanfu-read-detail dt{font-size:9px}.zhanfu-read-detail dd{overflow-wrap:anywhere;margin:3px 0 0;color:#172d27;font-size:11px;line-height:1.4}
@media(max-width:900px){.zhanfu-read-summary{grid-template-columns:repeat(3,1fr)}.zhanfu-read-detail dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.zhanfu-read-summary{grid-template-columns:repeat(2,1fr)}.zhanfu-read-detail dl{grid-template-columns:1fr}}
.zhanfu-loop-summary{display:grid!important;grid-template-columns:repeat(6,minmax(82px,1fr))!important;gap:6px!important}.zhanfu-loop-summary>div{border-radius:8px;background:#f3f8f6;padding:7px 9px!important}.zhanfu-loop-summary dt{font-size:9px}.zhanfu-loop-summary dd{margin-top:2px!important;font-size:16px!important}
.zhanfu-loop-connectors{display:grid;gap:7px}.zhanfu-loop-connectors>p,.zhanfu-loop-store-list>p,.zhanfu-loop-history p{margin:0;color:#61756e;font-size:11px}.zhanfu-loop-connector,.zhanfu-loop-history-round{border:1px solid #d8e3df;border-radius:9px;background:#fbfdfc}.zhanfu-loop-connector>summary{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(240px,1.5fr) auto auto;align-items:center;gap:9px;cursor:pointer;padding:9px 11px;font-size:11px}.zhanfu-loop-connector>summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zhanfu-loop-connector>summary b{color:#08705b}.zhanfu-loop-connector>summary time{color:#697a74;font-size:9px}.zhanfu-loop-store-list{display:grid;gap:1px;border-top:1px solid #dfe7e4;background:#dfe7e4}.zhanfu-loop-store-list article{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(180px,1fr) minmax(180px,1fr);gap:9px;background:#fff;padding:8px 11px;font-size:10px}.zhanfu-loop-store-list small{grid-column:1/-1;color:#a13c33}.zhanfu-loop-history{border-top:1px solid #e1e8e5;padding-top:8px}.zhanfu-loop-history>summary,.zhanfu-loop-history-round>summary{cursor:pointer;color:#31564d;font-size:11px;font-weight:800}.zhanfu-loop-history>div{display:grid;gap:6px;margin-top:8px}.zhanfu-loop-history-round{padding:8px 10px}.zhanfu-loop-history-round p{margin-top:6px}
.zhanfu-loop-cooldown-setting{display:inline-flex;align-items:center;gap:6px;color:#50675f;font-size:10px;font-weight:800}.zhanfu-loop-cooldown-setting input{width:78px;min-height:32px;padding:5px 7px}.zhanfu-loop-wide-stat{grid-column:span 3}.zhanfu-loop-wide-stat dd{overflow-wrap:anywhere;font-size:11px!important}.zhanfu-loop-resource{grid-column:1/-1;color:#60766e;font-size:10px}.zhanfu-loop-history-round>small{display:block;margin-top:7px;color:#60766e;font-size:10px}
@media(max-width:900px){.zhanfu-loop-summary{grid-template-columns:repeat(3,1fr)!important}.zhanfu-loop-connector>summary{grid-template-columns:1fr auto}.zhanfu-loop-connector>summary span,.zhanfu-loop-connector>summary time,.zhanfu-loop-resource{grid-column:1/-1}.zhanfu-loop-store-list article{grid-template-columns:1fr}}

/* 战斧读取界面精简：只保留业务进度，技术诊断进入操作记录。 */
.zhanfu-loop-summary-compact{grid-template-columns:repeat(5,minmax(100px,1fr))!important}
.zhanfu-loop-summary-compact>div:nth-child(6),.zhanfu-loop-summary-compact>div:nth-child(7),.zhanfu-loop-summary-compact>div:nth-child(8){grid-column:span 2}
.zhanfu-loop-summary-compact dd{font-size:13px!important}
.zhanfu-loop-summary-compact>div:nth-child(8){grid-column:span 3}
.zhanfu-read-record-details{border-top:1px solid #e1e8e5;padding-top:8px}
.zhanfu-read-record-details>summary{cursor:pointer;color:#31564d;font-size:11px;font-weight:800}
.zhanfu-read-record-details>.zhanfu-read-record-list{margin-top:8px}
.zhanfu-plan-actions{display:flex;justify-content:flex-end;min-width:88px}
.ad-edit-candidate-meta{display:block;margin:-2px 0 8px;color:#62736d;font-size:11px}
@media(max-width:900px){.zhanfu-loop-summary-compact{grid-template-columns:1fr 1fr!important}.zhanfu-loop-summary-compact>div{grid-column:auto!important}}

/* 3.33.49 计划成员完整回读与右侧商品抽屉 */
.ad-edit-plan-product-scroll{height:330px;max-height:330px;overflow:auto;scrollbar-gutter:stable both-edges;border:1px solid #d9e3df;border-radius:9px}
.ad-edit-plan-product-scroll .ad-edit-product-table{margin:0}
.ad-edit-plan-product-scroll .ad-edit-product-table thead{position:sticky;top:0;z-index:4;background:#eef5f2;box-shadow:0 1px 0 #d3dfda}
.ad-edit-asset-backdrop{position:fixed;inset:0;z-index:1198;background:rgba(11,31,26,.48);backdrop-filter:blur(1px)}
.ad-edit-asset-backdrop[hidden]{display:none!important}
.ad-edit-asset-panel{position:fixed;top:0;right:0;z-index:1199;display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:12px;width:min(780px,calc(100vw - 36px));height:100dvh;margin:0;border:0;border-left:1px solid #bfd5cd;border-radius:0;background:#f7faf8;padding:0;box-shadow:-20px 0 60px rgba(8,37,29,.24)}
.ad-edit-asset-panel[hidden]{display:none!important}
.ad-edit-asset-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #d8e3de;background:#fff;padding:16px 18px}
.ad-edit-asset-panel>header span{color:#08725e;font-size:11px;font-weight:900}.ad-edit-asset-panel>header h3{margin:3px 0;font-size:22px}.ad-edit-asset-panel>header p{margin:0;color:#62746d;font-size:11px}
.ad-edit-asset-panel>header>button{display:grid;width:36px;height:36px;min-width:36px;place-items:center;border:1px solid #c8d6d1;border-radius:50%;background:#fff;color:#173c33;font-size:22px;cursor:pointer}
.ad-edit-asset-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:9px;padding:0 18px}.ad-edit-asset-toolbar>label:first-child{display:grid;gap:4px;color:#536860;font-size:10px;font-weight:800}.ad-edit-asset-toolbar input[type="search"]{min-height:36px;border:1px solid #c7d7d1;border-radius:8px;background:#fff;padding:0 10px}.ad-edit-asset-toolbar>label:nth-child(2){display:flex;align-items:center;gap:6px;min-height:36px;color:#31544b;font-size:11px;font-weight:800}.ad-edit-asset-toolbar>strong{min-height:36px;border-radius:8px;background:#e7f4ef;padding:10px 12px;color:#08705b;font-size:11px;white-space:nowrap}
.ad-edit-asset-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:244px;align-content:start;gap:9px;height:min(497px,calc(100dvh - 244px));max-height:none;overflow-y:auto;overscroll-behavior:contain;padding:0 18px 6px;scrollbar-gutter:stable}
.ad-edit-asset-item{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:7px;overflow:hidden;border:1px solid #d4e1dc;border-radius:10px;background:#fff;padding:10px;cursor:pointer}.ad-edit-asset-item:hover{border-color:#58a993;box-shadow:0 4px 14px rgba(14,91,72,.09)}.ad-edit-asset-item[hidden]{display:none!important}
.ad-edit-asset-item>input{position:absolute;top:10px;left:10px;z-index:3;width:17px;height:17px}.ad-edit-asset-item .ad-product-image-frame{align-self:center;width:92px;height:92px}.ad-edit-asset-item>span:last-child{display:grid;gap:3px;min-width:0}.ad-edit-asset-item b{display:-webkit-box;overflow:hidden;min-height:46px;font-size:12px;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:3}.ad-edit-asset-item small,.ad-edit-asset-item em{display:block;overflow:hidden;margin:0;color:#687a74;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.ad-edit-asset-item em{color:#08705b}
.ad-edit-asset-preview{margin:0 18px}.ad-edit-asset-panel>footer{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #d9e3df;background:#fff;padding:12px 18px}.ad-edit-asset-panel>footer button{min-height:38px;border:1px solid #16836c;border-radius:8px;background:#fff;padding:0 14px;color:#08705b;font-weight:800}.ad-edit-asset-panel>footer .portal-primary-button{background:#087f69;color:#fff}
body.ad-asset-drawer-open{overflow:hidden}
.zhanfu-board-route-page .ad-edit-heading{padding:10px 14px}.zhanfu-board-route-page .ad-edit-heading h2{margin:2px 0;font-size:21px}.zhanfu-board-route-page .ad-edit-heading p{font-size:11px}.zhanfu-board-route-page .ad-edit-body{padding:8px 10px}.zhanfu-board-route-page .ad-edit-main{gap:8px}.zhanfu-board-route-page .ad-edit-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:9px 11px}.zhanfu-board-route-page .ad-edit-values .ad-edit-section-title{grid-column:1/-1;margin-bottom:1px}.zhanfu-board-route-page .ad-edit-value-head{display:none}.zhanfu-board-route-page .ad-edit-values label{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0}.zhanfu-board-route-page .ad-edit-values label>span{grid-column:1/-1;font-size:10px}.zhanfu-board-route-page .ad-edit-values input,.zhanfu-board-route-page .ad-edit-values output{min-width:0;min-height:32px;padding:0 8px;font-size:11px}.zhanfu-board-route-page .ad-edit-products{padding:10px 11px}.zhanfu-board-route-page .ad-edit-product-summary{margin-bottom:7px;padding:6px}.zhanfu-board-route-page .ad-edit-product-summary article{padding:6px 8px}.ad-edit-dialog.zhanfu-board-route-page:not([hidden]){grid-template-rows:auto auto auto auto;min-height:calc(100vh - 104px)}
@media(max-width:760px){.ad-edit-asset-panel{width:100vw}.ad-edit-asset-toolbar{grid-template-columns:1fr}.ad-edit-asset-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:230px;height:min(469px,calc(100dvh - 300px))}.zhanfu-board-route-page .ad-edit-values{grid-template-columns:1fr}.zhanfu-board-route-page .ad-edit-values .ad-edit-section-title{grid-column:auto}.ad-edit-plan-product-scroll{height:300px;max-height:300px}}

/* 3.33.50 计划修改页合并布局、单行商品与指标排序 */
.zhanfu-board-open-store-rule{display:grid;align-content:center;gap:6px;border:1px solid #cbd6d2;border-radius:8px;background:#f5faf8;padding:8px 11px}.zhanfu-board-open-store-rule span{color:#111;font-size:12px;font-weight:900}.zhanfu-board-open-store-rule strong{color:#08705b;font-size:12px}
.ad-edit-dialog.zhanfu-board-route-page:not([hidden]){grid-template-rows:auto auto auto;min-height:calc(100vh - 104px)}
.zhanfu-board-route-page .ad-edit-main{grid-template-rows:minmax(0,1fr)}
.ad-edit-product-control-layout{display:grid;grid-template-columns:minmax(680px,1fr) minmax(500px,.82fr);align-items:stretch;gap:10px;margin-bottom:8px}
.ad-edit-product-control-left{display:grid;align-content:start;gap:5px;min-width:0}
.ad-edit-product-control-left .ad-edit-product-tools{margin:0}
.ad-edit-product-control-left .ad-edit-candidate-meta{margin:0}
.ad-edit-compact-editor{position:relative;display:grid;align-content:start;gap:6px;min-width:0;border:1px solid #bdd6cd;border-radius:9px;background:#f3faf7;padding:7px 43px 7px 9px}
.ad-edit-compact-editor>.route-page-close{position:absolute;top:7px;right:7px;width:30px!important;height:30px!important;font-size:18px!important}
.ad-edit-compact-heading{display:flex;align-items:center;gap:8px;min-width:0;padding-right:2px}.ad-edit-compact-heading strong{flex:0 0 auto;color:#0a6f5b;font-size:13px}.ad-edit-compact-heading span{overflow:hidden;color:#566d65;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.ad-edit-compact-fields{display:grid;grid-template-columns:minmax(210px,1.65fr) minmax(125px,1fr) minmax(125px,1fr);gap:6px}
.ad-edit-compact-fields label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 6px;min-width:0;margin:0;color:#29483f;font-size:9px;font-weight:800}
.ad-edit-compact-fields output{overflow:hidden;justify-self:end;max-width:100%;color:#657871;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.ad-edit-compact-fields input{grid-column:1/-1;width:100%;min-width:0;min-height:30px;border:1px solid #c5d6d0;border-radius:7px;background:#fff;padding:0 8px;color:#172d27;font-size:11px;font-weight:700}
.ad-edit-product-table thead button[data-ad-edit-product-sort]{min-height:24px!important;border:0!important;background:transparent!important;padding:0!important;color:#526b63!important;font:inherit;font-weight:800!important;white-space:nowrap;cursor:pointer}
.ad-edit-product-table thead button[data-ad-edit-product-sort]:hover,.ad-edit-product-table thead button[data-ad-edit-product-sort][aria-pressed="true"]{color:#08745c!important}
.ad-edit-asset-list{grid-template-columns:1fr;grid-auto-rows:minmax(76px,auto);align-content:start;height:min(596px,calc(100dvh - 244px));max-height:none;overflow-y:auto}
.ad-edit-asset-item{display:grid;grid-template-columns:20px 62px minmax(0,1fr);grid-template-rows:auto;align-items:center;gap:10px;min-height:76px;overflow:visible;padding:7px 10px}
.ad-edit-asset-item>input{position:static;width:17px;height:17px}
.ad-edit-asset-item .ad-product-image-frame{align-self:center;width:58px;height:58px}
.ad-edit-asset-item>span:last-child{align-content:center}.ad-edit-asset-item b{display:block;overflow:hidden;min-height:0;font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.ad-edit-asset-item small,.ad-edit-asset-item em{margin-top:2px;font-size:9px}
@media(max-width:1300px){.ad-edit-product-control-layout{grid-template-columns:1fr}.ad-edit-compact-editor{order:-1}.ad-edit-compact-fields{grid-template-columns:minmax(220px,1.6fr) 1fr 1fr}}
@media(max-width:760px){.ad-edit-compact-fields{grid-template-columns:1fr}.ad-edit-product-control-layout{display:grid}.ad-edit-asset-list{grid-template-columns:1fr;grid-auto-rows:minmax(76px,auto);height:calc(100dvh - 300px)}.ad-edit-asset-item{grid-template-columns:20px 56px minmax(0,1fr)}.ad-edit-asset-item .ad-product-image-frame{width:52px;height:52px}}
