/* YC Operations v3. Loaded after the legacy stylesheet so every module shares one stable layout. */
.yc-v3-shell {
  --v3-blue: #246bfd;
  --v3-cyan: #0891b2;
  --v3-green: #169b62;
  --v3-amber: #dc8612;
  --v3-red: #dc4555;
  --v3-purple: #7257d9;
  --v3-ink: #172033;
  --v3-muted: #748196;
  --v3-line: #e1e8f1;
  --v3-soft: #f5f8fc;
  --v3-canvas: #f2f6fb;
  --v3-card: #fff;
  --v3-accent: var(--v3-blue);
  color: var(--v3-ink) !important;
  background: var(--v3-canvas) !important;
}

/* 2026-08 focused workflow cleanup */
.yc-v3-shell .ios-release-tabs-only { overflow: hidden; padding: 0 !important; }
.yc-v3-shell .ios-release-tabs-only .ios-release-console-head { padding: 18px 20px; }
.yc-v3-shell .ios-release-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  border-top: 1px solid var(--v3-line);
  background: #f8fafc;
}
body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-release-tabs button {
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 52px !important;
  padding: 8px 14px !important;
  border: 0 !important;
  border-right: 1px solid var(--v3-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #66758a !important;
  text-align: left !important;
  box-shadow: none !important;
}
.yc-v3-shell .ios-release-tabs button:last-child { border-right: 0 !important; }
.yc-v3-shell .ios-release-tabs button.is-active { background: #fff !important; color: #8f5c0d !important; box-shadow: inset 0 -3px 0 var(--v3-amber) !important; }
.yc-v3-shell .ios-release-tabs button > i {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: #eef3f6;
  color: #41566a;
}
.yc-v3-shell .ios-release-tabs button.is-active > i { background: #e8f4ef; color: #08765a; }
.yc-v3-shell .ios-release-tabs button b { font-size: 13px; }
.yc-v3-shell .ios-release-tabs button small { color: #8a95a5; font-size: 10px; white-space: nowrap; }
.yc-v3-shell .ios-stage-heading > div > span,
.yc-v3-shell .ios-stage-heading > div > p { display: none !important; }
.yc-v3-shell .user-action-button { display: inline-flex !important; align-items: center; justify-content: center; gap: 7px; min-height: 36px; text-decoration: none; }
.yc-v3-shell .vehicle-map-frame { margin-bottom: 14px; overflow: hidden; border: 1px solid var(--v3-line); border-radius: 8px; background: #eef2f4; }
.yc-v3-shell .vehicle-map-frame iframe { display: block; width: 100%; height: 310px; border: 0; }
.yc-v3-shell .vehicle-map-caption { padding: 10px 12px; border-top: 1px solid var(--v3-line); background: #fff; color: #6f7d8a; font-size: 12px; }
.yc-v3-shell .permission-switch-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 10px !important; }
.yc-v3-shell .permission-switch { min-height: 48px; padding: 10px !important; }
.yc-v3-shell .protocol-fields { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 10px !important; }
.yc-v3-shell .protocol-group { border: 1px solid var(--v3-line); border-radius: 8px; padding: 16px !important; background: #fbfcfd; }
.yc-v3-shell .protocol-group h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 14px !important; }
.yc-v3-shell .protocol-group h4::before { content: ""; width: 4px; height: 16px; border-radius: 4px; background: var(--v3-green); }
.yc-v3-shell .ops2-parser-input { align-self: start; position: sticky; top: 82px; }
.yc-v3-shell .result-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.yc-v3-shell .result-card { min-height: 92px; display: flex; flex-direction: column; justify-content: space-between; }
.yc-v3-shell .ops2-audit-table td:nth-child(4) .tag { white-space: normal; line-height: 1.35; }

@media (max-width: 1040px) {
  .yc-v3-shell .permission-switch-grid,
  .yc-v3-shell .protocol-fields,
  .yc-v3-shell .result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 720px) {
  .yc-v3-shell .ios-release-tabs { display: flex !important; overflow-x: auto; }
  body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-release-tabs button { flex: 0 0 168px; border-right: 1px solid var(--v3-line) !important; }
  .yc-v3-shell .vehicle-map-frame iframe { height: 240px; }
  .yc-v3-shell .permission-switch-grid,
  .yc-v3-shell .protocol-fields,
  .yc-v3-shell .result-grid { grid-template-columns: 1fr !important; }
  .yc-v3-shell .ops2-parser-input { position: static; }
}

/* Dense business layouts for content, DIY, protocol and audit pages. */
.yc-v3-shell .content-workflow { display: block !important; padding: 0 !important; overflow: hidden; }
.yc-v3-shell .content-workflow-head { padding: 16px 20px !important; border-bottom: 1px solid var(--v3-line); }
body.yc-element-shell.yc-v3-shell .content-module-grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v3-line) !important;
  background: #f8fafc !important;
}
body.yc-element-shell.yc-v3-shell button.content-module-card {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  min-height: 58px !important;
  padding: 10px 12px !important;
  border: 0 !important;
  border-right: 1px solid var(--v3-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #64748b !important;
  box-shadow: none !important;
}
body.yc-element-shell.yc-v3-shell button.content-module-card:last-child { border-right: 0 !important; }
body.yc-element-shell.yc-v3-shell button.content-module-card.is-active { background: #fff !important; color: #0f6b55 !important; box-shadow: inset 0 -3px 0 #158166 !important; }
.yc-v3-shell .content-module-card strong { font-size: 13px !important; }
.yc-v3-shell .content-module-panels { padding: 20px !important; }

.yc-v3-shell .app-diy-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px !important; }
.yc-v3-shell .app-diy-header h3 { margin: 0 0 4px; }
.yc-v3-shell .app-diy-header .app-diy-stats { display: flex; gap: 8px; }
.yc-v3-shell .app-diy-header .app-diy-stats span { min-width: 92px; padding: 9px 12px; border: 1px solid var(--v3-line); border-radius: 6px; background: #f8fafc; color: #687588; font-size: 12px; }
.yc-v3-shell .app-diy-header .app-diy-stats b { margin-right: 6px; color: #172033; }
.yc-v3-shell .app-diy-type-tabs { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px !important; }
.yc-v3-shell .app-diy-type-tabs a { justify-content: center !important; min-height: 48px; }

.yc-v3-shell .protocol-summary-chips,
.yc-v3-shell .audit-summary { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.yc-v3-shell .protocol-summary-chips span,
.yc-v3-shell .audit-summary span { padding: 5px 9px; border: 1px solid #dbe3ec; border-radius: 5px; background: #f8fafc; color: #66758a; font-size: 11px; font-weight: 800; }
.yc-v3-shell .protocol-summary-chips span.is-on { border-color: #b9dccf; background: #eef8f4; color: #167259; }
.yc-v3-shell .parser-input-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.yc-v3-shell .parser-input-heading > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 7px; background: #e9f2ff; color: #2c6fbb; }
.yc-v3-shell .parser-input-heading h3 { margin: 0; }
.yc-v3-shell .parser-input-heading span { display: block; margin-top: 3px; color: #8090a3; font-size: 12px; }
.yc-v3-shell .result-card { display: grid !important; grid-template-columns: 30px minmax(0, 1fr); gap: 2px 9px; align-items: center; }
.yc-v3-shell .result-card > i { grid-row: 1 / 3; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 6px; background: #e9f2ff; color: #326ea8; }
.yc-v3-shell .result-card > span,
.yc-v3-shell .result-card > b { min-width: 0; }

.yc-v3-shell .ops2-log-detail dl { min-width: 320px; margin: 10px 0 0; border: 1px solid var(--v3-line); border-radius: 6px; overflow: hidden; background: #fff; }
.yc-v3-shell .ops2-log-detail dl > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); border-bottom: 1px solid #edf1f5; }
.yc-v3-shell .ops2-log-detail dl > div:last-child { border-bottom: 0; }
.yc-v3-shell .ops2-log-detail dt,
.yc-v3-shell .ops2-log-detail dd { margin: 0; padding: 9px 11px; overflow-wrap: anywhere; }
.yc-v3-shell .ops2-log-detail dt { background: #f8fafc; color: #718096; font-size: 11px; }
.yc-v3-shell .ops2-log-detail dd { color: #26364a; font-size: 12px; }

.yc-v3-shell .client-online-tag { background: #e8f7f0 !important; color: #137357 !important; }
.yc-v3-shell .mini-program-tag { background: #e9f3ff !important; color: #286da8 !important; }
.yc-v3-shell .user-row-actions .user-action-button,
.yc-v3-shell .yc-row-top-actions .user-action-button { min-height: 36px !important; border-radius: 6px !important; }

@media (max-width: 1180px) {
  body.yc-element-shell.yc-v3-shell .content-module-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  body.yc-element-shell.yc-v3-shell button.content-module-card:nth-child(3n) { border-right: 0 !important; }
  body.yc-element-shell.yc-v3-shell button.content-module-card:nth-child(-n+3) { border-bottom: 1px solid var(--v3-line) !important; }
}
@media (max-width: 720px) {
  body.yc-element-shell.yc-v3-shell .content-module-grid { display: flex !important; overflow-x: auto !important; }
  body.yc-element-shell.yc-v3-shell button.content-module-card { flex: 0 0 155px !important; border-bottom: 0 !important; }
  .yc-v3-shell .app-diy-header { align-items: flex-start; flex-direction: column; }
  .yc-v3-shell .app-diy-header .app-diy-stats { width: 100%; overflow-x: auto; }
  .yc-v3-shell .app-diy-type-tabs { grid-template-columns: 1fr !important; }
  .yc-v3-shell .ops2-log-detail dl { min-width: 260px; }
  .yc-v3-shell .ops2-log-detail dl > div { grid-template-columns: 90px minmax(0, 1fr); }
}

.yc-v3-shell.yc-page-content,
.yc-v3-shell.yc-page-vehicles { --v3-accent: var(--v3-purple); }
.yc-v3-shell.yc-page-devices,
.yc-v3-shell.yc-page-protocols,
.yc-v3-shell.yc-page-protocol_parser { --v3-accent: var(--v3-green); }
.yc-v3-shell.yc-page-firmware,
.yc-v3-shell.yc-page-ios_install { --v3-accent: var(--v3-amber); }
.yc-v3-shell.yc-page-logs,
.yc-v3-shell.yc-page-admins { --v3-accent: #566176; }
.yc-v3-shell.yc-page-wechat_official { --v3-accent: #07a957; }

/* Application shell */
.yc-v3-shell .wrapper,
.yc-v3-shell .wrapper.yc-sidebar-collapsed {
  grid-template-columns: 252px minmax(0, 1fr) !important;
  background: var(--v3-canvas) !important;
}
.yc-v3-shell .main-sidebar {
  width: auto !important;
  border-right: 1px solid var(--v3-line) !important;
  background: #fff !important;
  box-shadow: none !important;
}
.yc-v3-shell .brand-link {
  height: 72px !important;
  margin: 0 !important;
  padding: 14px 18px !important;
  border: 0 !important;
  border-bottom: 1px solid #edf1f6 !important;
  border-radius: 0 !important;
  background: #fff !important;
}
.yc-v3-shell .yc-brand-mark {
  width: 38px !important;
  height: 38px !important;
  border-radius: 7px !important;
  background: var(--v3-blue) !important;
  box-shadow: none !important;
}
.yc-v3-shell .brand-text,
.yc-v3-shell .brand-text b { color: var(--v3-ink) !important; }
.yc-v3-shell .brand-text small { color: #9aa5b5 !important; }
.yc-v3-shell .sidebar {
  height: calc(100vh - 72px) !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 10px 10px 14px !important;
  overflow: auto !important;
}
.yc-v3-shell .sidebar > nav { flex: 1 0 auto; }
.yc-v3-shell .nav-sidebar > .nav-header {
  margin: 17px 10px 6px !important;
  padding: 0 8px !important;
  color: #a1aaba !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  letter-spacing: .08em !important;
}
.yc-v3-shell .main-sidebar .nav-link {
  min-height: 42px !important;
  margin: 2px 0 !important;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: #657187 !important;
  box-shadow: none !important;
  font-size: 13px !important;
  font-weight: 750 !important;
}
.yc-v3-shell .main-sidebar .nav-icon {
  width: 25px !important;
  color: #9aa5b5 !important;
  font-size: 14px !important;
}
.yc-v3-shell .main-sidebar .nav-link:hover {
  color: var(--v3-blue) !important;
  background: #f3f7ff !important;
}
.yc-v3-shell .main-sidebar .nav-link.active {
  color: var(--v3-blue) !important;
  background: #eaf2ff !important;
  box-shadow: inset 3px 0 0 var(--v3-blue) !important;
}
.yc-v3-shell .main-sidebar .nav-link.active .nav-icon { color: var(--v3-blue) !important; }
.yc-sidebar-account {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 30px;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  padding: 12px 10px 4px;
  border-top: 1px solid var(--v3-line);
}
.yc-sidebar-avatar {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eaf2ff;
  color: var(--v3-blue);
  font-size: 13px;
  font-weight: 900;
}
.yc-sidebar-account > span:nth-child(2) { min-width: 0; }
.yc-sidebar-account b,
.yc-sidebar-account small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yc-sidebar-account b { color: #344054; font-size: 12px; }
.yc-sidebar-account small { margin-top: 2px; color: #98a2b3; font-size: 10px; }
.yc-sidebar-account a {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  color: #9aa5b5;
}
.yc-sidebar-account a:hover { background: #fff0f2; color: var(--v3-red); }

.yc-v3-shell .yc-topbar {
  height: 68px !important;
  padding: 0 24px !important;
  border-bottom: 1px solid var(--v3-line) !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: none !important;
}
.yc-v3-shell .yc-topbar-title span { color: #273348 !important; font-size: 14px !important; font-weight: 900 !important; }
.yc-v3-shell .yc-topbar-title small { color: #98a2b3 !important; font-size: 10px !important; }
.yc-v3-shell .yc-icon-button {
  border: 1px solid var(--v3-line) !important;
  border-radius: 7px !important;
  background: #f8fafc !important;
  color: #657187 !important;
  box-shadow: none !important;
}
.yc-v3-shell .yc-top-status { border-color: #d8f2e4 !important; background: #edf9f3 !important; color: var(--v3-green) !important; }
.yc-v3-shell .yc-top-admin,
.yc-v3-shell .yc-top-logout { color: #5f6c80 !important; }
.yc-v3-shell .content-wrapper { min-width: 0; background: var(--v3-canvas) !important; }
.yc-v3-shell .main-footer { border-top: 1px solid var(--v3-line) !important; background: #fff !important; }

/* Page identity and sibling navigation */
.yc-v3-shell .yc-page-head { padding: 20px 26px 0 !important; }
.yc-v3-shell .content { padding: 18px 26px 42px !important; }
.yc-v3-shell .container-fluid { max-width: 1680px !important; }
.yc-v3-page-intro {
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0 0 17px;
  border-bottom: 1px solid var(--v3-line);
}
.yc-v3-page-identity { min-width: 0; display: flex; align-items: center; gap: 14px; }
.yc-v3-page-icon {
  width: 48px;
  height: 48px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 8px;
  background: var(--v3-accent);
  color: #fff;
  font-size: 18px;
}
.yc-v3-shell .yc-breadcrumb-line { color: #8d98a9 !important; font-size: 10px !important; font-weight: 750 !important; }
.yc-v3-shell .yc-breadcrumb-line a { color: var(--v3-accent) !important; }
.yc-v3-shell .yc-page-copy h1 { margin: 4px 0 0 !important; color: var(--v3-ink) !important; font-size: 24px !important; line-height: 1.15 !important; }
.yc-v3-shell .yc-page-copy p { margin: 5px 0 0; color: var(--v3-muted); font-size: 11px; }
.yc-v3-page-controls { min-width: 0; display: flex; align-items: center; gap: 10px; }
.yc-v3-context-nav {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 4px;
  overflow-x: auto;
  border: 1px solid var(--v3-line);
  border-radius: 7px;
  background: #fff;
}
.yc-v3-context-nav a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  padding: 0 11px;
  border-radius: 5px;
  color: #718096;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.yc-v3-context-nav a:hover { color: var(--v3-accent); background: var(--v3-soft); }
.yc-v3-context-nav a.is-active { color: #fff; background: var(--v3-accent); }
.yc-v3-shell button.yc-v3-refresh {
  width: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border: 1px solid var(--v3-line) !important;
  border-radius: 7px !important;
  background: #fff !important;
  color: #647187 !important;
  box-shadow: none !important;
}

/* Shared operational summary: one connected workspace, not a row of floating cards. */
.yc-v3-shell .ops2-hero,
.yc-v3-shell .ops2-hero.has-four {
  display: grid !important;
  grid-template-columns: minmax(360px, 1.55fr) repeat(3, minmax(150px, .55fr)) !important;
  gap: 0 !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--v3-line) !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 8px 22px rgba(45, 75, 116, .045) !important;
}
.yc-v3-shell .ops2-hero.has-four { grid-template-columns: minmax(320px, 1.35fr) repeat(4, minmax(130px, .5fr)) !important; }
.yc-v3-shell .ops2-hero-copy {
  min-height: 142px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: 23px 26px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #202b3d !important;
  color: #fff !important;
}
.yc-v3-shell .ops2-hero-copy::after { display: none !important; }
.yc-v3-shell .ops2-eyebrow { color: #93b5ff !important; letter-spacing: .08em !important; }
.yc-v3-shell .ops2-hero-copy h2 { font-size: 24px !important; }
.yc-v3-shell .ops2-hero-copy p { max-width: 620px !important; color: #c5cfde !important; }
.yc-v3-shell .ops2-metric {
  min-height: 142px !important;
  display: grid !important;
  grid-template-columns: 34px minmax(0, 1fr) !important;
  grid-template-rows: auto auto 1fr !important;
  align-content: center !important;
  gap: 3px 9px !important;
  padding: 18px !important;
  border: 0 !important;
  border-left: 1px solid var(--v3-line) !important;
  border-top: 3px solid var(--v3-blue) !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
}
.yc-v3-shell .ops2-metric > i { width: 34px !important; height: 34px !important; border-radius: 7px !important; }
.yc-v3-shell .ops2-metric > b { color: var(--v3-ink) !important; font-size: 24px !important; }
.yc-v3-shell .ops2-metric > span { color: #6d7a8e !important; }
.yc-v3-shell .ops2-metric > small { color: #98a2b2 !important; }
.yc-v3-shell .ops2-metric.is-success { border-top-color: var(--v3-green) !important; }
.yc-v3-shell .ops2-metric.is-cyan { border-top-color: var(--v3-cyan) !important; }
.yc-v3-shell .ops2-metric.is-amber { border-top-color: var(--v3-amber) !important; }

/* Controls, panels, forms and data tables */
.yc-v3-shell .card,
.yc-v3-shell .protocol-card,
.yc-v3-shell .result-card,
.yc-v3-shell .user-row-card,
.yc-v3-shell .admin-account-card {
  border: 1px solid var(--v3-line) !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 8px 22px rgba(45, 75, 116, .045) !important;
}
.yc-v3-shell .work-card,
.yc-v3-shell .ops2-data-panel,
.yc-v3-shell .ops2-command-bar { padding: 20px !important; }
.yc-v3-shell .work-card::before,
.yc-v3-shell .work-card-head::after { display: none !important; }
.yc-v3-shell .work-card-head,
.yc-v3-shell .card-header-inline,
.yc-v3-shell .ops-section-title {
  min-height: 50px;
  margin-bottom: 15px !important;
  padding-bottom: 13px !important;
  border-bottom: 1px solid #edf1f5 !important;
}
.yc-v3-shell .work-card-head h3,
.yc-v3-shell .card-header-inline h3,
.yc-v3-shell .ops-section-title h3 { margin: 0 !important; color: #273348 !important; font-size: 16px !important; }
.yc-v3-shell .work-card-head p,
.yc-v3-shell .card-header-inline p,
.yc-v3-shell .ops-section-title p { display: block !important; margin: 4px 0 0 !important; color: #8a96a8 !important; font-size: 10px !important; }
.yc-v3-shell .work-icon { width: 38px !important; height: 38px !important; border-radius: 7px !important; box-shadow: none !important; }
.yc-v3-shell input,
.yc-v3-shell textarea,
.yc-v3-shell select {
  min-height: 42px !important;
  border: 1px solid #dbe3ed !important;
  border-radius: 6px !important;
  background: #fbfcfe !important;
  color: #344054 !important;
  box-shadow: none !important;
  font-size: 12px !important;
}
.yc-v3-shell input:focus,
.yc-v3-shell textarea:focus,
.yc-v3-shell select:focus { border-color: #80aaf9 !important; box-shadow: 0 0 0 3px rgba(36, 107, 253, .09) !important; }
.yc-v3-shell button,
.yc-v3-shell .btn,
.yc-v3-shell .tag { border-radius: 6px !important; }
.yc-v3-shell button:not(.btn-red):not(.btn-muted):not(.ios-nav-control):not(.yc-v3-refresh):not(.content-module-card) {
  background: var(--v3-accent) !important;
  box-shadow: none !important;
}
.yc-v3-shell .btn-muted { border: 1px solid #dce4ed !important; background: #fff !important; color: #59677b !important; box-shadow: none !important; }
.yc-v3-shell .btn-red { box-shadow: none !important; }
.yc-v3-shell .tag { border: 1px solid #d5e8dc !important; background: #eef9f3 !important; color: var(--v3-green) !important; }
.yc-v3-shell .tag-muted { border-color: #e1e7ee !important; background: #f5f7fa !important; color: #8792a2 !important; }
.yc-v3-shell .tag-red { border-color: #f2d8dd !important; background: #fff1f3 !important; color: var(--v3-red) !important; }
.yc-v3-shell .table-wrap { overflow: auto !important; border: 1px solid var(--v3-line) !important; border-radius: 7px !important; box-shadow: none !important; }
.yc-v3-shell table { width: 100%; border-collapse: separate !important; border-spacing: 0 !important; }
.yc-v3-shell th { position: sticky; top: 0; z-index: 2; height: 44px !important; background: #f4f7fb !important; color: #6e7b8e !important; font-size: 10px !important; font-weight: 900 !important; }
.yc-v3-shell td { min-height: 50px !important; border-color: #edf1f5 !important; background: #fff !important; color: #344054 !important; font-size: 11px !important; }
.yc-v3-shell tbody tr:nth-child(even) td { background: #fbfcfe !important; }
.yc-v3-shell tr:hover td { background: #f3f7ff !important; }
.yc-v3-shell .yc-admin-modal { background: rgba(17, 24, 39, .52) !important; backdrop-filter: blur(4px); }
.yc-v3-shell .yc-admin-dialog { max-height: min(88vh, 860px) !important; border-radius: 8px !important; overflow: auto !important; }
.yc-v3-shell .yc-modal-head { position: sticky; top: 0; z-index: 5; border-bottom: 1px solid var(--v3-line) !important; background: rgba(255, 255, 255, .96) !important; backdrop-filter: blur(10px); }

/* Device and audit pages */
.yc-v3-shell .ops2-command-bar { margin-bottom: 14px !important; }
.yc-v3-shell .ops2-filter-row { gap: 12px !important; }
.yc-v3-shell .ops2-search { min-height: 42px; border-radius: 6px !important; background: #f8fafc !important; }
.yc-v3-shell .ops2-filter-chips button { min-height: 34px !important; }
.yc-v3-shell .ops2-data-panel { margin-bottom: 16px !important; }
.yc-v3-shell .ops2-table-wrap { max-height: 680px; }
.yc-v3-shell .ops2-log-detail pre { border-radius: 6px !important; background: #172033 !important; color: #dbe6f4 !important; }

/* Users become a scalable operations list instead of a wall of cards. */
.yc-v3-shell .user-groups-card { margin-bottom: 14px !important; }
.yc-v3-shell .user-group-list { display: flex !important; gap: 8px !important; overflow-x: auto; padding-bottom: 2px; }
.yc-v3-shell .user-group-card { min-width: 210px; border: 1px solid var(--v3-line) !important; border-radius: 7px !important; background: #f8fafc !important; }
.yc-v3-shell .user-management-card { padding: 20px !important; }
.yc-v3-shell .yc-v3-user-filter { margin: -2px 0 14px; padding: 0 0 14px; border-bottom: 1px solid #edf1f5; }
.yc-v3-shell .user-list { display: grid !important; grid-template-columns: 1fr !important; gap: 0 !important; border: 1px solid var(--v3-line); border-radius: 7px; overflow: hidden; }
.yc-v3-shell .user-row-card {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #edf1f5 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.yc-v3-shell .user-row-card:last-child { border-bottom: 0 !important; }
.yc-v3-shell .user-row-card::before { display: none !important; }
.yc-v3-shell .user-row-topline {
  min-height: 78px;
  display: grid !important;
  grid-template-columns: minmax(230px, 1fr) minmax(330px, 1.35fr) auto !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 11px 14px !important;
}
.yc-v3-shell .user-row-card:nth-child(even) .user-row-topline { background: #fbfcfe; }
.yc-v3-shell .user-row-avatar { width: 44px !important; height: 44px !important; }
.yc-v3-shell .user-row-identity h4 { margin: 2px 0 !important; font-size: 13px !important; }
.yc-v3-shell .user-row-identity p { font-size: 10px !important; }
.yc-v3-shell .user-row-quick { display: flex !important; flex-wrap: wrap; gap: 5px !important; }
.yc-v3-shell .yc-row-top-actions { justify-content: flex-end; }

/* App content is a true two-column editor with persistent module navigation. */
.yc-v3-shell .content-workflow {
  display: grid !important;
  grid-template-columns: 248px minmax(0, 1fr) !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.yc-v3-shell .content-workflow-head {
  grid-column: 1 / -1;
  margin: 0 !important;
  padding: 17px 20px !important;
  border-bottom: 1px solid var(--v3-line) !important;
  background: #fff !important;
}
body.yc-element-shell.yc-v3-shell .content-module-grid {
  grid-column: 1;
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
  padding: 12px !important;
  border-right: 1px solid var(--v3-line) !important;
  background: #f7f9fc !important;
}
body.yc-element-shell.yc-v3-shell button.content-module-card:not(.btn-red):not(.btn-muted):not(.ios-nav-control) {
  min-height: 58px !important;
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 10px !important;
  border: 1px solid transparent !important;
  border-radius: 6px !important;
  background: transparent !important;
  box-shadow: none !important;
  text-align: left !important;
}
body.yc-v3-shell button.content-module-card > i { width: 32px !important; height: 32px !important; display: grid !important; place-items: center !important; border-radius: 6px !important; background: #fff !important; color: #7d899b !important; }
body.yc-v3-shell button.content-module-card > strong { grid-column: 2 !important; grid-row: 1 !important; align-self: end !important; color: #273348 !important; font-size: 12px !important; line-height: 1.25 !important; }
body.yc-v3-shell button.content-module-card > small { grid-column: 2 !important; grid-row: 2 !important; align-self: start !important; overflow: hidden; color: #8b96a7 !important; font-size: 9px !important; line-height: 1.35 !important; text-overflow: ellipsis; white-space: nowrap; }
body.yc-v3-shell button.content-module-card > span { display: none !important; }
body.yc-element-shell.yc-v3-shell button.content-module-card.is-active:not(.btn-red):not(.btn-muted):not(.ios-nav-control) { border-color: #d8e5fa !important; background: #eaf2ff !important; }
body.yc-v3-shell button.content-module-card.is-active > i { color: var(--v3-blue) !important; }
.yc-v3-shell .content-module-panels,
.yc-v3-shell .content-official-panel { grid-column: 2; min-width: 0; padding: 20px !important; background: #fff !important; }
.yc-v3-shell .content-module-panel { border: 0 !important; box-shadow: none !important; }
.yc-v3-shell .content-panel-title { padding: 0 0 14px !important; border-bottom: 1px solid #edf1f5 !important; }
.yc-v3-shell .iot-account-row,
.yc-v3-shell .login-bubble-editor { border-radius: 7px !important; background: #f8fafc !important; }

/* Release workflows */
.yc-v3-shell .ops2-workflow-strip { overflow: hidden; border-radius: 8px !important; box-shadow: none !important; }
.yc-v3-shell .ops2-workflow-strip > div { min-height: 70px !important; }
.yc-v3-shell .firmware-target-panel { border-radius: 7px !important; background: #f8fafc !important; }
.yc-v3-shell .firmware-user-checklist { max-height: 260px !important; }
.yc-v3-shell .ios-command-header { padding: 18px 20px !important; }
.yc-v3-shell .ios-release-metrics { margin: 0 0 14px !important; }
.yc-v3-shell .ios-release-metrics > button { border-radius: 7px !important; box-shadow: none !important; }
.yc-v3-shell .ios-workspace-tabs { position: sticky; top: 8px; z-index: 4; border-radius: 7px !important; box-shadow: 0 7px 20px rgba(45, 75, 116, .06); }
.yc-v3-shell .ios-record-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 12px; }
.yc-v3-shell .ios-record-card { margin: 0 !important; border-radius: 7px !important; }

/* Protocols and parser */
body.yc-element-shell.yc-v3-shell .ops2-protocol-toolbar { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 16px !important; padding: 17px 19px !important; text-align: left !important; }
.yc-v3-shell .ops2-protocol-item { border-radius: 7px !important; }
.yc-v3-shell .ops2-protocol-item > summary { min-height: 68px !important; }
.yc-v3-shell .ops2-protocol-form { background: #f8fafc !important; }
.yc-v3-shell .ops2-parser-layout { grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr) !important; }
.yc-v3-shell .parser-textarea { min-height: 280px !important; background: #172033 !important; color: #dce7f5 !important; font-family: ui-monospace, SFMono-Regular, Menlo, monospace !important; }

/* Admins, notifications and user detail */
.yc-v3-shell .admin-account-list { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)) !important; gap: 12px !important; }
.yc-v3-shell .admin-account-card { margin: 0 !important; padding: 16px !important; }
.yc-v3-shell .admin-account-main { grid-template-columns: minmax(0, 1fr) auto !important; }
.yc-v3-shell .push-overview-card .status-grid { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
.yc-v3-shell .user-detail-profile { border-radius: 8px !important; }
.yc-v3-shell .user-control-grid { align-items: start !important; }
.yc-v3-shell .mqtt-summary-layout,
.yc-v3-shell .history-point-layout { gap: 14px !important; }
.yc-v3-shell .vehicle-location-card { border-radius: 8px !important; overflow: hidden; }
.yc-v3-shell .payload-window,
.yc-v3-shell .bms-raw-hex { border-radius: 6px !important; background: #172033 !important; color: #dce7f5 !important; }

/* Application DIY is organized as editor + asset library. */
.yc-v3-shell .app-diy-hero { border-radius: 8px !important; box-shadow: 0 8px 22px rgba(45, 75, 116, .045) !important; }
.yc-v3-shell .app-diy-form { display: grid !important; grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr) !important; gap: 16px !important; }
.yc-v3-shell .app-diy-theme-grid,
.yc-v3-shell .vehicle-theme-grid { grid-template-columns: 1fr !important; }
.yc-v3-shell .app-diy-tile,
.yc-v3-shell .vehicle-theme-tile { border-radius: 8px !important; box-shadow: none !important; }
body.yc-element-shell.yc-v3-shell .vehicle-theme-tile { gap: 16px !important; padding: 12px !important; border-radius: 7px !important; }

/* Fleet workspace: command controls stay compact while the inventory remains scannable. */
.yc-v3-shell.yc-page-devices .ops2-command-bar {
  display: grid !important;
  grid-template-columns: minmax(260px, .7fr) minmax(520px, 1.3fr) !important;
  align-items: end !important;
  gap: 18px !important;
}
.yc-v3-shell.yc-page-devices .ops2-command-bar .work-card-head { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.yc-v3-shell.yc-page-devices .ops2-command-bar .form-grid { margin: 0 !important; }
.yc-v3-shell.yc-page-devices .ops2-data-panel { padding: 0 !important; overflow: hidden; }
.yc-v3-shell.yc-page-devices .ops2-data-panel > .card-header-inline { margin: 0 !important; padding: 17px 20px !important; }
.yc-v3-shell.yc-page-devices .ops2-data-panel > .ops2-filter-row { margin: 0 20px 14px !important; }
.yc-v3-shell.yc-page-devices .ops2-data-panel > .table-wrap { margin: 0 20px 20px !important; }
.yc-v3-shell .esp32-topic-line { border-radius: 5px !important; background: #f4f7fb !important; }

/* OTA publishing is presented as a release pipeline, then an inventory table. */
.yc-v3-shell.yc-page-firmware .ops2-workflow-strip,
.yc-v3-shell.yc-page-wechat_official .ops2-workflow-strip {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
  margin-bottom: 16px !important;
  border: 1px solid var(--v3-line) !important;
  background: #fff !important;
}
.yc-v3-shell .ops2-workflow-strip > div {
  position: relative;
  padding: 15px 18px !important;
  border-right: 1px solid var(--v3-line) !important;
  background: transparent !important;
}
.yc-v3-shell .ops2-workflow-strip > div:last-child { border-right: 0 !important; }
.yc-v3-shell .ops2-workflow-strip > div.is-current { background: #fff8ed !important; box-shadow: inset 0 -3px 0 var(--v3-amber); }
.yc-v3-shell .ops2-release-library { padding: 0 !important; overflow: hidden; }
.yc-v3-shell .ops2-release-library > .card-header-inline { margin: 0 !important; padding: 18px 20px !important; }
.yc-v3-shell .ops2-release-library > .table-wrap { margin: 0 20px 20px !important; }
.yc-v3-shell .firmware-target-panel { border: 1px solid var(--v3-line) !important; padding: 14px !important; }
.yc-v3-shell .firmware-user-option { border-radius: 6px !important; box-shadow: none !important; }

/* iOS signing: command header, readiness and records form one continuous workflow. */
.yc-v3-shell.yc-page-ios_install .ios-command-header {
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 14px !important;
  margin-bottom: 14px !important;
}
.yc-v3-shell .ios-command-icon { width: 52px !important; height: 52px !important; border-radius: 7px !important; box-shadow: none !important; }
.yc-v3-shell .ios-command-actions { justify-content: flex-end !important; }
.yc-v3-shell .ios-release-metrics { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 10px !important; }
body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-release-metrics > button { min-height: 92px !important; padding: 14px !important; border: 1px solid var(--v3-line) !important; background: #fff !important; color: var(--v3-ink) !important; text-align: left !important; }
body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-release-metrics > button:hover { border-color: #f0c989 !important; background: #fffaf2 !important; }
.yc-v3-shell .ios-workspace-tabs { display: flex !important; gap: 4px !important; padding: 5px !important; border: 1px solid var(--v3-line) !important; background: #fff !important; }
.yc-v3-shell .ios-workspace-tabs .ios-nav-control { flex: 1 1 0; min-width: 150px; border-radius: 5px !important; }
.yc-v3-shell .ios-panel-heading { min-height: 56px; padding-bottom: 14px !important; border-bottom: 1px solid #edf1f5; }
.yc-v3-shell .ios-readiness-panel,
.yc-v3-shell .ios-recent-panel { min-height: 100%; }
.yc-v3-shell .ios-recent-row { border-radius: 0 !important; border-bottom: 1px solid #edf1f5 !important; }

/* iOS release center: one linear workflow, without duplicated dashboards. */
.yc-v3-shell.yc-page-ios_install .ios-signing-hero { margin-bottom: 14px !important; }
.yc-v3-shell .ios-release-console { padding: 0 !important; overflow: hidden; }
.yc-v3-shell .ios-release-console-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--v3-line); }
.yc-v3-shell .ios-release-console-head span,
.yc-v3-shell .ios-stage-heading > div > span { display: block; margin-bottom: 4px; color: #8b96a6; font-size: 11px; font-weight: 900; }
.yc-v3-shell .ios-release-console-head h3,
.yc-v3-shell .ios-stage-heading h3 { margin: 0; }
.yc-v3-shell .ios-release-console-actions,
.yc-v3-shell .ios-stage-actions { display: flex; flex-wrap: wrap; gap: 8px; }
body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-certificate-upload-primary { background: #176b52 !important; border-color: #176b52 !important; color: #fff !important; }
body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-certificate-upload-primary:hover { background: #125b46 !important; border-color: #125b46 !important; }
.yc-v3-shell .ios-certificate-upload-dialog { width: min(720px, calc(100vw - 32px)); }
.yc-v3-shell .ios-modal-kicker { display: block; margin-bottom: 5px; color: #178160; font-size: 10px; font-weight: 900; }
.yc-v3-shell .ios-certificate-upload-form { display: grid; gap: 16px; }
.yc-v3-shell .ios-upload-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid #dfe6ed; border-radius: 7px; background: #f8fafb; overflow: hidden; }
.yc-v3-shell .ios-upload-guide > span { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 2px 10px; align-items: center; min-width: 0; padding: 14px; border-right: 1px solid #e3e9ef; }
.yc-v3-shell .ios-upload-guide > span:last-child { border-right: 0; }
.yc-v3-shell .ios-upload-guide i { grid-row: 1 / 3; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 6px; background: #e8f4ef; color: #176b52; }
.yc-v3-shell .ios-upload-guide b,
.yc-v3-shell .ios-upload-guide small { display: block; min-width: 0; }
.yc-v3-shell .ios-upload-guide small { color: #83909f; font-size: 11px; }
.yc-v3-shell .ios-certificate-drop { padding: 15px; border: 1px dashed #aebdca; border-radius: 7px; background: #fbfcfd; }
.yc-v3-shell .ios-certificate-drop small { display: block; margin-top: 7px; color: #7d8998; }
body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-upload-submit { min-height: 48px !important; background: #176b52 !important; border-color: #176b52 !important; color: #fff !important; }
.yc-v3-shell .ios-clean-workspace { margin-top: 14px; }
.yc-v3-shell .ios-stage-panel { padding: 0 !important; overflow: hidden; }
.yc-v3-shell .ios-stage-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px; border-bottom: 1px solid var(--v3-line); }
.yc-v3-shell .ios-stage-heading p { margin: 5px 0 0; color: #7f8a99; }
.yc-v3-shell .ios-stage-panel > .table-wrap { margin: 18px 20px 20px !important; }
.yc-v3-shell .ios-identity-search { display: flex; align-items: center; gap: 9px; margin: 18px 20px 0; padding: 0 13px; height: 44px; border: 1px solid var(--v3-line); border-radius: 6px; background: #fbfcfe; color: #8490a0; }
.yc-v3-shell .ios-identity-search input { width: 100%; border: 0 !important; outline: 0; background: transparent !important; box-shadow: none !important; }
.yc-v3-shell .ios-identity-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(390px, 1fr)); gap: 12px; padding: 18px 20px 20px; }
.yc-v3-shell .ios-identity-card { border: 1px solid var(--v3-line); border-radius: 7px; background: #fff; overflow: hidden; }
.yc-v3-shell .ios-identity-user { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 15px; border-bottom: 1px solid #edf1f5; background: #fbfcfe; }
.yc-v3-shell .ios-identity-user img,
.yc-v3-shell .ios-identity-user > span { width: 44px; height: 44px; border-radius: 7px; object-fit: cover; display: grid; place-items: center; background: #e7edf5; color: #34475f; font-weight: 900; }
.yc-v3-shell .ios-identity-user b,
.yc-v3-shell .ios-identity-user small { display: block; }
.yc-v3-shell .ios-identity-user small { margin-top: 3px; color: #8a95a4; }
.yc-v3-shell .ios-identity-user em { color: #5c697b; font-size: 12px; font-style: normal; }
.yc-v3-shell .ios-identity-card dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.yc-v3-shell .ios-identity-card dl > div { min-width: 0; padding: 13px 15px; border-right: 1px solid #edf1f5; border-bottom: 1px solid #edf1f5; }
.yc-v3-shell .ios-identity-card dl > div:nth-child(2n) { border-right: 0; }
.yc-v3-shell .ios-identity-card dt { color: #8a95a4; font-size: 11px; }
.yc-v3-shell .ios-identity-card dd { margin: 6px 0 0; overflow-wrap: anywhere; font-size: 13px; }
.yc-v3-shell .ios-identity-card dd small { display: block; margin-top: 5px; color: #8994a3; }
.yc-v3-shell .ios-identity-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 13px 15px; }
.yc-v3-shell .ios-signing-readiness { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 18px 20px 0; }
.yc-v3-shell .ios-signing-readiness > div { display: flex; align-items: center; gap: 11px; padding: 14px; border: 1px solid var(--v3-line); border-radius: 6px; background: #fbfcfe; }
.yc-v3-shell .ios-signing-readiness > div.needs-action { border-color: #edcf9e; background: #fffaf2; }
.yc-v3-shell .ios-signing-readiness b,
.yc-v3-shell .ios-signing-readiness small { display: block; }
.yc-v3-shell .ios-signing-readiness small { margin-top: 3px; color: #8a95a4; }
.yc-v3-shell .ios-stage-panel > .ios-record-list { padding: 18px 20px 20px; }
.yc-v3-shell .ios-install-center-card { margin: 18px 20px 0; padding: 18px; border: 1px solid #cfd9e5; border-radius: 7px; background: #f7fafc; }
.yc-v3-shell .ios-install-center-card > div { display: flex; align-items: center; gap: 14px; }
.yc-v3-shell .ios-install-center-icon { flex: 0 0 48px; height: 48px; display: grid; place-items: center; border-radius: 7px; background: #173b5d; color: #fff; font-size: 20px; }
.yc-v3-shell .ios-install-center-card b { font-size: 15px; }
.yc-v3-shell .ios-install-center-card p { margin: 5px 0 0; color: #748194; line-height: 1.6; }
.yc-v3-shell .ios-install-center-card label { display: flex; align-items: center; gap: 10px; margin-top: 15px; padding: 8px 8px 8px 12px; border: 1px solid #dbe3ec; border-radius: 6px; background: #fff; }
.yc-v3-shell .ios-install-center-card label span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

/* Protocol workbench uses expandable records instead of a long form wall. */
.yc-v3-shell.yc-page-protocols .ops2-data-panel { padding: 0 !important; overflow: hidden; }
.yc-v3-shell.yc-page-protocols .ops2-data-panel > .card-header-inline { margin: 0 !important; padding: 18px 20px !important; }
.yc-v3-shell .ops2-protocol-item { margin: 0 20px 10px !important; border: 1px solid var(--v3-line) !important; overflow: hidden; }
.yc-v3-shell .ops2-protocol-item:last-child { margin-bottom: 20px !important; }
.yc-v3-shell .ops2-protocol-item > summary { padding: 0 16px !important; background: #fbfcfe !important; }
.yc-v3-shell .ops2-protocol-item[open] > summary { border-bottom: 1px solid var(--v3-line) !important; background: #f5f9f7 !important; }
.yc-v3-shell .ops2-protocol-form { padding: 18px !important; }
.yc-v3-shell .protocol-group { border-radius: 7px !important; background: #fff !important; }
.yc-v3-shell.yc-page-protocol_parser .ops2-parser-guide { position: sticky; top: 16px; }
.yc-v3-shell .ops2-parser-guide .kv-grid { grid-template-columns: 1fr !important; }
.yc-v3-shell .result-grid > div,
.yc-v3-shell .kv { border-radius: 6px !important; background: #f8fafc !important; }

/* Account and audit pages emphasize permissions and traceability. */
.yc-v3-shell.yc-page-admins .admin-list-card { padding: 0 !important; overflow: hidden; }
.yc-v3-shell.yc-page-admins .admin-list-card > .card-header-inline { margin: 0 !important; padding: 18px 20px !important; }
.yc-v3-shell.yc-page-admins .admin-account-list { padding: 0 20px 20px !important; }
.yc-v3-shell .admin-account-card { border-left: 3px solid #738095 !important; }
.yc-v3-shell .admin-avatar { width: 44px !important; height: 44px !important; border-radius: 7px !important; }
.yc-v3-shell .permission-switch { border-radius: 6px !important; background: #f8fafc !important; }
.yc-v3-shell.yc-page-logs .ops2-command-bar { display: grid !important; grid-template-columns: minmax(280px, .75fr) minmax(420px, 1.25fr) !important; align-items: end; gap: 18px; }
.yc-v3-shell.yc-page-logs .ops2-command-bar .work-card-head { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.yc-v3-shell.yc-page-logs .ops2-data-panel { padding: 0 !important; overflow: hidden; }
.yc-v3-shell.yc-page-logs .ops2-data-panel > .card-header-inline { margin: 0 !important; padding: 18px 20px !important; }
.yc-v3-shell.yc-page-logs .ops2-data-panel > .table-wrap { margin: 0 20px 20px !important; }

/* User service desk separates identity, telemetry and destructive controls. */
.yc-v3-shell.yc-page-user_view .user-detail-profile { padding: 0 !important; overflow: hidden; }
.yc-v3-shell .user-detail-head { padding: 18px 20px !important; border-bottom: 1px solid var(--v3-line) !important; background: #fbfcfe !important; }
.yc-v3-shell .user-detail-profile > .info-grid { padding: 18px 20px !important; }
.yc-v3-shell .mqtt-summary-card,
.yc-v3-shell .history-point-panel { border: 1px solid var(--v3-line) !important; border-radius: 7px !important; background: #f8fafc !important; box-shadow: none !important; }
.yc-v3-shell .history-point-panel.is-track { border-left: 3px solid var(--v3-blue) !important; }
.yc-v3-shell .history-point-panel.is-curve { border-left: 3px solid var(--v3-green) !important; }
.yc-v3-shell .vehicle-location-main { overflow: hidden; border-radius: 7px !important; }
.yc-v3-shell .user-control-panel { border-left: 3px solid var(--v3-amber) !important; }
.yc-v3-shell .command-history-panel > summary { min-height: 60px; padding: 0 18px !important; }

/* DIY library behaves like an asset manager, not a stack of unrelated forms. */
.yc-v3-shell.yc-page-vehicles .app-diy-type-tabs { position: sticky; top: 8px; z-index: 4; padding: 6px !important; }
.yc-v3-shell .app-diy-type-tabs a { border-radius: 5px !important; }
.yc-v3-shell .yc-page-toolbar { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 14px !important; padding: 14px 18px !important; }
.yc-v3-shell .app-diy-library,
.yc-v3-shell .app-diy-groups-panel { padding: 0 !important; overflow: hidden; }
.yc-v3-shell .app-diy-library > .card-header-inline,
.yc-v3-shell .app-diy-groups-panel > .card-header-inline { margin: 0 !important; padding: 18px 20px !important; }
.yc-v3-shell .app-diy-library > .app-diy-theme-grid,
.yc-v3-shell .app-diy-library > .vehicle-theme-grid,
.yc-v3-shell .app-diy-library > .app-diy-builtin-grid,
.yc-v3-shell .app-diy-groups-panel > .app-diy-group-list { padding: 0 20px 20px !important; }
.yc-v3-shell .app-diy-art,
.yc-v3-shell .vehicle-theme-art { border-radius: 6px 6px 0 0 !important; }

/* WeChat operations keep configuration, bindings and delivery logs in one flow. */
.yc-v3-shell.yc-page-wechat_official .push-overview-card { padding: 0 !important; overflow: hidden; }
.yc-v3-shell.yc-page-wechat_official .push-overview-card > .work-card-head { margin: 0 !important; padding: 18px 20px !important; }
.yc-v3-shell.yc-page-wechat_official .push-overview-card > .status-grid { padding: 0 20px 20px !important; }
.yc-v3-shell.yc-page-wechat_official > .wrapper .content .card:not(.push-overview-card) { overflow: hidden; }

@media (max-width: 1280px) {
  .yc-v3-shell .ops2-hero,
  .yc-v3-shell .ops2-hero.has-four { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .yc-v3-shell .ops2-hero-copy { grid-column: 1 / -1 !important; min-height: 116px !important; }
  .yc-v3-shell .ops2-hero.has-four .ops2-metric:last-child { grid-column: span 3; }
  .yc-v3-shell .user-row-topline { grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr) !important; }
  .yc-v3-shell .user-row-topline > .yc-row-top-actions { grid-column: 1 / -1; padding-top: 8px; border-top: 1px dashed var(--v3-line); }
  .yc-v3-shell .push-overview-card .status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 980px) {
  .yc-v3-shell .wrapper,
  .yc-v3-shell .wrapper.yc-sidebar-collapsed { grid-template-columns: 1fr !important; grid-template-rows: auto minmax(0, 1fr) auto !important; }
  .yc-v3-shell .main-sidebar { position: fixed !important; top: 64px !important; bottom: 0 !important; left: 0 !important; z-index: 1300 !important; display: none !important; width: min(286px, 86vw) !important; }
  .yc-v3-shell .wrapper.yc-sidebar-collapsed .main-sidebar { display: block !important; }
  .yc-v3-shell .main-sidebar .brand-link { display: none !important; }
  .yc-v3-shell .sidebar { height: calc(100vh - 64px) !important; }
  .yc-v3-shell .content-wrapper { grid-column: 1 !important; grid-row: 2 !important; }
  .yc-v3-shell .main-footer { grid-column: 1 !important; grid-row: 3 !important; }
  .yc-v3-page-intro { align-items: flex-start; flex-direction: column; gap: 12px; }
  .yc-v3-page-controls,
  .yc-v3-context-nav { width: 100%; }
  .yc-v3-context-nav { flex: 1; }
  .yc-v3-shell .content-workflow { grid-template-columns: 1fr !important; }
  body.yc-element-shell.yc-v3-shell .content-module-grid { grid-column: 1; flex-direction: row !important; overflow-x: auto; border-right: 0 !important; border-bottom: 1px solid var(--v3-line) !important; }
  body.yc-element-shell.yc-v3-shell button.content-module-card { min-width: 190px !important; }
  .yc-v3-shell .content-module-panels,
  .yc-v3-shell .content-official-panel { grid-column: 1; }
  .yc-v3-shell .app-diy-form,
  .yc-v3-shell .ops2-parser-layout { grid-template-columns: 1fr !important; }
  .yc-v3-shell.yc-page-devices .ops2-command-bar,
  .yc-v3-shell.yc-page-logs .ops2-command-bar { grid-template-columns: 1fr !important; }
  .yc-v3-shell .ios-release-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .yc-v3-shell.yc-page-firmware .ops2-workflow-strip,
  .yc-v3-shell.yc-page-wechat_official .ops2-workflow-strip { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .yc-v3-shell .ops2-workflow-strip > div:nth-child(2) { border-right: 0 !important; }
  .yc-v3-shell .ops2-workflow-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--v3-line) !important; }
}

@media (max-width: 720px) {
  .yc-v3-shell .yc-topbar { height: 64px !important; padding: 0 12px !important; }
  .yc-v3-shell .yc-top-status,
  .yc-v3-shell .yc-top-admin { display: none !important; }
  .yc-v3-shell .yc-page-head,
  .yc-v3-shell .content { padding-left: 12px !important; padding-right: 12px !important; }
  .yc-v3-page-identity { align-items: flex-start; }
  .yc-v3-page-icon { width: 42px; height: 42px; }
  .yc-v3-shell .yc-page-copy h1 { font-size: 21px !important; }
  .yc-v3-shell .ops2-hero,
  .yc-v3-shell .ops2-hero.has-four { grid-template-columns: 1fr !important; }
  .yc-v3-shell .ops2-hero-copy,
  .yc-v3-shell .ops2-hero.has-four .ops2-metric:last-child { grid-column: 1 !important; }
  .yc-v3-shell .ops2-metric { min-height: 96px !important; border-left: 0 !important; border-top-width: 1px !important; }
  .yc-v3-shell .ops2-filter-row,
  .yc-v3-shell .ios-command-header { align-items: stretch !important; flex-direction: column !important; }
  body.yc-element-shell.yc-v3-shell .ops2-protocol-toolbar { align-items: stretch !important; flex-direction: column !important; }
  .yc-v3-shell .ops2-search { width: 100%; min-width: 0 !important; }
  .yc-v3-shell .user-row-topline { grid-template-columns: 1fr !important; }
  .yc-v3-shell .user-row-topline > .yc-row-top-actions { grid-column: 1; justify-content: flex-start; }
  .yc-v3-shell .admin-account-list,
  .yc-v3-shell .ios-record-list { grid-template-columns: 1fr !important; }
  .yc-v3-shell .push-overview-card .status-grid { grid-template-columns: 1fr !important; }
  body.yc-element-shell.yc-v3-shell button.content-module-card { min-width: 168px !important; }
  .yc-v3-shell .content-module-panels,
  .yc-v3-shell .content-official-panel { padding: 14px !important; }
  .yc-v3-shell .ios-release-metrics,
  .yc-v3-shell.yc-page-firmware .ops2-workflow-strip,
  .yc-v3-shell.yc-page-wechat_official .ops2-workflow-strip { grid-template-columns: 1fr !important; }
  .yc-v3-shell .ops2-workflow-strip > div { border-right: 0 !important; border-bottom: 1px solid var(--v3-line) !important; }
  .yc-v3-shell .ops2-workflow-strip > div:last-child { border-bottom: 0 !important; }
  .yc-v3-shell.yc-page-ios_install .ios-command-header { grid-template-columns: 44px minmax(0, 1fr) !important; }
  .yc-v3-shell .ios-command-actions { grid-column: 1 / -1; justify-content: flex-start !important; }
  .yc-v3-shell .ios-workspace-tabs { overflow-x: auto; }
  .yc-v3-shell .ios-workspace-tabs .ios-nav-control { flex: 0 0 160px; }
  .yc-v3-shell .ios-release-console-head,
  .yc-v3-shell .ios-stage-heading { align-items: flex-start; flex-direction: column; }
  .yc-v3-shell .ios-release-console-actions,
  .yc-v3-shell .ios-stage-actions { width: 100%; }
  body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-release-console-actions > a,
  body.yc-element-shell.yc-v3-shell.yc-page-ios_install .ios-release-console-actions > button { flex: 1 1 180px; justify-content: center; }
  .yc-v3-shell .ios-upload-guide { grid-template-columns: 1fr; }
  .yc-v3-shell .ios-upload-guide > span { border-right: 0; border-bottom: 1px solid #e3e9ef; }
  .yc-v3-shell .ios-upload-guide > span:last-child { border-bottom: 0; }
  .yc-v3-shell .ios-identity-grid,
  .yc-v3-shell .ios-signing-readiness { grid-template-columns: 1fr; }
  .yc-v3-shell .ios-identity-card dl { grid-template-columns: 1fr; }
  .yc-v3-shell .ios-identity-card dl > div { border-right: 0; }
  .yc-v3-shell .ios-install-center-card label { align-items: stretch; flex-direction: column; }
  .yc-v3-shell .yc-page-toolbar { align-items: stretch !important; flex-direction: column !important; }
}

/* Final workflow overrides */
.yc-v3-shell .ios-release-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.yc-v3-shell .permission-switch-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.yc-v3-shell .protocol-fields { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.yc-v3-shell .result-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 1040px) {
  .yc-v3-shell .permission-switch-grid,
  .yc-v3-shell .protocol-fields,
  .yc-v3-shell .result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 720px) {
  .yc-v3-shell .permission-switch-grid,
  .yc-v3-shell .protocol-fields,
  .yc-v3-shell .result-grid { grid-template-columns: 1fr !important; }
}

/* Traffic account editor: use the full workspace instead of nesting the form in one grid cell. */
body.yc-element-shell.yc-v3-shell.yc-page-content [data-content-module-panel="content-traffic"] .content-panel-body {
  padding: 22px !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  margin: 0 0 18px !important;
  border: 1px solid #dfe5ed !important;
  border-radius: 8px !important;
  background: #f8fafc !important;
  overflow: hidden !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary > div {
  min-width: 0 !important;
  padding: 14px 16px !important;
  border-right: 1px solid #e4e9f0 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary > div:last-child {
  border-right: 0 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary span,
body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary b {
  display: block !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary span {
  margin-bottom: 4px !important;
  color: #7c8796 !important;
  font-size: 12px !important;
  font-weight: 750 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary b {
  color: #1f2937 !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-list {
  display: grid !important;
  gap: 16px !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row {
  display: block !important;
  padding: 0 !important;
  border: 1px solid #d9e1eb !important;
  border-radius: 8px !important;
  background: #fff !important;
  overflow: hidden !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  min-height: 66px !important;
  padding: 12px 18px !important;
  border-bottom: 1px solid #e6ebf1 !important;
  background: #f8fafc !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row-head > div {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 0 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row-head > div > i {
  width: 38px !important;
  height: 38px !important;
  display: grid !important;
  place-items: center !important;
  flex: 0 0 38px !important;
  border-radius: 7px !important;
  background: #e9f2ff !important;
  color: #2563eb !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row-head b,
body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row-head small {
  display: block !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row-head b {
  color: #1f2937 !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row-head small {
  margin-top: 3px !important;
  color: #7b8796 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-row-head [data-iot-account-remove] {
  width: 40px !important;
  min-width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 !important;
  border: 1px solid #fecdd3 !important;
  border-radius: 7px !important;
  background: #fff1f2 !important;
  color: #e11d48 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px 22px !important;
  width: 100% !important;
  padding: 22px !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields .field {
  min-width: 0 !important;
  margin: 0 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields .field-span-2 {
  grid-column: 1 / -1 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields label {
  display: block !important;
  margin: 0 0 8px !important;
  color: #334155 !important;
  font-size: 13px !important;
  font-weight: 850 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields input,
body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields textarea {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  padding: 12px 14px !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 7px !important;
  background: #fff !important;
  color: #172033 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields textarea {
  min-height: 116px !important;
  resize: vertical !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important;
  line-height: 1.55 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-enabled {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-height: 56px !important;
  margin: 0 !important;
  padding: 12px 22px !important;
  border-top: 1px solid #e6ebf1 !important;
  background: #fbfcfe !important;
  color: #334155 !important;
  font-size: 13px !important;
  font-weight: 850 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-enabled input[type="checkbox"] {
  width: 19px !important;
  height: 19px !important;
  min-height: 19px !important;
  margin: 0 !important;
  accent-color: #2563eb !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-query-tester {
  margin-top: 20px !important;
  padding-top: 20px !important;
  border-top: 1px solid #e2e8f0 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-query-tester-head h4 {
  margin: 0 !important;
  color: #1f2937 !important;
  font-size: 16px !important;
  font-weight: 900 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-query-tester-head span {
  display: block !important;
  margin-top: 5px !important;
  color: #7b8796 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-query-tester-form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 10px !important;
  margin-top: 14px !important;
}

body.yc-element-shell.yc-v3-shell.yc-page-content .iot-query-tester-form input,
body.yc-element-shell.yc-v3-shell.yc-page-content .iot-query-tester-form button {
  min-height: 50px !important;
}

@media (max-width: 1100px) {
  body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields {
    grid-template-columns: 1fr !important;
  }

  body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields .field-span-2 {
    grid-column: 1 !important;
  }
}

@media (max-width: 720px) {
  body.yc-element-shell.yc-v3-shell.yc-page-content [data-content-module-panel="content-traffic"] .content-panel-title {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  body.yc-element-shell.yc-v3-shell.yc-page-content [data-content-module-panel="content-traffic"] .content-panel-actions,
  body.yc-element-shell.yc-v3-shell.yc-page-content [data-content-module-panel="content-traffic"] .content-panel-actions button {
    width: 100% !important;
  }

  body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary {
    grid-template-columns: 1fr !important;
  }

  body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary > div {
    border-right: 0 !important;
    border-bottom: 1px solid #e4e9f0 !important;
  }

  body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-summary > div:last-child {
    border-bottom: 0 !important;
  }

  body.yc-element-shell.yc-v3-shell.yc-page-content .iot-account-fields {
    padding: 16px !important;
  }

  body.yc-element-shell.yc-v3-shell.yc-page-content .iot-query-tester-form {
    grid-template-columns: 1fr !important;
  }
}
