/* ============================================================
   page-auto-import-bem.css  —  Turn B: BEM 元件層
   group: monitor · accent: --momo-warm-caramel
   ============================================================ */

/* ---------- Page head ---------- */
.ai-head {
  display: flex;
  align-items: flex-start;
  gap: var(--momo-space-4);
  flex-wrap: wrap;
  margin-bottom: var(--momo-space-5);
  padding-bottom: var(--momo-space-4);
  border-bottom: 1px solid var(--momo-border-light);
}

.ai-head__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: var(--momo-radius-sm);
  background: var(--momo-warm-caramel-soft);
  color: var(--momo-warm-caramel-deep);
  font-size: var(--momo-text-xl);
  flex-shrink: 0;
}

.ai-head__main { flex: 1 1 480px; min-width: 0; }

.ai-head__title {
  margin: 0 0 var(--momo-space-1) 0;
  font-family: var(--momo-font-heading);
  font-weight: var(--momo-font-bold);
  font-size: var(--momo-text-2xl);
  color: var(--momo-ink-primary);
  letter-spacing: 0;
}

.ai-head__subtitle {
  display: flex;
  align-items: center;
  gap: var(--momo-space-2);
  margin: 0;
  font-size: var(--momo-text-sm);
  color: var(--momo-ink-tertiary);
}

.ai-head__subtitle strong {
  color: var(--momo-ink-secondary);
  font-weight: var(--momo-font-semibold);
}

/* ---------- Section card ---------- */
.ai-card {
  background: var(--momo-surface-0);
  border: 1px solid var(--momo-border-light);
  border-radius: var(--momo-radius-md);
  box-shadow: var(--momo-shadow-soft);
  margin-bottom: var(--momo-space-5);
  overflow: hidden;
}

.ai-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--momo-space-4) var(--momo-space-5);
  border-bottom: 1px solid var(--momo-border-light);
  background: var(--momo-surface-2);
}

.ai-card__title {
  margin: 0;
  font-family: var(--momo-font-heading);
  font-weight: var(--momo-font-semibold);
  font-size: var(--momo-text-base);
  color: var(--momo-ink-primary);
  display: inline-flex;
  align-items: center;
  gap: var(--momo-space-2);
}

.ai-card__title i { color: var(--momo-warm-caramel-deep); }

.ai-card__body { padding: var(--momo-space-5); }

/* ---------- Notice ---------- */
.ai-notice {
  display: flex;
  align-items: flex-start;
  gap: var(--momo-space-2);
  padding: var(--momo-space-3) var(--momo-space-4);
  background: var(--momo-surface-2);
  border: 1px solid var(--momo-border-light);
  border-radius: var(--momo-radius-sm);
  font-size: var(--momo-text-sm);
  color: var(--momo-ink-secondary);
  margin-bottom: var(--momo-space-4);
}

.ai-notice--info {
  background: var(--momo-warm-caramel-soft);
  border-color: var(--momo-warm-caramel);
  color: var(--momo-ink-primary);
}

.ai-notice__icon {
  color: var(--momo-warm-caramel-deep);
  flex-shrink: 0;
  margin-top: 0.15em;
}

.ai-notice__title {
  font-weight: var(--momo-font-semibold);
  color: var(--momo-warm-caramel-deep);
  margin: 0 0 var(--momo-space-1) 0;
}

.ai-notice__body { margin: 0; }
.ai-notice__body code {
  background: var(--momo-surface-0);
  border: 1px solid var(--momo-border-light);
  padding: 0.1em 0.4em;
  border-radius: var(--momo-radius-xs);
  font-family: var(--momo-font-mono);
  font-size: 0.92em;
  color: var(--momo-warm-mahogany);
}

/* ---------- Form grid ---------- */
.ai-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--momo-space-3);
  margin-bottom: var(--momo-space-4);
}

.ai-field__label {
  display: block;
  font-weight: var(--momo-font-semibold);
  color: var(--momo-ink-secondary);
  font-size: var(--momo-text-sm);
  margin-bottom: var(--momo-space-2);
}

.ai-field__hint {
  display: block;
  margin-top: var(--momo-space-1);
  font-size: var(--momo-text-xs);
  color: var(--momo-ink-tertiary);
}

.ai-field__input {
  width: 100%;
  border: 1px solid var(--momo-border);
  border-radius: var(--momo-radius-sm);
  padding: var(--momo-space-2) var(--momo-space-3);
  font-size: var(--momo-text-sm);
  background: var(--momo-surface-0);
  color: var(--momo-ink-primary);
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.ai-field__input:focus {
  outline: none;
  border-color: var(--momo-warm-caramel);
  box-shadow: 0 0 0 3px var(--momo-warm-caramel-soft);
}

/* ---------- Action toolbar ---------- */
.ai-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--momo-space-2);
}

