* { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #f5f5f5; color: #222; font-size: 14px; } /* ── Header ── */ header { background: #1a3c5e; color: #fff; padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; } header h1 { font-size: 18px; font-weight: 600; } #auth-bar { display: flex; gap: 12px; align-items: center; font-size: 13px; } .auth-badge { padding: 4px 10px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.4); cursor: pointer; transition: background 0.15s; } .auth-badge.connected { background: #28a745; border-color: #28a745; } .auth-badge:not(.connected):hover { background: rgba(255,255,255,0.15); } /* ── Main layout ── */ main { padding: 20px 24px; } .panel-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; } .panel { background: #fff; border: 1px solid #ddd; border-radius: 6px; overflow: hidden; } .panel-header { padding: 12px 16px; background: #f8f9fa; border-bottom: 1px solid #ddd; display: flex; justify-content: space-between; align-items: center; font-weight: 600; font-size: 13px; color: #555; text-transform: uppercase; letter-spacing: 0.04em; } .panel-body { padding: 0; } /* ── Template list ── */ .template-list { list-style: none; } .template-item { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid #f0f0f0; cursor: pointer; transition: background 0.1s; } .template-item:last-child { border-bottom: none; } .template-item:hover { background: #f9f9f9; } .template-item.selected { background: #eef4ff; } .template-item input[type=checkbox] { flex-shrink: 0; } .template-name { flex: 1; font-size: 13px; } /* ── Status badges ── */ .badge { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 10px; white-space: nowrap; } .badge-migrated { background: #d4edda; color: #155724; } .badge-needs_update { background: #fff3cd; color: #856404; } .badge-not_migrated { background: #f8d7da; color: #721c24; } .template-spinner { font-size: 12px; color: #888; } /* ── Action bar ── */ .action-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; } button { padding: 8px 18px; border: none; border-radius: 5px; cursor: pointer; font-size: 13px; font-weight: 600; transition: opacity 0.15s; } button:disabled { opacity: 0.45; cursor: not-allowed; } #btn-migrate { background: #1a3c5e; color: #fff; } #btn-migrate:not(:disabled):hover { background: #235080; } #btn-refresh { background: #e9ecef; color: #333; } #btn-refresh:hover { background: #dee2e6; } #status-msg { font-size: 13px; color: #555; } /* ── History ── */ .history-section { background: #fff; border: 1px solid #ddd; border-radius: 6px; } .history-section .panel-header { background: #f8f9fa; } .history-table { width: 100%; border-collapse: collapse; font-size: 13px; } .history-table th { text-align: left; padding: 8px 14px; background: #f8f9fa; border-bottom: 1px solid #ddd; font-weight: 600; color: #555; } .history-table td { padding: 8px 14px; border-bottom: 1px solid #f0f0f0; } .history-table tr:last-child td { border-bottom: none; } .empty-msg { padding: 20px; text-align: center; color: #999; font-size: 13px; } /* ── Responsive ── */ @media (max-width: 700px) { .panel-row { grid-template-columns: 1fr; } }