/* ============================================================ 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; } } /* ---------- 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); font-family: var(--momo-font-mono); color: var(--momo-ink-primary); } .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); }