/* ---------- Upload row ---------- */
.ai-uploadrow {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--momo-space-3);
  align-items: end;
}

@media (max-width: 720px) {
  .ai-uploadrow { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .ai-head {
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: var(--momo-space-3);
    margin-bottom: var(--momo-space-4);
    padding-bottom: var(--momo-space-4);
  }

  .ai-head__icon {
    width: 36px;
    height: 36px;
    font-size: var(--momo-text-title);
  }

  .ai-head__main {
    flex: 1 1 auto;
  }

  .ai-head__title {
    margin-bottom: var(--momo-space-2);
    font-size: var(--momo-text-headline);
    line-height: 1.2;
  }

  .ai-head__subtitle {
    display: block;
    font-size: var(--momo-text-body-sm);
    line-height: 1.55;
  }

  .ai-head__subtitle i {
    margin-right: var(--momo-space-1);
  }

  .ai-card__head {
    padding: var(--momo-space-4);
  }

  .ai-card__body {
    padding: var(--momo-space-4);
  }

  .ai-notice {
    padding: var(--momo-space-3);
  }

  .ai-notice,
  .ai-notice__body,
  .ai-notice code {
    overflow-wrap: anywhere;
  }

  .ai-toolbar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ai-toolbar .btn {
    width: 100%;
    min-height: 44px;
    padding-right: var(--momo-space-3);
    padding-left: var(--momo-space-3);
  }
}

@media (max-width: 360px) {
  .ai-toolbar {
    grid-template-columns: 1fr;
  }
}

/* ---------- Job table ---------- */
.ai-jobtable {
  width: 100%;
  font-size: var(--momo-text-sm);
}

.ai-jobtable th {
  background: var(--momo-surface-2);
  color: var(--momo-ink-secondary);
  font-weight: var(--momo-font-semibold);
  font-size: var(--momo-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: var(--momo-space-3);
  border-bottom: 1px solid var(--momo-border);
  white-space: nowrap;
}

.ai-jobtable td {
  vertical-align: middle;
  padding: var(--momo-space-3);
  border-bottom: 1px solid var(--momo-border-light);
  color: var(--momo-ink-primary);
}

.ai-jobtable tr:hover td { background: var(--momo-surface-1); }
.ai-jobtable tr:last-child td { border-bottom: none; }

.ai-jobtable__id {
  font-family: var(--momo-font-mono);
  font-weight: var(--momo-font-bold);
  color: var(--momo-ink-secondary);
}

.ai-jobtable__file {
  display: inline-flex;
  align-items: center;
  gap: var(--momo-space-2);
  min-width: 0;
  font-family: var(--momo-font-mono);
  color: var(--momo-ink-primary);
  overflow-wrap: anywhere;
}

.ai-jobtable__file i { color: var(--momo-warm-olive); }

.ai-jobtable__error {
  white-space: normal;
  max-width: 260px;
  word-break: break-word;
  font-family: var(--momo-font-mono);
  font-size: var(--momo-text-xs);
  color: var(--momo-warm-honey-deep);
}

.ai-jobtable__time {
  font-family: var(--momo-font-mono);
  font-size: var(--momo-text-xs);
  color: var(--momo-ink-tertiary);
}

.ai-jobtable__count {
  font-family: var(--momo-font-mono);
  font-weight: var(--momo-font-semibold);
}

/* ---------- Status pill ---------- */
.ai-status {
  display: inline-flex;
  align-items: center;
  gap: var(--momo-space-1);
  padding: 0.22em 0.7em;
  border-radius: var(--momo-radius-pill);
  font-size: var(--momo-text-xs);
  font-weight: var(--momo-font-semibold);
  border: 1px solid transparent;
}

.ai-status--pending     { background: var(--momo-warm-honey-soft);   color: var(--momo-warm-honey-deep);    border-color: var(--momo-warm-honey-soft); }
.ai-status--downloading { background: var(--momo-warm-caramel-soft); color: var(--momo-warm-caramel-deep);  border-color: var(--momo-warm-caramel-soft); }
.ai-status--importing   { background: var(--momo-warm-mahogany-soft); color: var(--momo-warm-mahogany);     border-color: var(--momo-warm-mahogany-soft); }
.ai-status--completed   { background: var(--momo-warm-olive-soft);   color: var(--momo-warm-olive-deep);    border-color: var(--momo-warm-olive-soft); }
.ai-status--failed      { background: rgba(193,77,77,0.15);          color: #8a3a3a;                        border-color: rgba(193,77,77,0.4); }

/* ---------- Progress ---------- */
.ai-progress {
  width: 100%;
  height: 6px;
  border-radius: var(--momo-radius-pill);
  background: var(--momo-surface-2);
  overflow: hidden;
  margin-bottom: var(--momo-space-1);
}

.ai-progress__bar {
  height: 100%;
  background: var(--momo-warm-caramel);
  transition: width 0.3s ease;
}

.ai-progress__label {
  font-family: var(--momo-font-mono);
  font-size: var(--momo-text-xs);
  color: var(--momo-ink-tertiary);
}

/* ---------- Count chips ---------- */
.ai-count {
  display: inline-flex;
  align-items: center;
  padding: 0.2em 0.55em;
  border-radius: var(--momo-radius-pill);
  font-family: var(--momo-font-mono);
  font-size: var(--momo-text-xs);
  font-weight: var(--momo-font-semibold);
}

.ai-count--ok    { background: var(--momo-warm-olive); color: var(--momo-on-accent, #fff8ef); }
.ai-count--total { background: var(--momo-surface-2); color: var(--momo-ink-secondary); border: 1px solid var(--momo-border); }

/* ---------- Empty state ---------- */
.ai-empty {
  text-align: center;
  padding: var(--momo-space-12) var(--momo-space-4);
  color: var(--momo-ink-tertiary);
}

.ai-empty__icon {
  font-size: 2.5rem;
  margin-bottom: var(--momo-space-3);
  opacity: 0.4;
  color: var(--momo-warm-caramel);
}

.ai-empty__text {
  margin: 0;
  font-size: var(--momo-text-base);
  font-weight: var(--momo-font-medium);
}

/* ---------- Loading ---------- */
.ai-loading {
  text-align: center;
  padding: var(--momo-space-8) var(--momo-space-4);
}

.ai-loading__spinner {
  width: 32px; height: 32px;
  border-width: 3px;
  color: var(--momo-warm-caramel);
}

.ai-loading__text {
  margin-top: var(--momo-space-2);
  color: var(--momo-ink-tertiary);
  font-size: var(--momo-text-sm);
}

@media (max-width: 768px) {
  .auto-import-page .container {
    max-width: 100%;
    padding-right: var(--momo-space-3);
    padding-left: var(--momo-space-3);
  }

  .ai-card__head {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--momo-space-3);
  }

  .ai-card__head .btn {
    width: 100%;
    min-height: 42px;
  }

  #jobsTableContainer .table-responsive {
    overflow: visible;
  }

  .ai-jobtable,
  .ai-jobtable thead,
  .ai-jobtable tbody,
  .ai-jobtable tr,
  .ai-jobtable td {
    display: block;
    width: 100%;
  }

  .ai-jobtable thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  .ai-jobtable tbody {
    display: grid;
    gap: var(--momo-space-3);
  }

  .ai-jobtable tr {
    display: grid;
    gap: var(--momo-space-2);
    padding: var(--momo-space-3);
    background: var(--momo-surface-0);
    border: 1px solid var(--momo-border-light);
    border-radius: var(--momo-radius-md);
    box-shadow: var(--momo-shadow-soft);
  }

  .ai-jobtable tr:hover td {
    background: transparent;
  }

  .ai-jobtable td {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: var(--momo-space-2);
    align-items: start;
    padding: 0;
    border-bottom: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: left !important;
  }

  .ai-jobtable td::before {
    content: "";
    color: var(--momo-ink-tertiary);
    font-family: var(--momo-font-mono);
    font-size: var(--momo-text-xs);
    font-weight: var(--momo-font-semibold);
    line-height: 1.45;
  }

  .ai-jobtable td:nth-child(1)::before { content: "ID"; }
  .ai-jobtable td:nth-child(2)::before { content: "檔案"; }
  .ai-jobtable td:nth-child(3)::before { content: "狀態"; }
  .ai-jobtable td:nth-child(4)::before { content: "進度"; }
  .ai-jobtable td:nth-child(5)::before { content: "成功/總"; }
  .ai-jobtable td:nth-child(6)::before { content: "開始"; }
  .ai-jobtable td:nth-child(7)::before { content: "完成"; }
  .ai-jobtable td:nth-child(8)::before { content: "錯誤"; }
  .ai-jobtable td:nth-child(9)::before { content: "操作"; }

  .ai-jobtable__file {
    align-items: flex-start;
    line-height: 1.45;
  }

  .ai-jobtable__error {
    max-width: none;
  }

  .ai-progress {
    min-width: 0;
  }
}
