:root {
  --yy-canvas: #eef4f9;
  --yy-canvas-strong: #e2ebf4;
  --yy-surface: #ffffff;
  --yy-surface-muted: #f6f9fc;
  --yy-border: #d4e0eb;
  --yy-border-strong: #b7c9d8;
  --yy-text: #1d2b3a;
  --yy-text-soft: #526779;
  --yy-text-muted: #7a8b9a;
  --yy-primary: #1769b0;
  --yy-primary-dark: #124d83;
  --yy-primary-soft: #e7f1fb;
  --yy-navy: #102c46;
  --yy-navy-soft: #1a466b;
  --yy-info: #2878c7;
  --yy-info-soft: #eaf4ff;
  --yy-success: #147da8;
  --yy-success-soft: #e8f5fb;
  --yy-warning: #b56b18;
  --yy-warning-soft: #fff3df;
  --yy-danger: #c1434d;
  --yy-danger-soft: #fcecef;
  --yy-gold: #d3a13a;
  --yy-gold-soft: #fff5d9;
  --yy-shadow: 0 5px 18px rgba(16, 44, 70, .09);
  --el-color-primary: #1769b0;
  --el-color-primary-rgb: 23, 105, 176;
  --el-color-primary-light-3: #5b98c8;
  --el-color-primary-light-5: #8bb7da;
  --el-color-primary-light-7: #bbd5e9;
  --el-color-primary-light-8: #d4e5f3;
  --el-color-primary-light-9: #e8f2fa;
  --el-color-primary-dark-2: #124d83;
  --el-color-success: #147da8;
  --el-color-warning: #b56b18;
  --el-color-danger: #c1434d;
  --el-color-error: #c1434d;
  --el-border-radius-base: 6px;
  --el-border-radius-small: 4px;
  --el-border-color: #d4e0eb;
  --el-border-color-light: #e1e9f0;
  --el-border-color-lighter: #edf3f7;
  --el-fill-color-light: #f2f6fa;
  --el-fill-color-lighter: #f7fafc;
  --el-bg-color-page: #eef4f9;
  --el-text-color-primary: #1d2b3a;
  --el-text-color-regular: #43576a;
  --el-text-color-secondary: #708394;
}

html.yy-theme-v2,
html.yy-theme-v2 body,
html.yy-theme-v2 #app {
  background: var(--yy-canvas);
  color: var(--yy-text);
  letter-spacing: 0;
}

/* Shared controls */
html.yy-theme-v2 .el-card {
  border-color: var(--yy-border);
  border-radius: 8px;
  box-shadow: var(--yy-shadow);
}

html.yy-theme-v2 .el-button {
  border-radius: 6px;
  font-weight: 700;
}

html.yy-theme-v2 .el-button--primary {
  --el-button-bg-color: var(--yy-primary);
  --el-button-border-color: var(--yy-primary);
  --el-button-hover-bg-color: #2a7fc4;
  --el-button-hover-border-color: #2a7fc4;
  --el-button-active-bg-color: var(--yy-primary-dark);
  --el-button-active-border-color: var(--yy-primary-dark);
}

html.yy-theme-v2 .el-button--success {
  --el-button-bg-color: var(--yy-success);
  --el-button-border-color: var(--yy-success);
}

html.yy-theme-v2 .el-button--danger {
  --el-button-bg-color: var(--yy-danger);
  --el-button-border-color: var(--yy-danger);
}

html.yy-theme-v2 .el-input__wrapper,
html.yy-theme-v2 .el-select__wrapper,
html.yy-theme-v2 .el-textarea__inner {
  border-radius: 6px;
}

html.yy-theme-v2 .el-input__wrapper.is-focus,
html.yy-theme-v2 .el-select__wrapper.is-focused {
  box-shadow: 0 0 0 1px var(--yy-primary) inset;
}

html.yy-theme-v2 .el-tabs__active-bar {
  background-color: var(--yy-primary);
}

html.yy-theme-v2 .el-tabs__item.is-active,
html.yy-theme-v2 .el-tabs__item:hover {
  color: var(--yy-primary);
}

