body { min-height: 100vh; background: #070b12; --font-sans: -apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","PingFang SC","Microsoft YaHei UI","Segoe UI Variable",sans-serif; font-size: 17px; line-height: 1.55; letter-spacing: -.008em; }
.channel-root { min-height: 100vh; }
.login-view { min-height: 100vh; display: grid; grid-template-columns: 1.12fr .88fr; }
.login-copy { display: flex; flex-direction: column; justify-content: space-between; gap: 50px; padding: 56px 7vw; background: radial-gradient(circle at 18% 30%,rgba(56,200,193,.13),transparent 30%),radial-gradient(circle at 80% 82%,rgba(243,185,95,.1),transparent 28%),linear-gradient(145deg,#070c15,#0b1421); }
.login-copy h1 { max-width: 820px; margin: 24px 0; font-size: clamp(48px,5.5vw,78px); line-height: 1.08; letter-spacing: -.065em; }
.login-copy p { max-width: 720px; color: var(--paper-300); font-size: 19px; line-height: 1.8; }
.trust-row { display: flex; flex-wrap: wrap; gap: 10px; }
.trust-row span { padding: 10px 14px; border: 1px solid rgba(255,255,255,.09); border-radius: 99px; color: var(--paper-300); background: rgba(255,255,255,.03); font-size: 14px; }
.login-panel { display: grid; place-items: center; padding: 50px; border-left: 1px solid rgba(255,255,255,.07); background: #0b121e; }
.login-panel form { width: min(470px,100%); padding: 42px; border: 1px solid rgba(255,255,255,.1); border-radius: 28px; background: rgba(255,255,255,.028); box-shadow: 0 40px 100px rgba(0,0,0,.36); }
.login-panel h2 { margin: 12px 0 8px; font-size: 34px; letter-spacing: -.045em; }
.login-panel p { margin: 0 0 28px; color: var(--paper-500); font-size: 16px; }
label { display: grid; gap: 9px; margin-top: 17px; }
label span { color: var(--paper-300); font-size: 15px; font-weight: 650; }
input,select,textarea { min-height: 50px; padding: 0 15px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; color: var(--paper-50); background: rgba(0,0,0,.2); font: inherit; }
textarea { min-height: 100px; padding-block: 12px; resize: vertical; }
.login-panel button { width: 100%; min-height: 48px; margin-top: 12px; font-size: 15px; }
.form-message { min-height: 38px; display: flex; align-items: center; color: #ff9f9f; font-size: 14px; }

.console { min-height: 100vh; display: grid; grid-template-columns: 292px minmax(0,1fr); }
aside { position: sticky; top: 0; height: 100vh; display: grid; grid-template-rows: auto 1fr auto; padding: 24px 17px 18px; border-right: 1px solid rgba(255,255,255,.07); background: linear-gradient(180deg,#090f19,#080c14); }
aside nav { display: grid; align-content: start; gap: 5px; margin-top: 28px; overflow-y: auto; }
aside nav > b { margin-top: 14px; padding: 0 13px 7px; color: rgba(255,255,255,.38); font-size: 14px; letter-spacing: .1em; }
aside nav button { min-height: 48px; display: flex; align-items: center; gap: 12px; padding: 0 14px; border: 0; border-radius: 13px; color: var(--paper-500); background: none; font-size: 16px; text-align: left; cursor: pointer; }
aside nav button:hover,aside nav button.active { color: var(--paper-50); background: linear-gradient(90deg,rgba(120,230,225,.09),rgba(255,255,255,.035)); }
aside nav button.active { color: var(--cyan-300); }
aside nav svg { width: 19px; }
.boundary { padding: 15px; border: 1px solid rgba(87,214,155,.14); border-radius: 15px; background: rgba(87,214,155,.035); }
.boundary b { display: block; font-size: 14px; }
.boundary small { display: block; margin-top: 5px; color: var(--paper-500); font-size: 14px; line-height: 1.5; }
.main { min-width: 0; background: radial-gradient(circle at 90% 0,rgba(56,200,193,.07),transparent 26%),#070b12; }
.main > header { height: 90px; display: flex; align-items: center; justify-content: space-between; padding: 0 34px; border-bottom: 1px solid rgba(255,255,255,.07); background: rgba(7,11,18,.8); backdrop-filter: blur(18px); }
.main header h1 { margin: 5px 0 0; font-size: 29px; letter-spacing: -.045em; }
.account-button { min-height: 46px; display: flex; align-items: center; gap: 10px; padding: 0 13px 0 7px; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; color: var(--paper-300); background: rgba(255,255,255,.03); cursor: pointer; }
.account-button span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: #071015; background: var(--cyan-300); font-size: 14px; font-weight: 560; }
.account-button b { font-size: 15px; }.account-button svg { width: 17px; }
.content { width: min(1540px,100%); padding: 34px 34px 90px; }
.metric-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 14px; }
.metric-grid article { min-height: 145px; padding: 20px; border: 1px solid rgba(255,255,255,.07); border-radius: 20px; background: linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.015)); }
.metric-grid span { color: var(--paper-500); font-size: 14px; }.metric-grid strong { display: block; margin-top: 20px; font-size: 31px; letter-spacing: -.04em; }.metric-grid small { display: block; margin-top: 8px; color: var(--paper-500); font-size: 14px; }
.workspace { display: grid; grid-template-columns: minmax(320px,.66fr) minmax(0,1.34fr); gap: 18px; margin-top: 18px; }
.actions { display: grid; align-content: start; gap: 14px; }
.action-card,.panel { border: 1px solid rgba(255,255,255,.07); border-radius: 20px; background: rgba(255,255,255,.025); overflow: hidden; }
.action-card { display: grid; gap: 12px; padding: 20px; }.action-card b { font-size: 18px; }.action-card > small { color: var(--paper-500); font-size: 14px; line-height: 1.55; }.action-card button { min-height: 44px; font-size: 15px; }
.form-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.panel-title { display: flex; align-items: center; justify-content: space-between; padding: 23px; border-bottom: 1px solid rgba(255,255,255,.06); }.panel-title h2 { margin: 0; font-size: 21px; }.panel-title p { margin: 7px 0 0; color: var(--paper-500); font-size: 14px; }
.record-list { padding: 14px; }.record-row { min-height: 78px; display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 14px; padding: 12px; border-bottom: 1px solid rgba(255,255,255,.05); }.record-row:last-child { border: 0; }.record-row > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; color: var(--cyan-300); background: rgba(120,230,225,.055); }.record-row > i svg { width: 19px; }.record-row b { display: block; font-size: 16px; }.record-row small { display: block; margin-top: 6px; color: var(--paper-500); font-size: 14px; line-height: 1.55; }
.empty { min-height: 230px; display: grid; place-items: center; align-content: center; gap: 10px; padding: 32px; text-align: center; }.empty b { font-size: 18px; }.empty small { max-width: 520px; color: var(--paper-500); font-size: 14px; line-height: 1.6; }
.tag { min-height: 28px; padding: 5px 10px; font-size: 14px; }.eyebrow { font-size: 14px; letter-spacing: .12em; }
.toast-region { position: fixed; z-index: 90; top: 100px; right: 24px; width: min(430px,calc(100vw - 36px)); display: grid; gap: 9px; }.toast { padding: 16px 18px; border: 1px solid rgba(87,214,155,.22); border-radius: 15px; color: var(--paper-100); background: rgba(16,24,39,.98); box-shadow: 0 20px 60px rgba(0,0,0,.35); font-size: 15px; }
@media(max-width:1050px){.login-view{grid-template-columns:1fr}.login-copy{display:none}.console{grid-template-columns:84px minmax(0,1fr)}aside .brand-name,aside .brand-subtitle,aside nav button{font-size:0}aside nav>b,.boundary{display:none}aside nav button{justify-content:center}.workspace{grid-template-columns:1fr}}
@media(max-width:700px){.content{padding-inline:15px}.main>header{padding-inline:18px}.metric-grid{grid-template-columns:1fr}.form-pair{grid-template-columns:1fr}.account-button b{display:none}}

/* 服务商后台视觉语言 V4：与总部后台一致，避免微缩字和大面积粗黑。 */
.channel-root {
  --channel-display: "SF Pro Display", "Segoe UI Variable Display", "PingFang SC", "Microsoft YaHei UI", sans-serif;
  --channel-text: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "PingFang SC", "Microsoft YaHei UI", sans-serif;
  font-family: var(--channel-text);
  font-weight: 400;
  font-variation-settings: "wght" 400;
  text-rendering: optimizeLegibility;
}
.channel-root h1,.channel-root h2,.metric-grid strong {
  font-family: var(--channel-display);
  font-weight: 540;
  font-variation-settings: "wght" 540;
}
.login-copy h1 { font-weight: 500; letter-spacing: -.05em; }
.login-panel h2 { font-weight: 550; }
.main header h1 { font-size: 32px; font-weight: 540; letter-spacing: -.035em; }
.panel-title h2 { font-size: 22px; font-weight: 550; letter-spacing: -.018em; }
.metric-grid strong { font-size: 34px; font-weight: 500; font-variant-numeric: tabular-nums; }
.channel-root b,.record-row b,.action-card b,.boundary b,.account-button b {
  font-weight: 560;
  font-variation-settings: "wght" 560;
}
.record-row b { font-size: 17px; letter-spacing: -.012em; }
.action-card b { font-size: 19px; letter-spacing: -.015em; }
.channel-root small,.channel-root p { font-weight: 400; font-variation-settings: "wght" 400; }
.panel-title p,.record-row small,.action-card > small,.empty small,.metric-grid small { font-size: 15px; line-height: 1.62; }
aside nav > b,.eyebrow { font-weight: 560; font-variation-settings: "wght" 560; }
aside nav button { font-weight: 440; font-variation-settings: "wght" 440; }
label span { font-weight: 520; font-variation-settings: "wght" 520; }
.channel-root input,.channel-root select,.channel-root textarea { font-weight: 400; letter-spacing: 0; }
.channel-root .button-primary,.channel-root .button-secondary,.channel-root .button-quiet,.channel-root .button-danger,.channel-root .tag {
  font-weight: 520;
  font-variation-settings: "wght" 520;
}
.account-button span { font-weight: 560; }
.action-card,.panel,.metric-grid article,.workflow-dialog,.record-detail-dialog { border-color: rgba(255,255,255,.075); }
.record-row { padding-block: 14px; }
.channel-list-tools {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(156px,1fr));
  align-items: end;
  gap: 11px;
  margin: 0 0 10px;
  padding: 13px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 15px;
  background: rgba(255,255,255,.022);
}
.channel-list-search { grid-column: span 2; }
.channel-list-pagination { grid-column: span 2; }
.channel-list-tools label { min-width: 0; margin: 0; }
.channel-list-tools label > span { color: var(--paper-500); font-size: 14px; font-weight: 500; }
.channel-list-tools input,.channel-list-tools select { width: 100%; min-height: 44px; }
.channel-remote-list-body { display: contents; }
.channel-list-count { align-self: center; color: var(--paper-300); font-size: 15px; white-space: nowrap; }
.channel-list-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 8px; white-space: nowrap; }
.channel-list-pagination > span { min-width: 48px; color: var(--paper-300); text-align: center; font-variant-numeric: tabular-nums; }
.channel-list-empty > .empty { min-height: 190px; }
.channel-root .brand-subtitle { font-size: 14px; font-weight: 500; }
.channel-root .eyebrow { font-size: 14px; }
.record-group { display: grid; gap: 4px; margin-bottom: 22px; }
.record-group:last-child { margin-bottom: 0; }
.record-group > h3 { margin: 0; padding: 10px 12px; color: var(--paper-300); font-size: 16px; font-weight: 540; letter-spacing: -.01em; }

/* 所有业务页先展示列表；表单只在操作按钮触发后进入独立弹窗。 */
.workspace { grid-template-columns: 1fr; }
.actions:empty { display: none; }
.management-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 11px;
  padding: 20px 22px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 18px;
  background: rgba(255,255,255,.022);
}
.management-toolbar .operation-note { flex: 1 1 100%; }
.overview-actions { display: block; }
.overview-entry-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.overview-entry {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) 24px;
  align-items: center;
  gap: 16px;
  min-height: 138px;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 20px;
  color: var(--paper-100);
  background: linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.014));
  text-align: left;
  cursor: pointer;
  transition: transform .18s ease,border-color .18s ease,background .18s ease;
}
.overview-entry:hover { transform: translateY(-2px); border-color: rgba(120,230,225,.28); background: linear-gradient(145deg,rgba(120,230,225,.07),rgba(255,255,255,.016)); }
.overview-entry > i:first-child { color: var(--cyan-300); }
.overview-entry > i:last-child { color: var(--paper-500); }
.overview-entry b { display: block; font-size: 20px; letter-spacing: -.018em; }
.overview-entry small { display: block; margin-top: 8px; color: var(--paper-500); font-size: 15px; line-height: 1.6; }
.operation-note { display: flex; align-items: center; gap: 14px; padding: 20px; }
.operation-note > i { width: 24px; flex: 0 0 auto; color: var(--green-400); }
.row-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.record-row:has(.row-actions) { grid-template-columns: 44px minmax(260px,1fr) auto minmax(120px,auto); }

