/* ── Migration V1→V2 Tool ─────────────────────────────────────────── */
.migrate-page {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px;
    font-family: var(--font-mono, monospace);
}
.migrate-header h1 { color: var(--color-primary, #38bdf8); margin-bottom: 4px; }
.migrate-sub { color: var(--color-muted, #64748b); font-size: 13px; margin-bottom: 20px; }
.migrate-denied { color: var(--color-error, #f87171); padding: 16px; background: rgba(248,113,113,.1); border-radius: 8px; }
.migrate-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 20px; }
.migrate-input {
    padding: 9px 14px; border-radius: 6px; border: 1px solid var(--color-border, #334155);
    background: var(--color-surface, #1e293b); color: var(--color-text, #e2e8f0);
    font-size: 13px; width: 180px;
}
.btn-mig {
    padding: 9px 20px; border-radius: 6px; font-weight: 700; font-size: 13px;
    cursor: pointer; border: none; transition: opacity .15s;
}
.btn-mig:disabled { opacity: .5; cursor: not-allowed; }
.btn-mig.preview  { background: #1d4ed8; color: #fff; }
.btn-mig.execute  { background: #16a34a; color: #fff; }
.btn-mig.reset    { background: #dc2626; color: #fff; }
.migrate-loading { display: flex; align-items: center; gap: 10px; color: var(--color-muted, #94a3b8); margin: 16px 0; }
.mig-spinner { width: 20px; height: 20px; border: 3px solid #334155; border-top-color: #38bdf8; border-radius: 50%; animation: spin 1s linear infinite; }
.migrate-error { color: #f87171; background: rgba(248,113,113,.1); padding: 12px 16px; border-radius: 6px; margin: 12px 0; }
.mig-summary { background: var(--color-surface, #1e293b); border: 1px solid var(--color-border, #334155); border-radius: 8px; padding: 16px; margin-bottom: 16px; }
.mig-mode { display: inline-block; padding: 3px 12px; border-radius: 20px; font-size: 12px; font-weight: 700; margin-bottom: 10px; background: #1d4ed8; color: #fff; }
.mig-mode.execute, .mig-mode.reset { background: #16a34a; }
.mig-reset-log { margin: 8px 0; }
.mig-stats { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 10px; }
.mig-stat-group { display: flex; gap: 10px; align-items: center; font-size: 13px; }
.mig-stat-group strong { color: var(--color-text, #e2e8f0); }
.mig-section { margin-bottom: 20px; }
.mig-section h2 { color: #a78bfa; font-size: 15px; margin-bottom: 8px; }
.mig-log { background: var(--color-surface, #1e293b); border: 1px solid var(--color-border, #334155); border-radius: 8px; padding: 12px; max-height: 400px; overflow-y: auto; }
.mig-line { font-size: 11px; line-height: 1.7; white-space: pre-wrap; word-break: break-word; }
.ok  { color: #4ade80; }
.upd { color: #60a5fa; }
.warn { color: #fbbf24; }
.err  { color: #f87171; }
