.keyword-app { margin-top: 16px; }
.keyword-header { display:flex; justify-content:space-between; gap:18px; align-items:flex-end; flex-wrap:wrap; }
.keyword-header h1 { margin:0; font-size:24px; }
.keyword-header p { margin:6px 0 0; color:#52677f; }
.keyword-controls { display:flex; gap:8px; flex-wrap:wrap; }
.keyword-controls input, .keyword-controls select { width:auto; min-width:180px; padding:10px 12px; border-radius:10px; }
.tab-row { display:flex; gap:8px; border-bottom:1px solid #d5deeb; margin-top:22px; }
.tab-row button { border:0; background:transparent; padding:12px 15px; font-weight:700; color:#52677f; cursor:pointer; border-bottom:3px solid transparent; }
.tab-row button.active { color:#214ecb; border-bottom-color:#214ecb; }
.tab-panel { display:none; padding-top:18px; }
.tab-panel.active { display:block; }
.summary { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.summary-card { border:1px solid #d5deeb; border-radius:12px; padding:12px 16px; min-width:140px; background:#f8fbff; }
.summary-card b { display:block; font-size:21px; color:#193457; }
.table-wrap { overflow:auto; border:1px solid #d5deeb; border-radius:12px; }
.keyword-table { border-collapse:collapse; width:100%; font-size:13px; min-width:1500px; }
.keyword-table th { background:#edf4ff; color:#314860; text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.03em; padding:10px; position:sticky; top:0; }
.keyword-table td { padding:10px; vertical-align:top; border-top:1px solid #e4ebf4; }
.keyword-table a { color:#245ad5; cursor:pointer; font-weight:700; }
.badge { display:inline-block; border-radius:20px; padding:4px 8px; font-size:11px; font-weight:700; text-transform:capitalize; }
.badge.complete { background:#d8f5e6; color:#18683d; }.badge.processing,.badge.queued { background:#fff2c9; color:#775e00; }.badge.concerns,.badge.failed { background:#ffe1e1; color:#a12020; }
.concern { border:1px solid #d5deeb; border-radius:12px; margin-bottom:10px; overflow:hidden; }
.concern summary { cursor:pointer; padding:14px 16px; font-weight:700; background:#f8fbff; }
.concern-body { padding:14px 16px; overflow:auto; }
.bulk-retry { margin:0 0 12px; }
.concern table { width:100%; border-collapse:collapse; font-size:13px; }.concern td,.concern th { padding:8px; border-top:1px solid #e4ebf4; text-align:left; }
.button { border:0; border-radius:9px; padding:8px 11px; color:#fff; background:#275edb; cursor:pointer; font-weight:700; }.button:disabled { opacity:.5; cursor:wait; }.button.secondary { background:#52677f; }
.message { padding:14px; border-radius:10px; background:#fff7d6; color:#6b5500; }.error { background:#ffe7e7; color:#9a2525; }.success { background:#e4f8ec; color:#176538; }
.pager { display:flex; gap:8px; align-items:center; padding:12px 0; }.pager button { border:1px solid #b9c9de; border-radius:8px; background:#fff; padding:7px 10px; cursor:pointer; }
.modal { position:fixed; inset:0; background:rgba(18,34,56,.60); z-index:10000; display:flex; padding:20px; }.modal[hidden] { display:none; }.modal-card { margin:auto; width:min(950px,100%); max-height:90vh; overflow:auto; background:#fff; border-radius:15px; padding:20px; }.modal-head { display:flex; justify-content:space-between; gap:10px; align-items:center; }.modal-close { border:0; background:transparent; font-size:24px; cursor:pointer; }