.workflow-dialog,.record-detail-dialog {
  width: min(780px,calc(100vw - 44px));
  max-height: min(90vh,980px);
  padding: 0;
  overflow: auto;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 26px;
  color: var(--paper-50);
  background: linear-gradient(160deg,#111b2a,#09111d 72%);
  box-shadow: 0 38px 120px rgba(0,0,0,.7);
}
.workflow-dialog::backdrop,.record-detail-dialog::backdrop { background: rgba(1,5,10,.76); backdrop-filter: blur(10px); }
.workflow-form { margin: 0; }
.workflow-dialog-head {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 29px 31px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  background: rgba(12,20,32,.96);
  backdrop-filter: blur(16px);
}
.workflow-dialog-head h2 { margin: 7px 0 0; font-family: var(--channel-display); font-size: 29px; font-weight: 540; letter-spacing: -.035em; }
.workflow-dialog-head p { margin: 8px 0 0; color: var(--paper-500); font-size: 15px; line-height: 1.6; }
.workflow-dialog-body { display: grid; gap: 18px; padding: 31px; }
.workflow-dialog-body label { margin: 0; }
.workflow-dialog-body label > span,.choice-group legend { font-size: 15px; font-weight: 520; }
.workflow-dialog-body label > span em,.choice-group legend em { margin-left: 6px; color: var(--cyan-300); font-size: 14px; font-style: normal; font-weight: 520; }
.workflow-dialog-body label > small { color: var(--paper-500); font-size: 14px; line-height: 1.55; }
.workflow-actions { position: sticky; bottom: 0; display: flex; justify-content: flex-end; gap: 10px; padding: 20px 31px; border-top: 1px solid rgba(255,255,255,.07); background: rgba(12,20,32,.96); backdrop-filter: blur(16px); }
.form-effort-summary,.system-managed-note,.form-result { display: flex; align-items: flex-start; gap: 10px; padding: 13px 15px; border: 1px solid rgba(120,230,225,.15); border-radius: 13px; color: var(--cyan-300); background: rgba(120,230,225,.045); font-size: 14px; line-height: 1.58; }
.form-effort-summary i,.system-managed-note i { width: 19px; flex: 0 0 auto; }
.form-result { display: grid; color: var(--green-400); border-color: rgba(87,214,155,.18); background: rgba(87,214,155,.045); }
.form-result.error { color: #ffaaa7; border-color: rgba(245,116,116,.22); background: rgba(245,116,116,.05); }
.form-result b { font-size: 17px; }
.form-result small { font-size: 15px; line-height: 1.6; }
.form-result code { color: var(--amber-300); font-size: 16px; overflow-wrap: anywhere; }
.choice-group { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 0; padding: 15px; border: 1px solid rgba(255,255,255,.08); border-radius: 13px; }
.choice-group legend { padding: 0 7px; color: var(--paper-300); }
.choice-group .choice { display: flex; grid-auto-flow: column; align-items: center; gap: 9px; min-height: 44px; margin: 0; padding: 9px 11px; border-radius: 10px; background: rgba(255,255,255,.035); }
.choice-group .choice input { width: 18px; min-height: 18px; padding: 0; accent-color: var(--cyan-300); }
.choice-group .choice span { font-size: 14px; font-weight: 400; }
.record-detail-body { padding: 31px; }
.detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 0; }
.detail-grid > div { padding: 17px; border: 1px solid rgba(255,255,255,.065); border-radius: 15px; background: rgba(255,255,255,.02); }
.detail-grid dt { color: var(--paper-500); font-size: 14px; }
.detail-grid dd { margin: 8px 0 0; color: var(--paper-100); font-size: 17px; line-height: 1.55; overflow-wrap: anywhere; }

@media(max-width:1180px){.channel-list-tools{grid-template-columns:repeat(3,minmax(160px,1fr))}.channel-list-pagination{justify-content:flex-start}}
@media(max-width:920px){.overview-entry-grid{grid-template-columns:1fr}.record-row:has(.row-actions){grid-template-columns:44px minmax(0,1fr) auto}.record-row .row-actions{grid-column:2/-1;justify-content:flex-start}.detail-grid{grid-template-columns:1fr}.channel-list-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.channel-list-search,.channel-list-pagination{grid-column:1/-1}}
@media(max-width:700px){.workflow-dialog,.record-detail-dialog{width:calc(100vw - 24px)}.workflow-dialog-head,.workflow-dialog-body,.workflow-actions,.record-detail-body{padding-inline:21px}.form-pair,.choice-group{grid-template-columns:1fr}}
