    .resource-shell {
      display: grid;
      gap: 14px;
    }

    .resource-panel[hidden] {
      display: none;
    }

    .wechat-account-list {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
      gap: 10px;
    }

    .wechat-account-card {
      display: grid;
      gap: 7px;
      min-height: 94px;
      padding: 10px 12px;
      border: 1px solid var(--line);
      border-left-width: 4px;
      border-radius: 7px;
      background: #f8fafc;
    }

    .wechat-account-card.usable {
      border-color: #b7e3c3;
      border-left-color: #16803a;
      background: #eef9f1;
    }

    .wechat-account-card.expired {
      border-color: #f1b9b9;
      border-left-color: #c62828;
      background: #fff1f1;
    }

    .wechat-account-card.account-invalid {
      border-color: #f1b9b9;
      border-left-color: #c62828;
      background: #fff1f1;
    }

    .wechat-account-card.running {
      border-color: #bcd4ff;
      border-left-color: #2563eb;
      background: #eff6ff;
    }

    .wechat-account-card.unusable {
      border-color: #d8dee9;
      border-left-color: #94a3b8;
      background: #f8fafc;
    }

    .wechat-account-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .wechat-account-head h3 {
      margin: 0;
      font-size: 15px;
      font-weight: 780;
      color: var(--ink);
      overflow-wrap: anywhere;
    }

    .wechat-account-card .tag {
      padding: 3px 9px;
      font-size: 12px;
      line-height: 1.2;
      white-space: nowrap;
    }

    .wechat-account-fields {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 3px 10px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
    }

    .wechat-account-fields span {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .wechat-account-fields span:last-child {
      grid-column: 1 / -1;
    }

    .resource-filter-row {
      display: grid;
      grid-template-columns: minmax(260px, 1fr) 180px;
      gap: 10px;
    }

    .resource-card {
      position: relative;
      overflow: hidden;
      border-color: var(--line);
      background: #ffffff;
    }

    .resource-card::before {
      content: "";
      position: absolute;
      inset: 0 auto 0 0;
      width: 5px;
      background: #cbd5e1;
    }

    .resource-card.state-idle { background: #ffffff; }
    .resource-card.state-idle::before { background: #cbd5e1; }
    .resource-card.state-ready { background: var(--green-soft); border-color: #c9e7ce; }
    .resource-card.state-ready::before { background: var(--green); }
    .resource-card.state-running { background: var(--blue-soft); border-color: #cbdcff; }
    .resource-card.state-running::before { background: var(--blue); }
    .resource-card.state-waiting { background: var(--amber-soft); border-color: #f0d695; }
    .resource-card.state-waiting::before { background: #d97706; }
    .resource-card.state-error { background: var(--red-soft); border-color: #ffd0cc; }
    .resource-card.state-error::before { background: var(--red); }
    .resource-card.state-config { background: #faf5ff; border-color: #e9d5ff; }
    .resource-card.state-config::before { background: #9333ea; }

    .resource-card .job-card {
      box-shadow: none;
    }

    .scheduled-task-list {
      display: grid;
      gap: 12px;
    }

    .scheduled-task-card {
      display: grid;
      gap: 12px;
      padding: 14px 16px 16px 20px;
      border: 1px solid var(--line);
      border-radius: 8px;
    }

    .scheduled-task-head,
    .scheduled-task-actions {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      flex-wrap: wrap;
    }

    .scheduled-task-title {
      color: var(--ink);
      font-size: 18px;
      font-weight: 780;
      line-height: 1.25;
    }

    .scheduled-task-summary {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
      gap: 8px;
    }

    .scheduled-step-list {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
      gap: 8px;
    }

    .scheduled-step {
      display: grid;
      grid-template-columns: 12px 1fr;
      gap: 8px;
      min-height: 56px;
      padding: 9px 10px;
      border: 1px solid var(--line);
      border-radius: 7px;
      background: #ffffff;
    }

    .scheduled-step-dot {
      width: 10px;
      height: 10px;
      margin-top: 5px;
      border-radius: 50%;
      background: #cbd5e1;
    }

    .scheduled-step strong,
    .scheduled-step span {
      display: block;
      min-width: 0;
      overflow-wrap: anywhere;
    }

    .scheduled-step strong {
      color: var(--ink);
      font-size: 13px;
      line-height: 1.3;
    }

    .scheduled-step span {
      margin-top: 3px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.35;
    }

    .scheduled-step.running {
      border-color: #cbdcff;
      background: var(--blue-soft);
    }

    .scheduled-step.running .scheduled-step-dot {
      background: var(--blue);
    }

    .scheduled-step.success {
      border-color: #c9e7ce;
      background: var(--green-soft);
    }

    .scheduled-step.success .scheduled-step-dot {
      background: var(--green);
    }

    .scheduled-step.failed {
      border-color: #ffd0cc;
      background: var(--red-soft);
    }

    .scheduled-step.failed .scheduled-step-dot {
      background: var(--red);
    }

    .scheduled-run-history summary {
      color: var(--muted);
      font-size: 13px;
      font-weight: 650;
      cursor: pointer;
    }

    .scheduled-run-list {
      display: grid;
      gap: 6px;
      margin-top: 8px;
    }

    .scheduled-run-row {
      display: grid;
      grid-template-columns: 150px 80px 110px minmax(0, 1fr);
      gap: 8px;
      align-items: center;
      padding: 7px 9px;
      border: 1px solid var(--line);
      border-radius: 7px;
      background: #ffffff;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.3;
    }

    .scheduled-run-row strong {
      color: var(--ink);
      font-size: 12px;
    }

    @media (max-width: 720px) {
      .scheduled-run-row {
        grid-template-columns: 1fr;
      }
    }

    .grid.route-list-mode {
      gap: 12px;
    }

    .grid.route-list-mode .route-list-section {
      display: block;
    }

    .grid.route-list-mode .route-list-section .panel {
      padding: 0;
      border: 0;
