/* components.css split from legacy.css on 2026-07-13T14:30:34.695Z. */

.icon-btn {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 10px;
      height: 34px;
      min-width: 34px;
      padding: 0 10px;
      cursor: pointer;
      display: inline-grid;
      place-items: center;
      color: var(--muted);
      font-size: 13px;
      font-weight: 500;
    }

.icon-btn:hover { background: #f8fafc; }

.load-btn, .create-btn {
      height: 36px;
      border: 0;
      color: white;
      border-radius: 10px;
      padding: 0 14px;
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 7px;
      width: 100%;
    }

.load-btn { background: var(--primary); }

.load-btn.danger { background: var(--danger); }

.create-btn { background: #0f172a; }

.badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 3px 8px;
      border-radius: 999px;
      font-size: 10.5px;
      line-height: 1.1;
      font-weight: 600;
      white-space: nowrap;
      border: 1px solid transparent;
    }

.badge.running { background: #e0f2fe; color: #0369a1; border-color: #bae6fd; }

.badge.pass, .badge.passed { background: #dcfce7; color: #15803d; border-color: #bbf7d0; }

.badge.fail, .badge.failed { background: #fee2e2; color: #b91c1c; border-color: #fecaca; }

.badge.pending { background: #fff7ed; color: #c2410c; border-color: #fed7aa; }

.badge.normal { background: #f1f5f9; color: #475569; border-color: #e2e8f0; }

.badge.rendering { background: #e0f2fe; color: #0369a1; border-color: #bae6fd; }

.badge.finished { background: #dcfce7; color: #15803d; border-color: #bbf7d0; }

.badge.failed { background: #fee2e2; color: #b91c1c; border-color: #fecaca; }

.badge.waiting { background: #fff7ed; color: #c2410c; border-color: #fed7aa; }

.mini-action-btn {
      border: 1px solid var(--line);
      background: #fff;
      color: #475569;
      border-radius: 999px;
      padding: 4px 8px;
      font-size: 10.5px;
      font-weight: 600;
      cursor: pointer;
      line-height: 1.1;
    }

.mini-action-btn:hover { background: #f8fafc; border-color: #cbd5e1; }

.mini-action-btn.danger { color: #b91c1c; border-color: #fecaca; background: #fff5f5; }

.mini-action-btn.danger:hover { background: #fee2e2; }

.mini-action-btn.rerun {
      color: #1d4ed8;
      border-color: #bfdbfe;
      background: #eff6ff;
    }

.mini-action-btn.rerun:hover { background: #dbeafe; }

.header-task-actions:empty { display: none; }

.header-task-actions .mini-action-btn {
      padding: 5px 9px;
    }

.mobile-back-btn {
      display: none;
      background: transparent;
      border: 0;
      color: var(--heading);
      font-size: 22px;
      line-height: 1;
      padding: 4px 2px 4px 0;
      cursor: pointer;
      flex-shrink: 0;
    }

.btn-secondary {
      height: 34px;
      padding: 0 12px;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 10px;
      font-size: 12px;
      font-weight: 500;
      color: #334155;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }

.btn-secondary:hover { background: #f8fafc; }

.job-category-nav { display: grid; gap: 10px; margin: 12px 0; }
.job-category-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.job-category-tab { min-width: 0; padding: 0 8px; }
.job-category-tab span { font-size: 10px; opacity: .9; }
.job-category-template-field { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; }
.job-category-template-field .form-label { grid-column: 1 / -1; margin: 0; }
.job-category-template-field .form-select { min-width: 0; }
.job-category-proposals { min-height: 38px; white-space: nowrap; }

.empty {
      background: #fff;
      border: 1px dashed #cbd5e1;
      border-radius: 14px;
      padding: 16px;
      text-align: center;
      color: var(--muted);
      font-size: 12px;
    }

.btn-send {
      background: var(--primary);
      color: white;
      border: none;
      width: 34px;
      height: 32px;
      border-radius: 10px;
      display: grid;
      place-items: center;
      cursor: pointer;
      font-size: 15px;
    }

.modal-backdrop {
      position: fixed;
      inset: 0;
      background: rgb(15 23 42 / 0.58);
      display: none;
      align-items: center;
      justify-content: center;
      padding: 22px;
      z-index: 100;
    }

.modal {
      width: min(920px, 96vw);
      max-height: 86vh;
      background: #fff;
      border-radius: 18px;
      overflow: hidden;
      box-shadow: 0 30px 90px rgb(0 0 0 / 0.30);
      display: grid;
      grid-template-rows: auto 1fr auto;
    }

.modal-body {
      min-height: 0;
    }

.modal.small { width: min(640px, 96vw); }

.modal.wide { width: min(980px, 96vw); }

.modal-header, .modal-footer { padding: 15px 18px; border-bottom: 1px solid var(--line); }

.modal-header {
      display: flex;
      align-items: flex-start;
      gap: 12px;
    }

.modal-footer { border-bottom: 0; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: 8px; }

.modal-title { font-size: 16px; font-weight: 700; color: var(--heading); }

.modal-subtitle { margin-top: 4px; font-size: 11px; color: var(--muted); }

.status-modal-copy,
.confirm-modal-copy {
      color: #334155;
      font-size: 13px;
      line-height: 1.65;
      white-space: pre-wrap;
    }

.modal-close-x {
      margin-left: auto;
      width: 34px;
      height: 34px;
      padding: 0;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--muted);
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      line-height: 1;
    }

.modal-close-x:hover {
      background: #f8fafc;
      color: var(--heading);
    }

.fold-header {
      padding: 10px 14px;
      display: flex;
      align-items: center;
      gap: 10px;
      font-weight: 700;
      color: var(--heading);
      background: #f8fafc;
      cursor: pointer;
      user-select: none;
      transition: background 0.15s ease;
    }

.fold-header:hover { background: #f1f5f9; }

.fold-arrow {
      display: inline-grid;
      place-items: center;
      width: 18px;
      height: 18px;
      border-radius: 999px;
      background: #e2e8f0;
      color: #334155;
      transition: transform 0.18s ease, color 0.18s ease, background 0.18s ease;
      flex: 0 0 auto;
    }

.fold-status-dot {
      width: 7px;
      height: 7px;
      border-radius: 999px;
      margin-left: auto;
      background: #cbd5e1;
    }

.fold-status-dot.pass { background: var(--success); }

.fold-status-dot.fail { background: var(--danger); }

.fold-status-dot.pending { background: var(--warning); }

.fold-status-dot {
      display: none !important;
    }

.create-form {
      display: grid;
      gap: 14px;
    }

.form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }

.form-field {
      display: grid;
      gap: 6px;
    }

.form-field.full { grid-column: 1 / -1; }

.form-label {
      font-size: 11px;
      color: var(--muted);
      font-weight: 600;
    }

.form-label-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
    }

.idea-magic-btn {
      min-height: 30px;
      padding: 0 11px;
      border: 1px solid #a7f3d0;
      border-radius: 999px;
      background: linear-gradient(135deg, #ecfdf5 0%, #eff6ff 100%);
      color: #047857;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      font-size: 11px;
      font-weight: 800;
      cursor: pointer;
      box-shadow: 0 5px 14px rgb(5 150 105 / 0.10);
    }

.idea-magic-btn:hover {
      border-color: #6ee7b7;
      background: linear-gradient(135deg, #d1fae5 0%, #dbeafe 100%);
    }

.idea-magic-btn:disabled {
      cursor: wait;
      opacity: 0.72;
    }

.idea-magic-icon {
      font-size: 14px;
      line-height: 1;
    }

.idea-magic-btn.is-loading .idea-magic-icon {
      animation: idea-magic-spin 1.1s linear infinite;
    }

.idea-magic-error {
      min-height: 0;
      color: #b91c1c;
      font-size: 11px;
      line-height: 1.4;
    }

.idea-magic-error:empty { display: none; }

.idea-magic-backdrop {
      position: fixed;
      inset: 0;
      z-index: 180;
      padding: 22px;
      display: grid;
      place-items: center;
      background: rgb(15 23 42 / 0.68);
      backdrop-filter: blur(3px);
    }

.idea-magic-dialog {
      width: min(980px, 96vw);
      max-height: 88vh;
      overflow: hidden;
      display: grid;
      grid-template-rows: auto minmax(0, 1fr) auto;
      background: #fff;
      border: 1px solid rgb(167 243 208 / 0.85);
      border-radius: 20px;
      box-shadow: 0 34px 100px rgb(2 44 34 / 0.34);
      animation: idea-magic-enter 0.2s ease-out both;
    }

.idea-magic-dialog-header {
      padding: 17px 20px;
      display: flex;
      align-items: flex-start;
      gap: 14px;
      border-bottom: 1px solid var(--line);
      background:
        radial-gradient(circle at 90% -20%, rgb(167 243 208 / 0.65), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);
    }

.idea-magic-dialog-header h2 {
      margin: 3px 0 0;
      color: var(--heading);
      font-size: 18px;
    }

.idea-magic-kicker {
      color: #047857;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

.idea-magic-dialog-body {
      min-height: 0;
      padding: 18px 20px;
      overflow: auto;
    }

.idea-magic-compare {
      display: grid;
      grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
      gap: 14px;
      align-items: stretch;
    }

.idea-magic-copy {
      min-width: 0;
      padding: 15px 16px;
      border: 1px solid var(--line);
      border-radius: 14px;
      background: #f8fafc;
      color: #334155;
      font-size: 12px;
      line-height: 1.68;
      overflow-wrap: anywhere;
    }

.idea-magic-copy h3 {
      margin: 0 0 9px;
      color: var(--heading);
      font-size: 12px;
    }

.idea-magic-copy-suggestion {
      border-color: #a7f3d0;
      background: linear-gradient(145deg, #f0fdf4 0%, #f8fafc 72%);
    }

.idea-magic-note {
      margin-top: 12px;
      padding: 12px 14px;
      border: 1px solid #bbf7d0;
      border-radius: 12px;
      background: #f0fdf4;
      color: #166534;
      font-size: 11px;
      line-height: 1.55;
    }

.idea-magic-note.is-warning {
      border-color: #fed7aa;
      background: #fff7ed;
      color: #9a3412;
    }

.idea-magic-note ul {
      margin: 7px 0 0;
      padding-left: 18px;
    }

.idea-magic-dialog-footer {
      padding: 13px 20px;
      display: flex;
      justify-content: flex-end;
      gap: 9px;
      border-top: 1px solid var(--line);
      background: #fff;
    }

@keyframes idea-magic-spin {
      to { transform: rotate(360deg); }
    }

@keyframes idea-magic-enter {
      from { opacity: 0; transform: translateY(10px) scale(0.985); }
      to { opacity: 1; transform: translateY(0) scale(1); }
    }

.stage-check-list {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
    }

.stage-check {
      border: 1px solid var(--line);
      border-radius: 12px;
      padding: 9px;
      background: #fff;
      display: flex;
      gap: 8px;
      align-items: flex-start;
      cursor: pointer;
      font-size: 12px;
    }

.stage-check small {
      display: block;
      color: var(--muted);
      margin-top: 2px;
      font-size: 10.5px;
    }

.payload-preview {
      background: #0f172a;
      color: #e5e7eb;
      border-radius: 12px;
      padding: 12px;
      font-size: 11px;
      line-height: 1.45;
      overflow: auto;
      max-height: 220px;
      white-space: pre;
    }

.btn-danger-soft {
      height: 34px;
      padding: 0 12px;
      background: #fff5f5;
      border: 1px solid #fecaca;
      border-radius: 10px;
      font-size: 12px;
      font-weight: 600;
      color: #b91c1c;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      gap: 6px;
    }

.btn-danger-soft:hover { background: #fee2e2; }
.job-system-id {
  color: var(--muted);
  font-size: 11px;
  margin-top: 2px;
  word-break: break-all;
}

.job-template-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border: 1px solid #dbe4ef;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.job-template-picker { margin-bottom: 18px; }
.job-template-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.job-template-category-card { position: relative; display: flex; gap: 12px; min-height: 92px; padding: 15px; border: 1px solid #dbe4ef; border-radius: 16px; background: #fff; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.job-template-category-card input { position: absolute; opacity: 0; pointer-events: none; }
.job-template-category-card:has(input:checked) { border-color: #2563eb; background: linear-gradient(135deg, #eff6ff, #fff); box-shadow: 0 12px 24px rgb(37 99 235 / .12); }
.job-template-category-card:hover { transform: translateY(-1px); border-color: #60a5fa; }
.job-template-subject-field { margin-top: 14px; }
.job-template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 8px; }
.job-template-card { position: relative; display: flex; gap: 12px; min-height: 108px; padding: 16px; border: 1px solid #dbe4ef; border-radius: 16px; background: #fff; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.job-template-card input { position: absolute; opacity: 0; pointer-events: none; }
.job-template-card:has(input:checked) { border-color: #ea580c; background: linear-gradient(135deg, #fff7ed, #fff); box-shadow: 0 12px 24px rgb(234 88 12 / .12); }
.job-template-card:hover { transform: translateY(-1px); border-color: #fb923c; }
.job-template-icon { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border-radius: 12px; background: #fff; border: 1px solid #fed7aa; font-size: 19px; }
.job-template-copy { display: grid; gap: 4px; min-width: 0; }
.job-template-copy small { color: #c2410c; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.job-template-copy strong { color: #172554; font-size: 14px; }
.job-template-copy em { color: #64748b; font-size: 12px; line-height: 1.45; font-style: normal; }
.template-notice { margin-bottom: 14px; padding: 11px 13px; border: 1px solid #fed7aa; border-radius: 12px; background: #fff7ed; color: #9a3412; font-size: 12px; line-height: 1.55; }
.source-toggle-list { display: flex; flex-wrap: wrap; gap: 10px 16px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 12px; background: #f8fafc; color: #334155; font-size: 12px; }
.source-toggle-list label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
@media (max-width: 640px) { .job-template-category-grid, .job-template-grid { grid-template-columns: 1fr; } .job-template-card, .job-template-category-card { min-height: 92px; } }