html.yy-theme-v2 .el-dropdown-menu__item:not(.is-disabled):focus,
html.yy-theme-v2 .el-dropdown-menu__item:not(.is-disabled):hover {
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .el-table,
html.yy-theme-v2 .el-table-v2 {
  --el-table-header-bg-color: #e8f0f7;
  --el-table-row-hover-bg-color: #f0f7fd;
  --el-table-border-color: #dce6ee;
}

html.yy-theme-v2 .el-table th.el-table__cell,
html.yy-theme-v2 .el-table-v2__header-cell {
  background: #e8f0f7;
  color: #43586b;
  font-weight: 800;
}

html.yy-theme-v2 .el-table__body tr:nth-child(even) > td.el-table__cell,
html.yy-theme-v2 .el-table-v2__row:nth-child(even) .el-table-v2__row-cell {
  background: #fbfdff;
}

html.yy-theme-v2 .el-dialog,
html.yy-theme-v2 .el-drawer {
  border: 1px solid var(--yy-border);
  border-radius: 8px;
  box-shadow: 0 20px 52px rgba(16, 44, 70, .2);
}

/* Desktop shell */
html.yy-theme-v2 .next-shell {
  background: var(--yy-canvas);
}

html.yy-theme-v2 .next-side {
  background: var(--yy-navy);
  border-right: 1px solid #285273;
  box-shadow: 6px 0 20px rgba(16, 44, 70, .12);
}

html.yy-theme-v2 .brand-mark,
html.yy-theme-v2 .brand-mark.small {
  background: var(--yy-gold);
  color: #263b50;
  box-shadow: none;
}

html.yy-theme-v2 .next-brand {
  border-bottom-color: rgba(255, 255, 255, .13);
}

html.yy-theme-v2 .next-brand span {
  color: #b9cede;
}

html.yy-theme-v2 .next-menu .el-menu-item {
  border-radius: 6px;
  color: #d2e0ed;
}

html.yy-theme-v2 .next-menu .el-menu-item:hover {
  background: rgba(255, 255, 255, .09);
  color: #ffffff;
}

html.yy-theme-v2 .next-menu .el-menu-item.is-active {
  background: linear-gradient(90deg, #1b73bd 0%, #2a88ce 100%);
  color: #ffffff;
  box-shadow: inset 3px 0 0 #8cc8f4;
}

html.yy-theme-v2 .next-menu .el-menu-item.is-active .nav-dot {
  color: #ffffff;
}

html.yy-theme-v2 .sidebar-toggle {
  border-color: rgba(255, 255, 255, .24);
  border-radius: 6px;
  background: rgba(255, 255, 255, .08);
  color: #d6e3ed;
}

html.yy-theme-v2 .sidebar-toggle:hover {
  background: var(--yy-primary);
  color: #ffffff;
  transform: none;
}

html.yy-theme-v2 .next-top {
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid var(--yy-border);
  box-shadow: 0 2px 10px rgba(16, 44, 70, .06);
}

html.yy-theme-v2 .next-top::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: var(--yy-primary);
  content: "";
}

html.yy-theme-v2 .next-main {
  background: var(--yy-canvas);
}

html.yy-theme-v2 .compact-card {
  border-color: var(--yy-border);
  border-radius: 8px;
  box-shadow: var(--yy-shadow) !important;
}

html.yy-theme-v2 .compact-card > .el-card__header {
  background: #fbfdff;
  border-bottom-color: var(--yy-border);
}

html.yy-theme-v2 .main-tabs-next > .el-tabs__header {
  padding: 0 10px;
  border: 1px solid var(--yy-border);
  border-radius: 8px;
  background: var(--yy-surface);
}

html.yy-theme-v2 .main-tabs-next .el-tabs__nav-wrap::after {
  background: transparent;
}

html.yy-theme-v2 .main-tabs-next .el-tabs__item {
  height: 44px;
  color: var(--yy-text-soft);
  font-weight: 800;
}

html.yy-theme-v2 .main-tabs-next .el-tabs__item.is-active {
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .group-title-link.el-button,
html.yy-theme-v2 .task-virtual-log b {
  color: var(--yy-primary);
}

html.yy-theme-v2 .mini-stats-line {
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .task-virtual-status.info,
html.yy-theme-v2 .task-virtual-status.primary {
  background: var(--yy-info-soft);
  color: var(--yy-info);
}

html.yy-theme-v2 .task-virtual-status.success {
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .task-virtual-status.warning {
  background: var(--yy-warning-soft);
  color: var(--yy-warning);
}

html.yy-theme-v2 .task-virtual-status.danger,
html.yy-theme-v2 .task-virtual-error {
  background: var(--yy-danger-soft);
  color: var(--yy-danger);
}

html.yy-theme-v2 .task-virtual-progress,
html.yy-theme-v2 .old-progress,
html.yy-theme-v2 .m-progress {
  background: #dce8f2;
}

html.yy-theme-v2 .task-virtual-progress i,
html.yy-theme-v2 .old-progress i,
html.yy-theme-v2 .m-progress i {
  background: var(--yy-primary);
}

html.yy-theme-v2 .task-virtual-action,
html.yy-theme-v2 .task-virtual-more,
html.yy-theme-v2 .task-page-button {
  border-color: var(--yy-border-strong);
  border-radius: 5px;
  background: var(--yy-surface);
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .task-virtual-action:hover:not(:disabled),
html.yy-theme-v2 .task-virtual-more:hover,
html.yy-theme-v2 .task-page-button:hover:not(:disabled) {
  border-color: #75add8;
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .task-virtual-action.start {
  border-color: #86b9df;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .task-virtual-action.stop {
  border-color: #efbcc1;
  background: var(--yy-danger-soft);
  color: var(--yy-danger);
}

html.yy-theme-v2 .summary-grid > .el-card:nth-child(4n + 1) {
  border-top: 3px solid var(--yy-primary);
}

html.yy-theme-v2 .summary-grid > .el-card:nth-child(4n + 2) {
  border-top: 3px solid var(--yy-info);
}

html.yy-theme-v2 .summary-grid > .el-card:nth-child(4n + 3) {
  border-top: 3px solid var(--yy-gold);
}

html.yy-theme-v2 .summary-grid > .el-card:nth-child(4n + 4) {
  border-top: 3px solid var(--yy-success);
}

html.yy-theme-v2 .settings-menu-next .el-menu-item {
  border-radius: 6px;
}

html.yy-theme-v2 .settings-menu-next .el-menu-item.is-active {
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .settings-menu-next .el-menu-item.is-active span {
  color: var(--yy-primary);
}

/* Desktop enhancement dialogs */
html.yy-theme-v2 .yy-group-overlay,
html.yy-theme-v2 .yy-npc-dialogue-overlay {
  background: rgba(11, 38, 67, .52);
}

html.yy-theme-v2 .yy-group-dialog {
  border: 1px solid var(--yy-border);
  border-radius: 8px;
  box-shadow: 0 20px 54px rgba(11, 38, 67, .24);
  color: var(--yy-text);
}

html.yy-theme-v2 .yy-group-dialog-head {
  border-bottom-color: var(--yy-border);
  background: #f4f8fc;
}

html.yy-theme-v2 .yy-group-close,
html.yy-theme-v2 .yy-group-btn {
  border-color: var(--yy-border-strong);
  border-radius: 6px;
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .yy-group-btn.primary {
  border-color: var(--yy-primary);
  background: var(--yy-primary);
  color: #ffffff;
}

html.yy-theme-v2 .yy-group-btn.success {
  border-color: var(--yy-success);
  background: var(--yy-success);
}

html.yy-theme-v2 .yy-group-btn.warn {
  border-color: #e6c184;
  background: var(--yy-warning-soft);
  color: var(--yy-warning);
}

html.yy-theme-v2 .yy-group-btn.danger {
  border-color: #efbcc1;
  background: #ffffff;
  color: var(--yy-danger);
}

html.yy-theme-v2 .yy-group-segments button.active {
  border-color: var(--yy-primary);
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .yy-group-chip.master {
  border-color: #bbd2ed;
  background: var(--yy-info-soft);
  color: var(--yy-info);
}

html.yy-theme-v2 .yy-group-chip.assistant {
  border-color: #9bc4e2;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

/* Mobile shell */
html.yy-theme-v2 .mobile-shell,
html.yy-theme-v2 .old-mobile {
  background: var(--yy-canvas);
  color: var(--yy-text);
}

html.yy-theme-v2 .old-mobile .old-top,
html.yy-theme-v2 .mobile-top,
html.yy-theme-v2 .mobile-log-head,
html.yy-theme-v2 .old-log-head {
  background: var(--yy-navy);
  border-bottom-color: #2f6695;
  color: #ffffff;
  box-shadow: 0 3px 12px rgba(16, 55, 91, .2);
}

html.yy-theme-v2 .old-top-title b,
html.yy-theme-v2 .mobile-top b,
html.yy-theme-v2 .mobile-log-title b {
  color: #ffffff;
}

html.yy-theme-v2 .old-top-title span,
html.yy-theme-v2 .mobile-top span,
html.yy-theme-v2 .mobile-log-title span {
  color: #b9d4e9;
}

html.yy-theme-v2 .old-brand {
  border-radius: 6px;
  background: var(--yy-primary);
  color: #ffffff;
}

html.yy-theme-v2 .m-old-btn,
html.yy-theme-v2 .m-old-back,
html.yy-theme-v2 .m-text-btn,
html.yy-theme-v2 .m-icon-btn {
  border-color: rgba(255, 255, 255, .32);
  border-radius: 6px;
  background: rgba(255, 255, 255, .1);
  color: #ffffff;
}

html.yy-theme-v2 .m-old-btn.primary {
  border-color: #7cb8e7;
  background: var(--yy-primary);
  color: #ffffff;
}

html.yy-theme-v2 .old-filter-row input,
html.yy-theme-v2 .old-filter-row select,
html.yy-theme-v2 .old-form-line input:not([type="checkbox"]),
html.yy-theme-v2 .old-form-line select,
html.yy-theme-v2 .m-log-tools input,
html.yy-theme-v2 .m-log-tools select,
html.yy-theme-v2 .m-search-row input,
html.yy-theme-v2 .m-search-row select,
html.yy-theme-v2 .m-form-line input:not([type="checkbox"]),
html.yy-theme-v2 .m-form-line select {
  border-color: var(--yy-border-strong);
  border-radius: 6px;
  color: var(--yy-text);
}

html.yy-theme-v2 .old-filter-row input:focus,
html.yy-theme-v2 .old-filter-row select:focus,
html.yy-theme-v2 .old-form-line input:focus,
html.yy-theme-v2 .old-form-line select:focus,
html.yy-theme-v2 .m-search-row input:focus,
html.yy-theme-v2 .m-search-row select:focus {
  border-color: var(--yy-primary);
  box-shadow: 0 0 0 2px rgba(23, 105, 176, .14);
}

html.yy-theme-v2 .old-metrics div,
html.yy-theme-v2 .m-summary-row div {
  border-color: var(--yy-border);
  border-radius: 8px;
  background: var(--yy-surface);
  box-shadow: none;
}

html.yy-theme-v2 .old-metrics div:nth-child(4n + 1),
html.yy-theme-v2 .m-summary-row div:nth-child(4n + 1) {
  border-top: 3px solid var(--yy-primary);
}

html.yy-theme-v2 .old-metrics div:nth-child(4n + 2),
html.yy-theme-v2 .m-summary-row div:nth-child(4n + 2) {
  border-top: 3px solid var(--yy-info);
}

html.yy-theme-v2 .old-metrics div:nth-child(4n + 3),
html.yy-theme-v2 .m-summary-row div:nth-child(4n + 3) {
  border-top: 3px solid var(--yy-gold);
}

html.yy-theme-v2 .old-metrics div:nth-child(4n + 4),
html.yy-theme-v2 .m-summary-row div:nth-child(4n + 4) {
  border-top: 3px solid var(--yy-success);
}

html.yy-theme-v2 .old-metrics span,
html.yy-theme-v2 .m-summary-row span,
html.yy-theme-v2 .old-task-meta,
html.yy-theme-v2 .old-task-time,
html.yy-theme-v2 .old-page-info {
  color: var(--yy-text-muted);
}

html.yy-theme-v2 .old-task-row,
html.yy-theme-v2 .old-group-row,
html.yy-theme-v2 .old-setting-box,
html.yy-theme-v2 .m-card {
  border-color: var(--yy-border);
  border-radius: 8px;
  background: var(--yy-surface);
  box-shadow: 0 3px 12px rgba(16, 55, 91, .07);
}

html.yy-theme-v2 .old-task-row {
  border-left: 4px solid var(--yy-primary);
}

/* 总览只保留最新日志；任务操作统一使用任务卡的左右滑动入口。 */
html.yy-theme-v2 .mobile-home-page .old-setting-box[data-yy-mobile-latest-logs] {
  margin-top: 0;
}

html.yy-theme-v2 .mobile-home-page .old-setting-box[data-yy-mobile-latest-logs] .old-mini-row {
  cursor: pointer;
}

html.yy-theme-v2 .old-group-row {
  border-left: 4px solid var(--yy-info);
}

html.yy-theme-v2 .old-status,
html.yy-theme-v2 .m-status {
  background: #f1f6fa;
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .old-status.success,
html.yy-theme-v2 .old-status.ok,
html.yy-theme-v2 .m-status.success {
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .old-status.warning,
html.yy-theme-v2 .m-status.warning {
  background: var(--yy-warning-soft);
  color: var(--yy-warning);
}

html.yy-theme-v2 .old-status.danger,
html.yy-theme-v2 .m-status.danger {
  background: var(--yy-danger-soft);
  color: var(--yy-danger);
}

html.yy-theme-v2 .old-task-actions button,
html.yy-theme-v2 .old-group-toolbar button,
html.yy-theme-v2 .link-box button,
html.yy-theme-v2 .m-log-actions button,
html.yy-theme-v2 .old-more-panel button,
html.yy-theme-v2 .m-actions button,
html.yy-theme-v2 .m-link-card button {
  border-color: var(--yy-border-strong);
  border-radius: 6px;
  background: var(--yy-surface-muted);
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .old-task-actions button.ok,
html.yy-theme-v2 .old-group-toolbar button.ok,
html.yy-theme-v2 .m-actions button.ok {
  border-color: #86b9df;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .old-task-actions button.primary,
html.yy-theme-v2 .old-more-panel button.primary {
  border-color: #75add8;
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .old-task-actions button.danger,
html.yy-theme-v2 .old-group-toolbar button.danger,
html.yy-theme-v2 .m-log-actions button.danger,
html.yy-theme-v2 .old-more-panel button.danger,
html.yy-theme-v2 .m-actions button.danger {
  border-color: #efbcc1;
  background: var(--yy-danger-soft);
  color: var(--yy-danger);
}

html.yy-theme-v2 .old-group-toolbar button.warn {
  border-color: #e6c184;
  background: var(--yy-warning-soft);
  color: var(--yy-warning);
}

html.yy-theme-v2 .old-save,
html.yy-theme-v2 .m-save-btn {
  border-color: var(--yy-primary);
  border-radius: 6px;
  background: var(--yy-primary);
  color: #ffffff;
}

html.yy-theme-v2 .old-more-panel {
  border-top-color: var(--yy-border);
  background: #f7fafd;
}

html.yy-theme-v2 .mobile-tabs,
html.yy-theme-v2 .old-tabs {
  border-top-color: var(--yy-border-strong);
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 -5px 16px rgba(16, 55, 91, .1);
}

html.yy-theme-v2 .mobile-tabs button,
html.yy-theme-v2 .old-tabs button {
  border-radius: 6px;
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .mobile-tabs button.active,
html.yy-theme-v2 .old-tabs button.active {
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
  box-shadow: inset 0 3px 0 var(--yy-primary);
}

html.yy-theme-v2 .old-login-page,
html.yy-theme-v2 .login-page {
  background: var(--yy-canvas);
}

html.yy-theme-v2 .old-login-card,
html.yy-theme-v2 .login-card {
  border-color: var(--yy-border);
  border-radius: 8px;
  box-shadow: var(--yy-shadow);
}

html.yy-theme-v2 .old-login-logo {
  border-radius: 6px;
  background: var(--yy-primary);
}

html.yy-theme-v2 .old-login-card button:not(.old-login-secondary) {
  border-color: var(--yy-primary);
  background: var(--yy-primary);
}

html.yy-theme-v2 .old-login-card button.old-login-secondary {
  border-color: var(--yy-border-strong);
  color: var(--yy-primary);
}

/* Phase 2: dense work surfaces */
html.yy-theme-v2 .task-page-next,
html.yy-theme-v2 .group-page-next {
  color: var(--yy-text);
}

html.yy-theme-v2 .task-main-card,
html.yy-theme-v2 .group-page-next .compact-card {
  overflow: hidden;
  border-color: var(--yy-border);
  background: var(--yy-surface);
}

html.yy-theme-v2 .task-main-card > .el-card__header,
html.yy-theme-v2 .group-page-next .compact-card > .el-card__header {
  padding: 13px 16px;
  background: linear-gradient(90deg, #f5f9fd 0%, #ffffff 72%);
}

html.yy-theme-v2 .task-page-next .page-toolbar-next,
html.yy-theme-v2 .group-page-next .page-toolbar-next {
  min-height: 36px;
  gap: 10px;
}

html.yy-theme-v2 .task-page-next .compact-title,
html.yy-theme-v2 .group-page-next .compact-title {
  color: var(--yy-navy);
  font-weight: 800;
}

html.yy-theme-v2 .task-page-next .task-table-area,
html.yy-theme-v2 .group-page-next .group-member-table-area {
  border: 1px solid var(--yy-border);
  border-radius: 6px;
  background: #fbfdff;
}

html.yy-theme-v2 .task-page-next .task-virtual-table,
html.yy-theme-v2 .group-page-next .group-member-virtual-table {
  --el-table-header-bg-color: #eaf3fb;
  --el-table-row-hover-bg-color: #f1f8fe;
}

html.yy-theme-v2 .task-page-next .el-table-v2__header-cell,
html.yy-theme-v2 .group-page-next .el-table-v2__header-cell {
  border-bottom: 1px solid #cbdcea;
  background: #eaf3fb;
  color: #34556e;
  font-size: 11px;
  letter-spacing: .02em;
}

html.yy-theme-v2 .task-page-next .el-table-v2__row-cell,
html.yy-theme-v2 .group-page-next .el-table-v2__row-cell {
  border-bottom: 1px solid #edf3f7;
}

html.yy-theme-v2 .task-page-next .el-table-v2__row:hover .el-table-v2__row-cell,
html.yy-theme-v2 .group-page-next .el-table-v2__row:hover .el-table-v2__row-cell {
  background: #f4f9fd;
}

html.yy-theme-v2 .task-virtual-status.success,
html.yy-theme-v2 .old-status.success,
html.yy-theme-v2 .old-status.ok,
html.yy-theme-v2 .m-status.success,
html.yy-theme-v2 .yy-mgw-chip.green {
  border-color: #9bcfe3;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .task-virtual-action.start,
html.yy-theme-v2 .old-task-actions button.ok,
html.yy-theme-v2 .old-group-toolbar button.ok,
html.yy-theme-v2 .m-actions button.ok,
html.yy-theme-v2 .yy-mgw-btn.success {
  border-color: #9bcfe3;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .task-virtual-action.start:hover:not(:disabled),
html.yy-theme-v2 .old-task-actions button.ok:hover,
html.yy-theme-v2 .old-group-toolbar button.ok:hover,
html.yy-theme-v2 .m-actions button.ok:hover,
html.yy-theme-v2 .yy-mgw-btn.success:hover {
  border-color: #69b4d1;
  background: #dff1f8;
  color: #0d6388;
}

html.yy-theme-v2 .group-summary-grid {
  gap: 10px;
}

html.yy-theme-v2 .group-summary-grid > .el-card {
  min-height: 76px;
  border-top: 3px solid var(--yy-primary);
  background: linear-gradient(145deg, #ffffff 0%, #f5f9fd 100%);
}

html.yy-theme-v2 .group-summary-grid > .el-card:nth-child(2n) {
  border-top-color: var(--yy-info);
}

html.yy-theme-v2 .group-summary-grid > .el-card:nth-child(3n) {
  border-top-color: var(--yy-gold);
}

html.yy-theme-v2 .group-summary-grid .ok-text {
  color: var(--yy-success);
}

html.yy-theme-v2 .group-summary-grid .danger-text {
  color: var(--yy-danger);
}

html.yy-theme-v2 .group-summary-grid .warn-text {
  color: var(--yy-warning);
}

/* Plan and batch workspace */
html.yy-theme-v2 .yy-workspace-tabs {
  border-bottom-color: var(--yy-border);
  background: var(--yy-surface);
  box-shadow: 0 3px 10px rgba(16, 44, 70, .06);
}

html.yy-theme-v2 .yy-workspace-tabs button {
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .yy-workspace-tabs button:hover {
  background: #f2f7fc;
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .yy-workspace-tabs button.active {
  border-bottom-color: var(--yy-primary);
  background: #f4f9fd;
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .yy-smart-plan,
html.yy-theme-v2 .yy-selected-plan {
  border-color: #b8d6ed;
  background: linear-gradient(135deg, #edf6fd 0%, #f8fbfe 100%);
}

html.yy-theme-v2 .yy-smart-plan b,
html.yy-theme-v2 .yy-selected-plan b {
  color: var(--yy-navy);
}

html.yy-theme-v2 .yy-smart-plan span,
html.yy-theme-v2 .yy-selected-plan span {
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .yy-draft-state {
  border-color: var(--yy-border);
  background: #f6f9fc;
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .yy-draft-state.saved {
  border-color: #a8d6e6;
  background: #edf8fc;
  color: #17647f;
}

html.yy-theme-v2 .yy-draft-state.dirty {
  border-color: #e6c184;
  background: var(--yy-warning-soft);
  color: var(--yy-warning);
}

html.yy-theme-v2 .yy-module-choice,
html.yy-theme-v2 .yy-module-config,
html.yy-theme-v2 .yy-plan-category,
html.yy-theme-v2 .yy-batch-row {
  border-color: var(--yy-border);
  background: var(--yy-surface);
}

html.yy-theme-v2 .yy-module-choice:hover,
html.yy-theme-v2 .yy-module-choice.active {
  border-color: #72add6;
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
  box-shadow: inset 0 0 0 1px rgba(23, 105, 176, .2);
}

html.yy-theme-v2 .yy-module-config > summary,
html.yy-theme-v2 .yy-plan-category > summary {
  background: #f5f9fd;
  color: var(--yy-navy);
}

html.yy-theme-v2 .yy-module-config > summary:hover,
html.yy-theme-v2 .yy-plan-category > summary:hover {
  background: #edf5fc;
}

html.yy-theme-v2 .yy-module-config-body,
html.yy-theme-v2 .yy-plan-detail {
  background: #fbfdff;
}

html.yy-theme-v2 .yy-config-field > span,
html.yy-theme-v2 .yy-plan-row-name b,
html.yy-theme-v2 .yy-batch-row-name b,
html.yy-theme-v2 .yy-batch-toolbar h3 {
  color: var(--yy-navy);
}

html.yy-theme-v2 .yy-plan-row:hover,
html.yy-theme-v2 .yy-plan-row.expanded,
html.yy-theme-v2 .yy-batch-row:hover {
  background: #f5faff;
}

html.yy-theme-v2 .yy-plan-row-head,
html.yy-theme-v2 .yy-batch-row {
  transition: background-color .16s ease, border-color .16s ease;
}

html.yy-theme-v2 .yy-plan-row-actions button,
html.yy-theme-v2 .yy-batch-row-actions button {
  border-color: var(--yy-border-strong);
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .yy-plan-row-actions button:hover,
html.yy-theme-v2 .yy-batch-row-actions button:hover {
  border-color: #84b8dc;
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .yy-plan-row-actions button.primary,
html.yy-theme-v2 .yy-batch-row-actions button.primary {
  border-color: var(--yy-primary);
  background: var(--yy-primary);
  color: #ffffff;
}

html.yy-theme-v2 .yy-plan-row-actions button.danger,
html.yy-theme-v2 .yy-batch-row-actions button.danger {
  border-color: #efbcc1;
  background: var(--yy-danger-soft);
  color: var(--yy-danger);
}

html.yy-theme-v2 .yy-plan-row-actions button.primary:hover,
html.yy-theme-v2 .yy-batch-row-actions button.primary:hover {
  border-color: var(--yy-primary-dark);
  background: var(--yy-primary-dark);
}

html.yy-theme-v2 .yy-plan-empty,
html.yy-theme-v2 .yy-batch-empty {
  border-color: #b8cad9;
  background: #f7fafc;
  color: var(--yy-text-muted);
}

/* Dialog hierarchy */
html.yy-theme-v2 .yy-group-dialog {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--yy-surface);
}

html.yy-theme-v2 .yy-group-dialog-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

html.yy-theme-v2 .yy-group-dialog-head {
  padding: 14px 16px;
  background: linear-gradient(90deg, #edf5fc 0%, #ffffff 84%);
}

html.yy-theme-v2 .yy-group-section {
  border-color: var(--yy-border);
  background: var(--yy-surface);
}

html.yy-theme-v2 .yy-group-section-title b {
  color: var(--yy-navy);
}

html.yy-theme-v2 .yy-group-muted,
html.yy-theme-v2 .yy-plan-row-summary,
html.yy-theme-v2 .yy-batch-row-rule {
  color: var(--yy-text-muted);
}

html.yy-theme-v2 .yy-group-chip.master,
html.yy-theme-v2 .yy-group-chip.assistant {
  border-color: #a9cde5;
  background: var(--yy-info-soft);
  color: var(--yy-primary-dark);
}

/* Mobile phase 2 */
html.yy-theme-v2 .yy-mgw-stat {
  background: linear-gradient(160deg, #ffffff 0%, #f4f9fd 100%);
}

html.yy-theme-v2 .yy-mgw-stat b {
  color: var(--yy-navy);
}

html.yy-theme-v2 .yy-mgw-stat:nth-child(3n + 1) b {
  color: var(--yy-primary);
}

html.yy-theme-v2 .yy-mgw-stat:nth-child(3n + 2) b {
  color: var(--yy-info);
}

html.yy-theme-v2 .yy-mgw-stat:nth-child(3n) b {
  color: var(--yy-success);
}

html.yy-theme-v2 .yy-mgw-member {
  border-left-color: var(--yy-primary);
  box-shadow: inset 0 -1px 0 #edf3f7;
}

html.yy-theme-v2 .yy-mgw-member-title em {
  border: 1px solid #b8d6ed;
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .yy-mgw-member-title em.done {
  border-color: #a8d6e6;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .yy-mgw-progress {
  background: #dceaf4;
}

html.yy-theme-v2 .yy-mgw-progress i {
  background: linear-gradient(90deg, #1976b7, #39a5d1);
}

html.yy-theme-v2 .yy-mgw-footer {
  border-top-color: var(--yy-border);
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 -6px 18px rgba(16, 44, 70, .12);
}

html.yy-theme-v2 .yy-mgw-footer-info b {
  color: var(--yy-navy);
}

html.yy-theme-v2 .yy-mgw-footer-info span {
  color: var(--yy-text-muted);
}

html.yy-theme-v2 .mobile-tabs button.active,
html.yy-theme-v2 .old-tabs button.active {
  color: var(--yy-primary-dark);
}

@media (max-width: 700px) {
  html.yy-theme-v2 .task-main-card > .el-card__header,
  html.yy-theme-v2 .group-page-next .compact-card > .el-card__header {
    padding: 11px 12px;
  }

  html.yy-theme-v2 .task-page-next .task-table-area,
  html.yy-theme-v2 .group-page-next .group-member-table-area {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  html.yy-theme-v2 .yy-workspace-tabs {
    top: 0;
    margin-right: -12px;
    margin-left: -12px;
  }

  html.yy-theme-v2 .yy-workspace-tabs button {
    min-width: 0;
    padding: 0 5px;
    font-size: 12px;
  }

  html.yy-theme-v2 .yy-plan-row-head,
  html.yy-theme-v2 .yy-batch-row {
    padding-right: 10px;
    padding-left: 10px;
  }

  html.yy-theme-v2 .yy-plan-row-actions,
  html.yy-theme-v2 .yy-batch-row-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  html.yy-theme-v2 .yy-plan-row-actions button,
  html.yy-theme-v2 .yy-batch-row-actions button {
    min-width: 48px;
  }

  html.yy-theme-v2 .yy-mgw-stat {
    padding: 9px 4px;
  }

  html.yy-theme-v2 .yy-mgw-stat b {
    font-size: 16px;
  }
}

/* Mobile enhancement sheets and group workspace */
html.yy-theme-v2 .yy-mobile-segment {
  border-color: #b4cde1;
  border-radius: 8px;
  background: #e8f2fa;
}

html.yy-theme-v2 .yy-mobile-segment button {
  border-radius: 6px;
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .yy-mobile-segment button.active {
  background: var(--yy-surface);
  color: var(--yy-primary-dark);
  box-shadow: 0 2px 7px rgba(16, 55, 91, .12);
}

html.yy-theme-v2 .yy-mobile-group-sheet,
html.yy-theme-v2 .yy-mobile-standalone-role,
html.yy-theme-v2 .yy-mgw-sheet {
  background: rgba(11, 38, 67, .52);
}

html.yy-theme-v2 .yy-mobile-group-panel,
html.yy-theme-v2 .yy-mgw-sheet-panel,
html.yy-theme-v2 .yy-mgw-detail-panel {
  border-top: 4px solid var(--yy-primary);
  border-radius: 8px 8px 0 0;
  background: var(--yy-canvas);
}

html.yy-theme-v2 .yy-mobile-close,
html.yy-theme-v2 .yy-mobile-action-grid button,
html.yy-theme-v2 .yy-mobile-member-actions button,
html.yy-theme-v2 .yy-mobile-module-grid button,
html.yy-theme-v2 .yy-mgw-btn,
html.yy-theme-v2 .yy-mgw-sheet-actions button,
html.yy-theme-v2 .yy-mgw-segments button {
  border-color: var(--yy-border-strong);
  border-radius: 6px;
  background: var(--yy-surface);
  color: var(--yy-text-soft);
}

html.yy-theme-v2 .yy-mobile-action-grid button.primary,
html.yy-theme-v2 .yy-mobile-module-save,
html.yy-theme-v2 .yy-mgw-btn.primary,
html.yy-theme-v2 .yy-mgw-sheet-actions button.primary {
  border-color: var(--yy-primary) !important;
  background: var(--yy-primary) !important;
  color: #ffffff !important;
}

html.yy-theme-v2 .yy-mgw {
  background: var(--yy-canvas);
  color: var(--yy-text);
}

html.yy-theme-v2 .yy-mgw-header {
  border-bottom-color: #2f6695;
  background: var(--yy-navy);
  color: #ffffff;
}

html.yy-theme-v2 .yy-mgw-header .yy-mgw-title span {
  color: #b9d4e9;
}

html.yy-theme-v2 .yy-mgw-icon {
  border-color: rgba(255, 255, 255, .28);
  border-radius: 6px;
  background: rgba(255, 255, 255, .1);
  color: #ffffff;
}

html.yy-theme-v2 .yy-mgw-tabs,
html.yy-theme-v2 .yy-mgw-tabs button,
html.yy-theme-v2 .yy-mgw-detail-tabs,
html.yy-theme-v2 .yy-mgw-detail-tabs button {
  background: var(--yy-surface);
}

html.yy-theme-v2 .yy-mgw-tabs button.active,
html.yy-theme-v2 .yy-mgw-detail-tabs button.active {
  border-bottom-color: var(--yy-primary);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .yy-mgw-band,
html.yy-theme-v2 .yy-mgw-member,
html.yy-theme-v2 .yy-mgw-batch,
html.yy-theme-v2 .yy-mgw-detail-band,
html.yy-theme-v2 .yy-mgw-pet {
  border-color: var(--yy-border);
  background: var(--yy-surface);
}

html.yy-theme-v2 .yy-mgw-member {
  border-left: 3px solid var(--yy-primary);
  padding-left: 8px;
}

html.yy-theme-v2 .yy-mgw-progress i {
  background: var(--yy-success);
}

html.yy-theme-v2 .yy-mgw-chip.green {
  border-color: #86b9df;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .yy-mgw-chip.orange,
html.yy-theme-v2 .yy-mgw-btn.warn,
html.yy-theme-v2 .yy-mgw-sheet-actions button.warn {
  border-color: #e6c184;
  background: var(--yy-warning-soft);
  color: var(--yy-warning);
}

html.yy-theme-v2 .yy-mgw-chip.red,
html.yy-theme-v2 .yy-mgw-btn.danger,
html.yy-theme-v2 .yy-mgw-sheet-actions button.danger {
  border-color: #efbcc1;
  background: var(--yy-danger-soft);
  color: var(--yy-danger);
}

html.yy-theme-v2 .yy-mgw-segments button.active {
  border-color: var(--yy-primary);
  background: var(--yy-primary-soft);
  color: var(--yy-primary-dark);
}

html.yy-theme-v2 .yy-mobile-npc-button,
html.yy-theme-v2 .yy-mobile-role-profile-action {
  border-color: #b7cee8 !important;
  background: var(--yy-info-soft) !important;
  color: var(--yy-info) !important;
}

@media (max-width: 700px) {
  html.yy-theme-v2 .next-main {
    padding: 8px;
  }

  html.yy-theme-v2 .el-card,
  html.yy-theme-v2 .compact-card {
    box-shadow: none !important;
  }
}

/* Keep the phase 2 palette authoritative over runtime-injected mobile styles. */
html.yy-theme-v2 .yy-mgw-progress i {
  background: linear-gradient(90deg, #1976b7, #39a5d1) !important;
}

html.yy-theme-v2 .yy-mgw-chip.green {
  border-color: #9bcfe3;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .yy-mgw-btn.success {
  border-color: #9bcfe3;
  background: var(--yy-success-soft);
  color: var(--yy-success);
}

html.yy-theme-v2 .yy-draft-state.saved {
  border-color: #a8d6e6;
  background: #edf8fc;
  color: #17647f;
}
