/* ── Reset & tokens ──────────────────────────────────────────────────────── */
:root {
  --ink:      #111111;
  --muted:    #6b6b6b;
  --subtle:   #999;
  --line:     #e5e5e5;
  --paper:    #f5f4f1;
  --white:    #ffffff;
  --accent:   #ff4f2e;
  --radius:   16px;

  /* Difficulty colours */
  --very-easy-bg: #e6f4ea; --very-easy-ink: #1a6b35;
  --easy-bg:      #d8edd0; --easy-ink:      #2a6b2a;
  --moderate-bg:  #fff4cc; --moderate-ink:  #7a5a00;
  --difficult-bg: #ffe2cc; --difficult-ink: #8a3800;
  --hard-bg:      #ffd5cc; --hard-ink:      #8b1a0a;
  --very-hard-bg: #f7c8c2; --very-hard-ink: #7a0a0a;

  /* Intent colours */
  --trans-bg:  #dbeafe; --trans-ink:  #1d4ed8;
  --comm-bg:   #e0f2fe; --comm-ink:   #0369a1;
  --info-bg:   #f3f4f6; --info-ink:   #374151;
  --nav-bg:    #ede9fe; --nav-ink:    #5b21b6;

  /* Score colours */
  --score-high-bg: #e8f5ef; --score-high-ink: #1a7f4b;
  --score-mid-bg:  #fff4e0; --score-mid-ink:  #a35c00;
  --score-low-bg:  #f1f1ef; --score-low-ink:  #777;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter,system-ui,-apple-system,sans-serif; -webkit-font-smoothing:antialiased; }

/* ── Layout ──────────────────────────────────────────────────────────────── */
.wrap { width:min(1280px,calc(100% - 48px)); margin:0 auto; padding:72px 0 120px; }

/* ── Header ──────────────────────────────────────────────────────────────── */
header { margin-bottom:40px; }
.eyebrow { font-size:11px; font-weight:800; letter-spacing:.14em; color:var(--accent); margin-bottom:14px; text-transform:uppercase; }
h1 { font-size:clamp(48px,7.5vw,96px); font-weight:900; line-height:.9; letter-spacing:-.065em; margin:0 0 22px; max-width:960px; }
.intro { font-size:18px; color:var(--muted); margin:0; max-width:560px; line-height:1.5; }

/* ── Card ────────────────────────────────────────────────────────────────── */
.card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:32px; }
.search-card { display:grid; grid-template-columns:2fr 1fr; gap:22px; }
.full { grid-column:1/-1; }

/* ── Form ────────────────────────────────────────────────────────────────── */
label { display:block; font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:9px; }
label span { font-weight:400; text-transform:none; letter-spacing:0; color:var(--muted); }
input,textarea,select,.locked { width:100%; font:inherit; font-size:15px; border:1.5px solid #d6d6d6; border-radius:10px; background:var(--white); padding:13px 15px; outline:none; transition:border-color .15s; color:var(--ink); }
textarea { resize:vertical; }
select { appearance:none; cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 15px center; padding-right:38px; }
.locked { background:#f2f2ef; color:#555; cursor:default; }
input:focus,textarea:focus,select:focus { border-color:var(--ink); }
.actions { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
button { border:0; border-radius:10px; background:var(--ink); color:var(--white); font:inherit; font-size:14px; font-weight:700; letter-spacing:.02em; padding:14px 22px; cursor:pointer; transition:opacity .15s; white-space:nowrap; }
button:hover { opacity:.85; }
button:disabled { opacity:.4; cursor:not-allowed; }
.secondary { background:var(--white); color:var(--ink); border:1.5px solid #d0d0d0; }
.hint { font-size:12px; color:var(--subtle); }

/* ── Status ──────────────────────────────────────────────────────────────── */
.status { margin:20px 0; padding:14px 18px; border-radius:10px; background:var(--white); border:1px solid var(--line); font-size:14px; color:var(--muted); }
.status.error { color:#a02212; border-color:#f0c4bb; background:#fff7f5; }

/* ── Results ─────────────────────────────────────────────────────────────── */
.results { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:32px; margin-top:24px; }
.results-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:24px; }
.results-head h2 { margin:6px 0 0; font-size:30px; font-weight:800; letter-spacing:-.04em; }
.result-actions { display:flex; gap:10px; align-items:center; flex-shrink:0; }
.cost-line { font-size:12px; color:var(--subtle); margin:6px 0 0; }
.enrich-status { font-size:12px; color:var(--accent); margin:4px 0 0; }

/* ── Summary cards ───────────────────────────────────────────────────────── */
.summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:28px; }
.metric { border:1px solid var(--line); border-radius:12px; padding:18px 20px; display:flex; flex-direction:column; gap:4px; }
.metric span { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.metric strong { font-size:20px; font-weight:800; letter-spacing:-.03em; line-height:1.1; word-break:break-word; }
.metric em { font-size:11px; font-style:normal; color:var(--subtle); margin-top:2px; }

/* ── Tabs ────────────────────────────────────────────────────────────────── */
.tabs { display:flex; gap:4px; border-bottom:2px solid var(--line); margin-bottom:24px; }
.tab { background:none; border:0; color:var(--muted); font-size:13px; font-weight:600; padding:10px 18px; border-radius:8px 8px 0 0; cursor:pointer; transition:color .15s,background .15s; }
.tab:hover { color:var(--ink); opacity:1; }
.tab.active { color:var(--ink); background:var(--paper); border:2px solid var(--line); border-bottom:2px solid var(--white); margin-bottom:-2px; }
.tab-panel.hidden { display:none; }

/* ── Presets ─────────────────────────────────────────────────────────────── */
.presets { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.presets-label { font-size:10px; font-weight:800; letter-spacing:.1em; color:var(--subtle); text-transform:uppercase; margin-right:4px; white-space:nowrap; }
.preset { background:var(--white); color:var(--ink); border:1.5px solid #d0d0d0; font-size:12px; font-weight:600; padding:7px 14px; border-radius:999px; }
.preset.active { background:var(--ink); color:var(--white); border-color:var(--ink); }
.preset:hover { opacity:1; border-color:#888; }
.preset.active:hover { opacity:.85; }

/* ── Filters ─────────────────────────────────────────────────────────────── */
.filters-bar { border:1px solid var(--line); border-radius:12px; margin-bottom:20px; overflow:hidden; }
.filters-toggle { display:flex; align-items:center; justify-content:space-between; padding:13px 18px; cursor:pointer; font-size:13px; font-weight:700; list-style:none; user-select:none; }
.filters-toggle::-webkit-details-marker { display:none; }
details[open] .filters-toggle { border-bottom:1px solid var(--line); }
.filter-count { background:var(--accent); color:#fff; font-size:10px; font-weight:800; padding:2px 7px; border-radius:999px; margin-left:8px; }
.filters-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; padding:18px; }
.filter-group label { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; margin-bottom:7px; }
.filter-group select,.filter-group input { font-size:13px; padding:9px 12px; }
.filter-intent label { text-transform:none; font-weight:600; letter-spacing:0; margin-bottom:0; font-size:13px; }
.intent-checks { display:flex; flex-direction:column; gap:6px; }
.check-label { display:flex; align-items:center; gap:7px; cursor:pointer; }
.check-label input { width:auto; padding:0; }
.clear-filters-btn { margin:0 18px 16px; background:none; border:1px solid var(--line); color:var(--muted); font-size:12px; padding:7px 14px; border-radius:8px; }
.clear-filters-btn:hover { color:var(--ink); border-color:#999; opacity:1; }

/* ── Table ───────────────────────────────────────────────────────────────── */
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:12px; }
table { width:100%; border-collapse:collapse; min-width:900px; font-size:13px; }
th { text-align:left; padding:11px 13px; background:#f8f8f6; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); cursor:pointer; user-select:none; border-bottom:1px solid var(--line); white-space:nowrap; }
th:hover { color:var(--ink); }
.sort-arrow { margin-left:4px; opacity:.4; }
th.sort-asc .sort-arrow::after { content:"↑"; opacity:1; color:var(--ink); }
th.sort-desc .sort-arrow::after { content:"↓"; opacity:1; color:var(--ink); }
td { padding:11px 13px; border-bottom:1px solid var(--line); vertical-align:middle; }
tr:last-child td { border-bottom:0; }
tr:hover td { background:#fafaf8; }
.num { text-align:right; }
.kw-loading td { color:#ccc; }

/* Difficulty badge */
.diff-badge { display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:700; padding:3px 8px; border-radius:999px; white-space:nowrap; }
.diff-very-easy { background:var(--very-easy-bg); color:var(--very-easy-ink); }
.diff-easy      { background:var(--easy-bg);      color:var(--easy-ink); }
.diff-moderate  { background:var(--moderate-bg);  color:var(--moderate-ink); }
.diff-difficult { background:var(--difficult-bg); color:var(--difficult-ink); }
.diff-hard      { background:var(--hard-bg);      color:var(--hard-ink); }
.diff-very-hard { background:var(--very-hard-bg); color:var(--very-hard-ink); }
.diff-loading   { background:#f1f1ef; color:#bbb; }

/* Intent badge */
.intent-badge { display:inline-block; font-size:11px; font-weight:700; padding:3px 8px; border-radius:999px; text-transform:capitalize; white-space:nowrap; }
.intent-transactional { background:var(--trans-bg); color:var(--trans-ink); }
.intent-commercial    { background:var(--comm-bg);  color:var(--comm-ink); }
.intent-informational { background:var(--info-bg);  color:var(--info-ink); }
.intent-navigational  { background:var(--nav-bg);   color:var(--nav-ink); }
.intent-loading       { background:#f1f1ef; color:#bbb; }

/* Competition badge */
.comp { display:inline-block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:999px; }
.comp-high   { background:#fde8e4; color:#8b1a0a; }
.comp-medium { background:#fff4e0; color:#7a4400; }
.comp-low    { background:#e8f5ef; color:#145230; }
.comp-none   { background:#f1f1ef; color:#888; }

/* Opportunity/Target score badge */
.score { display:inline-block; min-width:38px; text-align:center; font-size:12px; font-weight:800; padding:4px 9px; border-radius:999px; cursor:pointer; }
.score-high { background:var(--score-high-bg); color:var(--score-high-ink); }
.score-mid  { background:var(--score-mid-bg);  color:var(--score-mid-ink); }
.score-low  { background:var(--score-low-bg);  color:var(--score-low-ink); }

/* ── Score popup ─────────────────────────────────────────────────────────── */
.score-popup { position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:100; display:flex; align-items:center; justify-content:center; }
.score-popup.hidden { display:none; }
.score-popup-inner { background:var(--white); border-radius:16px; padding:28px 32px; max-width:340px; width:90%; position:relative; box-shadow:0 20px 60px rgba(0,0,0,.2); }
.score-popup-close { position:absolute; top:14px; right:16px; background:none; border:0; font-size:22px; color:var(--muted); padding:4px 8px; line-height:1; }
.score-popup-close:hover { color:var(--ink); opacity:1; }
.score-popup h3 { font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:0 0 6px; }
.score-popup .big-score { font-size:52px; font-weight:900; letter-spacing:-.05em; line-height:1; margin:0 0 20px; }
.score-bar-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.score-bar-label { font-size:12px; color:var(--muted); width:90px; flex-shrink:0; }
.score-bar-track { flex:1; background:#f1f1ef; border-radius:999px; height:6px; }
.score-bar-fill { height:6px; border-radius:999px; background:var(--ink); }
.score-bar-val { font-size:12px; font-weight:700; width:32px; text-align:right; flex-shrink:0; }
.score-popup-kw { font-size:15px; font-weight:700; margin-bottom:18px; }

/* ── Footnote ────────────────────────────────────────────────────────────── */
.footnote { font-size:12.5px; color:var(--muted); line-height:1.65; margin:18px 2px 0; }
.tooltip-trigger { cursor:help; border-bottom:1px dotted #bbb; }

/* ── Clusters ────────────────────────────────────────────────────────────── */
.clusters-loading { text-align:center; padding:32px; color:var(--muted); font-size:14px; }
.clusters-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:18px; }
.cluster-card { border:1px solid var(--line); border-radius:14px; padding:22px 24px; background:var(--paper); }
.cluster-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:14px; }
.cluster-name { font-size:14px; font-weight:800; letter-spacing:-.01em; }
.cluster-score { font-size:22px; font-weight:900; color:var(--ink); line-height:1; }
.cluster-score-label { font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.cluster-stats { display:grid; grid-template-columns:1fr 1fr; gap:6px 18px; font-size:12px; margin-bottom:14px; }
.cluster-stat-label { color:var(--muted); }
.cluster-stat-value { font-weight:600; }
.cluster-dedup-badge { font-weight:400; font-size:10px; color:var(--subtle); cursor:help; margin-left:5px; background:var(--line); padding:1px 5px; border-radius:4px; letter-spacing:0.02em; }
.cluster-keywords-toggle { font-size:12px; color:var(--muted); cursor:pointer; background:none; border:0; padding:0; text-decoration:underline; }
.cluster-keywords-toggle:hover { color:var(--ink); opacity:1; }
.cluster-keywords-list { margin-top:10px; font-size:12px; color:var(--muted); display:none; }
.cluster-keywords-list.open { display:block; }
.cluster-keywords-list li { padding:2px 0; }

/* ── Recommended ─────────────────────────────────────────────────────────── */
.recommended-list { display:flex; flex-direction:column; gap:18px; }
.rec-card { border:1px solid var(--line); border-radius:14px; padding:24px 28px; }
.rec-type-label { font-size:10px; font-weight:800; letter-spacing:.12em; padding:4px 10px; border-radius:999px; display:inline-block; margin-bottom:14px; }
.rec-card-head { display:flex; align-items:baseline; gap:16px; margin-bottom:6px; }
.rec-name { font-size:18px; font-weight:800; letter-spacing:-.02em; flex:1; }
.rec-question { font-size:13px; color:var(--muted); font-style:italic; margin:0 0 16px; }
.rec-score-wrap { text-align:right; flex-shrink:0; }
.rec-score { font-size:28px; font-weight:900; line-height:1; }
.rec-score-label { font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.rec-section-label { font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--subtle); margin:0 0 6px; }
.rec-text { font-size:13px; color:var(--muted); line-height:1.6; margin:0 0 14px; }
.rec-action { font-size:13px; font-weight:600; background:var(--paper); border-radius:8px; padding:10px 14px; margin-bottom:0; }
.rec-action::before { content:"→ "; color:var(--accent); }

/* Per-keyword "Why this keyword?" signals */
.kw-signals-wrap { border-top:1px solid var(--line); margin-top:16px; padding-top:16px; display:flex; flex-direction:column; gap:12px; }
.kw-signal-item { display:flex; flex-direction:column; gap:5px; }
.kw-signal-name { font-size:13px; font-weight:700; }
.kw-signal-tags { display:flex; flex-wrap:wrap; gap:5px; }
.why-good { font-size:11px; font-weight:600; background:#e8f5ef; color:#1a6b35; padding:2px 8px; border-radius:999px; }
.why-warn { font-size:11px; font-weight:600; background:#fff4e0; color:#7a4400; padding:2px 8px; border-radius:999px; }

/* ── History ─────────────────────────────────────────────────────────────── */
.history-section { margin-top:32px; }
.history-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; background:none; border:1px solid var(--line); border-radius:12px; padding:16px 20px; color:var(--muted); font-size:13px; cursor:pointer; text-align:left; }
.history-toggle:hover { border-color:#bbb; color:var(--ink); opacity:1; }
.history-toggle .eyebrow { font-size:11px; margin:0; }
.chevron { transition:transform .2s; flex-shrink:0; }
.history-toggle.open .chevron { transform:rotate(180deg); }
.history-list { background:var(--white); border:1px solid var(--line); border-top:0; border-radius:0 0 12px 12px; overflow:hidden; }
.history-empty { padding:24px; font-size:13px; color:var(--muted); text-align:center; }

/* Client groups */
.history-client-group { border-bottom:1px solid var(--line); }
.history-client-group:last-child { border-bottom:0; }
.history-client-header { display:flex; align-items:center; gap:10px; padding:9px 20px; background:#f7f7f5; border-bottom:1px solid var(--line); }
.history-client-group-name { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#555; }
.history-client-group-count { font-size:11px; color:var(--muted); }

/* Items within groups */
.history-item { display:flex; align-items:center; gap:16px; padding:12px 20px; border-bottom:1px solid #f0f0ee; cursor:pointer; transition:background .12s; }
.history-client-items .history-item:last-child { border-bottom:0; }
.history-item:hover { background:#fafaf8; }
.history-item-info { flex:1; min-width:0; }
.history-item-prospect { font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.history-item-seeds { font-size:12px; color:var(--muted); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.history-item-client-row { margin-top:5px; }
.history-client-tag { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:600; padding:2px 8px; border-radius:999px; cursor:pointer; background:#e8f0ff; color:#1a4db5; border:1px solid transparent; transition:all .12s; }
.history-client-tag:hover { border-color:#1a4db5; }
.history-client-tag.untagged { background:#f3f4f6; color:#999; font-weight:400; }
.history-client-tag.untagged:hover { background:#eee; color:#555; }
.history-item-meta { display:flex; flex-direction:column; gap:3px; font-size:12px; color:var(--muted); white-space:nowrap; flex-shrink:0; text-align:right; }
.history-item-meta strong { color:var(--ink); font-weight:600; }
.history-delete { background:none; border:0; color:#ccc; font-size:18px; line-height:1; padding:4px 6px; cursor:pointer; border-radius:6px; flex-shrink:0; }
.history-delete:hover { color:#a02212; background:#fff0ee; opacity:1; }

/* Inline client name editor */
.client-name-form { display:inline-flex; align-items:center; gap:4px; }
.client-name-input { font-size:12px; padding:2px 8px; border:1px solid #1a4db5; border-radius:6px; outline:none; width:160px; }
.client-save-btn, .client-cancel-btn { background:none; border:none; cursor:pointer; font-size:13px; padding:2px 4px; line-height:1; border-radius:4px; }
.client-save-btn { color:#1a7f4b; }
.client-save-btn:hover { background:#e8f5ef; }
.client-cancel-btn { color:#999; }
.client-cancel-btn:hover { background:#f3f4f6; }

/* Results client label */
.results-client-label { display:inline-block; font-size:12px; font-weight:600; color:#1a4db5; background:#e8f0ff; border-radius:999px; padding:3px 12px; margin-top:4px; margin-bottom:2px; }

/* ── Top 3 Actions ───────────────────────────────────────────────────────── */
.top-actions { margin-bottom:32px; }
.ta-head { margin-bottom:20px; }
.ta-title { font-size:26px; font-weight:800; margin:4px 0 2px; }
.ta-sub { font-size:13px; color:var(--muted); margin:0; }
.ta-list { display:flex; flex-direction:column; gap:14px; }
.ta-card { display:flex; gap:20px; background:var(--white); border:1.5px solid #e8e8e0; border-radius:14px; padding:22px 24px; }
.ta-num { font-size:44px; font-weight:900; color:#e4e4de; line-height:1; width:52px; flex-shrink:0; padding-top:3px; text-align:right; }
.ta-body { flex:1; min-width:0; }
.ta-type { display:inline-block; font-size:10px; font-weight:700; letter-spacing:.08em; padding:3px 10px; border-radius:999px; margin-bottom:8px; }
.ta-card-title { font-size:17px; font-weight:700; margin:0 0 5px; color:var(--ink); }
.ta-inst { font-size:14px; color:#222; margin:0 0 14px; line-height:1.5; }
.ta-lbl { font-size:10px; font-weight:700; letter-spacing:.07em; color:var(--muted); text-transform:uppercase; margin-bottom:4px; }
.ta-why { font-size:13px; color:#555; margin:0 0 14px; line-height:1.55; }
.ta-targets { border-top:1px solid #f0f0ec; padding-top:12px; }
.ta-kws { list-style:none; margin:6px 0 10px; padding:0; display:flex; flex-wrap:wrap; gap:5px; }
.ta-kws li { font-size:12px; background:#f5f5f2; color:#333; border-radius:6px; padding:3px 9px; }
.ta-chips { display:flex; flex-wrap:wrap; gap:5px; }
.ta-chip { font-size:11px; color:var(--muted); background:#f5f5f2; border-radius:6px; padding:2px 8px; }

/* ── Search Growth Plan CTA ──────────────────────────────────────────────── */
.plan-cta { margin-bottom:32px; background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 100%); border-radius:16px; padding:28px 32px; }
.plan-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.plan-cta-label { font-size:10px; font-weight:700; letter-spacing:.1em; color:rgba(255,255,255,.5); text-transform:uppercase; margin-bottom:6px; }
.plan-cta-heading { font-size:22px; font-weight:800; color:#fff; margin:0 0 6px; }
.plan-cta-sub { font-size:14px; color:rgba(255,255,255,.65); margin:0; max-width:480px; line-height:1.5; }
.plan-cta-btn { background:#fff; color:#0f172a; border:none; border-radius:10px; padding:13px 24px; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; transition:opacity .15s; }
.plan-cta-btn:hover { opacity:.88; }
.plan-cta-btn:disabled { opacity:.5; cursor:not-allowed; }

/* ── Growth Plan section ─────────────────────────────────────────────────── */
.growth-plan { margin-top:48px; border-top:2px solid var(--line); padding-top:40px; }
.gp-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:32px; flex-wrap:wrap; }
.gp-header-text h2 { margin:8px 0 10px; }
.gp-summary { font-size:15px; color:var(--muted); margin:0; max-width:620px; line-height:1.6; }
.gp-header-actions { display:flex; gap:10px; flex-shrink:0; padding-top:8px; }
.gp-status { background:#f5f4f1; border-radius:12px; padding:16px 20px; font-size:14px; color:var(--muted); margin-bottom:24px; }
.gp-status.error { background:#fff0ee; color:#c0392b; }

/* Top 3 content moves */
.gp-top3 { margin-bottom:40px; }
.gp-section-title { font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin:0 0 16px; }
.gp-top3-list { display:flex; flex-direction:column; gap:10px; }
.gp-top3-card { display:flex; gap:20px; align-items:flex-start; background:var(--white); border:1.5px solid var(--line); border-radius:14px; padding:20px 22px; cursor:pointer; transition:border-color .15s,box-shadow .15s; }
.gp-top3-card:hover { border-color:#bbb; box-shadow:0 2px 12px rgba(0,0,0,.07); }
.gp-top3-num { font-size:36px; font-weight:900; color:#e0e0d8; line-height:1; width:44px; flex-shrink:0; text-align:right; padding-top:2px; }
.gp-top3-body { flex:1; min-width:0; }
.gp-top3-action-label { display:inline-block; font-size:10px; font-weight:700; letter-spacing:.08em; padding:2px 9px; border-radius:999px; margin-bottom:7px; }
.gp-top3-title { font-size:17px; font-weight:700; color:var(--ink); margin:0 0 4px; }
.gp-top3-rationale { font-size:13px; color:var(--muted); margin:0; line-height:1.5; }

/* Action groups */
.gp-groups { display:flex; flex-direction:column; gap:36px; }
.gp-group-header { display:flex; align-items:baseline; gap:12px; margin-bottom:16px; }
.gp-group-label { font-size:11px; font-weight:800; letter-spacing:.1em; padding:4px 12px; border-radius:999px; }
.gp-group-label.improve { background:#e8f5ef; color:#1a7f4b; }
.gp-group-label.create  { background:#dbeafe; color:#1d4ed8; }
.gp-group-label.support { background:#f3f4f6; color:#374151; }
.gp-group-label.test    { background:#ede9fe; color:#5b21b6; }
.gp-group-desc { font-size:14px; color:var(--muted); }
.gp-card-list { display:flex; flex-direction:column; gap:12px; }

/* Action cards */
.gp-card { background:var(--white); border:1.5px solid var(--line); border-radius:14px; padding:22px 24px; }
.gp-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.gp-card-title { font-size:17px; font-weight:700; color:var(--ink); margin:0 0 4px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.gp-quick-win-badge { font-size:10px; font-weight:700; letter-spacing:.06em; background:#dcfce7; color:#15803d; border-radius:999px; padding:2px 9px; white-space:nowrap; }
.gp-card-url { font-size:12px; color:var(--muted); font-family:monospace; margin:0; }
.gp-card-priority { font-size:11px; font-weight:700; letter-spacing:.06em; padding:3px 10px; border-radius:999px; white-space:nowrap; flex-shrink:0; }
.gp-card-priority.very-high { background:#fef2f2; color:#b91c1c; }
.gp-card-priority.high      { background:#fff7ed; color:#c2410c; }
.gp-card-priority.medium    { background:#fefce8; color:#854d0e; }
.gp-card-priority.low       { background:#f9fafb; color:#6b7280; }
.gp-card-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.gp-card-chip { font-size:11px; color:var(--muted); background:#f5f5f2; border-radius:6px; padding:3px 9px; }
.gp-card-rationale { font-size:14px; color:#333; line-height:1.55; margin:0 0 16px; }
.gp-card-kws { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:16px; }
.gp-card-kw { font-size:12px; background:#f5f5f2; color:#444; border-radius:6px; padding:3px 9px; }
.gp-card-actions { display:flex; gap:10px; flex-wrap:wrap; }
.gp-card-btn { font-size:13px; font-weight:600; padding:9px 18px; border-radius:8px; cursor:pointer; border:1.5px solid; transition:opacity .15s; }
.gp-card-btn.primary { background:#111; color:#fff; border-color:#111; }
.gp-card-btn.primary:hover { opacity:.85; }
.gp-card-btn.secondary { background:transparent; color:#555; border-color:#ddd; }
.gp-card-btn.secondary:hover { border-color:#aaa; color:#111; }
.gp-card-btn:disabled { opacity:.4; cursor:not-allowed; }

/* Drawer */
.gp-drawer { position:fixed; inset:0; z-index:1000; display:flex; align-items:stretch; }
.gp-drawer-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.4); }
.gp-drawer-panel { position:relative; margin-left:auto; width:min(680px,100vw); background:var(--white); display:flex; flex-direction:column; overflow:hidden; box-shadow:-4px 0 32px rgba(0,0,0,.18); }
.gp-drawer-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:28px 28px 20px; border-bottom:1px solid var(--line); flex-shrink:0; }
.gp-drawer-type-label { font-size:10px; font-weight:700; letter-spacing:.1em; color:var(--muted); text-transform:uppercase; margin-bottom:6px; }
.gp-drawer-title { font-size:22px; font-weight:800; color:var(--ink); margin:0 0 4px; }
.gp-drawer-url { font-size:12px; color:var(--muted); font-family:monospace; }
.gp-drawer-close { background:none; border:none; font-size:28px; line-height:1; cursor:pointer; color:var(--muted); padding:0; flex-shrink:0; margin-top:-4px; }
.gp-drawer-close:hover { color:var(--ink); }
.gp-drawer-body { flex:1; overflow-y:auto; padding:24px 28px 40px; }

/* Drawer content sections */
.gp-loading { color:var(--muted); font-size:14px; padding:20px 0; }
.gp-drawer-section { margin-bottom:28px; }
.gp-drawer-section-title { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:0 0 12px; }
.gp-opportunity-headline { font-size:16px; font-weight:700; color:var(--ink); margin:0 0 8px; }
.gp-opportunity { font-size:15px; color:#222; line-height:1.6; margin:0 0 24px; }

/* ANALYSING source header — shown at top of IMPROVE drawer */
.gp-analysing-source {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    background: var(--paper);
    border-radius: 6px;
    margin-bottom: 16px;
    font-size: 11px;
}
.gp-analysing-label {
    font-weight: 700;
    letter-spacing: .08em;
    color: var(--muted);
    text-transform: uppercase;
    flex-shrink: 0;
}
.gp-analysing-path {
    font-family: ui-monospace, monospace;
    color: var(--ink);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.gp-analysing-cached {
    margin-left: auto;
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--subtle);
    flex-shrink: 0;
}
.gp-analysing-mismatch {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 13px;
    line-height: 1.5;
    flex-wrap: wrap;
}
.gp-analysing-mismatch-icon { font-size: 16px; flex-shrink: 0; }
.gp-analysing-mismatch > span { flex: 1; min-width: 160px; }
.gp-analysing-reanalyse { margin-top: 4px; }
@media (prefers-color-scheme: dark) {
    .gp-analysing-source { background: #1e2025; }
    .gp-analysing-mismatch { background: #2a2400; border-color: #665500; }
}

/* Extra-cluster opportunity note inside a merged IMPROVE card */
.gp-card-extra-clusters { font-size: 12px; color: var(--muted); margin: 4px 0 0; }

/* Coverage table */
.gp-coverage { width:100%; border-collapse:collapse; font-size:13px; margin-bottom:0; }
.gp-coverage th { text-align:left; font-weight:600; color:var(--muted); font-size:11px; letter-spacing:.05em; text-transform:uppercase; padding:0 12px 8px 0; border-bottom:1px solid var(--line); }
.gp-coverage td { padding:8px 12px 8px 0; border-bottom:1px solid #f0f0ec; vertical-align:top; }
.gp-coverage td:last-child { padding-right:0; }
.gp-cov-strong { color:#1a7f4b; font-weight:600; }
.gp-cov-good   { color:#2a6b2a; }
.gp-cov-weak   { color:#a35c00; }
.gp-cov-miss   { color:#b91c1c; font-weight:600; }

/* Recommended changes */
.gp-change { background:#f9f9f7; border-radius:10px; padding:16px 18px; margin-bottom:10px; }
.gp-change-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.gp-change-rank { font-size:13px; font-weight:800; color:#bbb; width:22px; flex-shrink:0; }
.gp-change-element { font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); }
.gp-change-importance { font-size:10px; padding:2px 8px; border-radius:999px; font-weight:700; }
.gp-change-importance.critical { background:#fef2f2; color:#b91c1c; }
.gp-change-importance.high     { background:#fff7ed; color:#c2410c; }
.gp-change-importance.medium   { background:#fefce8; color:#854d0e; }
.gp-change-importance.low      { background:#f9fafb; color:#6b7280; }
.gp-change-before-after { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.gp-change-col-label { font-size:10px; font-weight:700; letter-spacing:.07em; color:var(--muted); text-transform:uppercase; margin-bottom:4px; }
.gp-change-text { font-size:13px; line-height:1.5; color:#333; background:var(--white); border:1px solid var(--line); border-radius:6px; padding:8px 10px; white-space:pre-wrap; word-break:break-word; }
.gp-change-text.new { border-color:#bce8cc; background:#f0fbf5; color:#1a5c35; }
.gp-change-why { font-size:13px; color:var(--muted); line-height:1.5; margin:0; }
.gp-change-kws { font-size:12px; color:var(--muted); margin:6px 0 0; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.gp-brief-link { color:var(--accent,#0070f3); text-decoration:none; font-family:monospace; font-size:12px; }
.gp-brief-link:hover { text-decoration:underline; }

/* Content structure */
.gp-struct { list-style:none; margin:0; padding:0; }
.gp-struct-item { border-left:3px solid var(--line); padding:10px 14px; margin-bottom:8px; border-radius:0 8px 8px 0; background:#fafaf8; }
.gp-struct-heading { font-size:14px; font-weight:700; color:var(--ink); margin:0 0 3px; }
.gp-struct-purpose { font-size:13px; color:var(--muted); margin:0 0 4px; }
.gp-struct-pts { font-size:12px; color:#555; margin:0; }

/* Internal links */
.gp-links { list-style:none; margin:0; padding:0; }
.gp-links li { font-size:13px; color:#333; padding:4px 0; border-bottom:1px solid #f0f0ec; }
.gp-links li:last-child { border:none; }
.gp-ilinks { list-style:none; margin:0; padding:0; }
.gp-ilink { padding:10px 0; border-bottom:1px solid #f0f0ec; }
.gp-ilink:last-child { border:none; }
.gp-ilink-route { font-size:12px; font-family:monospace; color:var(--ink); font-weight:600; word-break:break-all; }
.gp-ilink-anchor { font-size:12px; color:var(--muted); margin-top:3px; }
.gp-ilink-why { font-size:12px; color:var(--muted); margin-top:2px; font-style:italic; }

/* Drawer footer actions */
.gp-drawer-footer { display:flex; gap:12px; padding:20px 28px; border-top:1px solid var(--line); background:var(--white); flex-shrink:0; flex-wrap:wrap; }

/* Written content viewer */
.gp-written { font-size:14px; line-height:1.7; color:#222; }
.gp-written h2 { font-size:17px; margin:20px 0 8px; color:var(--ink); }
.gp-written h3 { font-size:15px; margin:16px 0 6px; color:var(--ink); }
.gp-written p { margin:0 0 12px; }
.gp-meta-row { display:grid; grid-template-columns:auto 1fr; gap:6px 16px; font-size:13px; margin-bottom:20px; }
.gp-meta-row dt { font-weight:700; color:var(--muted); white-space:nowrap; }
.gp-meta-row dd { color:#222; margin:0; word-break:break-word; }

/* Ads brief */
.gp-ad-group { background:#f9f9f7; border-radius:12px; padding:18px 20px; margin-bottom:14px; }
.gp-ad-group-name { font-size:15px; font-weight:700; color:var(--ink); margin:0 0 6px; }
.gp-ad-group-rationale { font-size:13px; color:var(--muted); margin:0 0 14px; line-height:1.5; }
.gp-ad-assets { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.gp-ad-asset-label { font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); margin:0 0 6px; }
.gp-ad-asset-list { list-style:none; margin:0; padding:0; }
.gp-ad-asset-list li { font-size:13px; color:#222; padding:4px 0; border-bottom:1px solid #ece; display:flex; justify-content:space-between; gap:8px; }
.gp-ad-asset-list li:last-child { border:none; }
.gp-ad-char { font-size:11px; color:var(--muted); white-space:nowrap; flex-shrink:0; }
.gp-ad-char.over { color:#b91c1c; font-weight:700; }
.gp-ad-kw-list { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:12px; }
.gp-ad-kw { font-size:12px; background:#e8e8f8; color:#1d4ed8; border-radius:6px; padding:3px 9px; }
.gp-ad-neg { display:flex; flex-wrap:wrap; gap:5px; }
.gp-ad-neg-tag { font-size:12px; background:#fef2f2; color:#b91c1c; border-radius:6px; padding:3px 9px; }

/* Brief sections */
.gp-brief-block { margin-bottom:20px; }
.gp-brief-label { font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); margin:0 0 6px; }
.gp-brief-value { font-size:14px; color:#222; line-height:1.55; margin:0; }
.gp-brief-copy { font-family:inherit; font-size:13px; background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:10px 12px; color:#333; line-height:1.55; cursor:text; }
.gp-copy-btn { font-size:12px; padding:5px 12px; border-radius:6px; border:1px solid var(--line); background:var(--white); cursor:pointer; color:var(--muted); margin-top:4px; }
.gp-copy-btn:hover { color:var(--ink); border-color:#aaa; }

/* flags / confirm items */
.gp-flags { list-style:none; margin:0; padding:0; }
.gp-flags li { font-size:13px; color:#92400e; background:#fef3c7; border-radius:6px; padding:6px 10px; margin-bottom:4px; }

/* ── Utility ─────────────────────────────────────────────────────────────── */
.hidden { display:none !important; }
button.small { font-size:12px; padding:8px 14px; border-radius:8px; }

/* ── Top navigation ──────────────────────────────────────────────────────── */
.top-nav { background:var(--white); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:200; }
.top-nav-inner { width:min(1280px,calc(100% - 48px)); margin:0 auto; display:flex; align-items:center; justify-content:space-between; height:52px; }
.top-nav-brand { font-size:11px; font-weight:800; letter-spacing:.14em; color:var(--accent); text-transform:uppercase; }
.top-nav-links { display:flex; gap:4px; }
.nav-link { background:none; border:0; font-size:13px; font-weight:600; color:var(--muted); padding:8px 14px; border-radius:8px; cursor:pointer; transition:color .15s,background .15s; }
.nav-link:hover { color:var(--ink); opacity:1; background:#f5f5f2; }
.nav-link.active { color:var(--ink); background:var(--paper); }

/* ── Adjust wrap padding now we have a sticky nav ────────────────────────── */
.wrap { padding-top:48px; }

/* ── Projects screen ─────────────────────────────────────────────────────── */
.projects-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:28px; flex-wrap:wrap; }
.projects-heading { font-size:36px; font-weight:800; letter-spacing:-.04em; margin:6px 0 0; }
.projects-search { width:100%; max-width:420px; font:inherit; font-size:14px; border:1.5px solid #d6d6d6; border-radius:10px; background:var(--white); padding:11px 15px; outline:none; transition:border-color .15s; margin-bottom:24px; display:block; }
.projects-search:focus { border-color:var(--ink); }
.projects-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px; }
.projects-empty { grid-column:1/-1; padding:48px 24px; text-align:center; color:var(--muted); font-size:15px; }
.projects-empty strong { display:block; font-size:20px; font-weight:700; color:var(--ink); margin-bottom:8px; }

/* Project card */
.project-card { background:var(--white); border:1.5px solid var(--line); border-radius:var(--radius); padding:24px; cursor:pointer; transition:border-color .15s,box-shadow .15s; display:flex; flex-direction:column; gap:12px; }
.project-card:hover { border-color:#bbb; box-shadow:0 2px 16px rgba(0,0,0,.07); }
.project-card-name { font-size:17px; font-weight:800; letter-spacing:-.02em; color:var(--ink); }
.project-card-domain { font-size:12px; color:var(--muted); font-family:monospace; }
.project-card-stats { display:flex; gap:18px; }
.project-card-stat { display:flex; flex-direction:column; gap:2px; }
.project-card-stat-val { font-size:18px; font-weight:800; color:var(--ink); line-height:1; }
.project-card-stat-lbl { font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.project-card-foot { display:flex; align-items:center; justify-content:space-between; margin-top:4px; }
.project-card-date { font-size:11px; color:var(--subtle); }
.project-card-arrow { font-size:16px; color:#ccc; }

/* ── Project Dashboard ───────────────────────────────────────────────────── */
.pdash-header { display:flex; align-items:center; gap:16px; margin-bottom:28px; flex-wrap:wrap; }
.pdash-title-wrap { flex:1; min-width:0; }
.pdash-name { font-size:30px; font-weight:800; letter-spacing:-.04em; margin:0; }
.pdash-domain { font-size:13px; color:var(--muted); font-family:monospace; margin-top:2px; }
.pdash-tabs { margin-bottom:28px; }
.ptab { background:none; border:0; color:var(--muted); font-size:13px; font-weight:600; padding:10px 18px; border-radius:8px 8px 0 0; cursor:pointer; transition:color .15s,background .15s; }
.ptab:hover { color:var(--ink); opacity:1; }
.ptab.active { color:var(--ink); background:var(--paper); border:2px solid var(--line); border-bottom:2px solid var(--white); margin-bottom:-2px; }
.ptab-panel.hidden { display:none; }

/* Dashboard stats row */
.pdash-stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:28px; }
.pdash-stat { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:20px 22px; }
.pdash-stat-val { font-size:26px; font-weight:800; letter-spacing:-.03em; color:var(--ink); margin-bottom:4px; }
.pdash-stat-lbl { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }

/* Unlinked searches panel */
.pdash-unlinked { margin-bottom:28px; background:#fffbeb; border:1px solid #fde68a; border-radius:12px; padding:18px 22px; }
.pdash-unlinked-title { font-size:13px; font-weight:700; color:#92400e; margin:0 0 12px; }
.pdash-unlinked-list { display:flex; flex-direction:column; gap:6px; }
.pdash-unlinked-item { display:flex; align-items:center; gap:12px; font-size:13px; }
.pdash-unlinked-info { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pdash-assign-btn { font-size:12px; padding:5px 12px; border-radius:6px; border:1px solid #d97706; background:none; color:#92400e; cursor:pointer; white-space:nowrap; }
.pdash-assign-btn:hover { background:#fef3c7; opacity:1; }

/* Research bar + list */
.pdash-research-bar { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:12px; }
.pdash-research-list { display:flex; flex-direction:column; gap:10px; }
.pdash-research-empty { padding:32px; text-align:center; color:var(--muted); font-size:14px; border:1px dashed var(--line); border-radius:12px; }

/* Research item in dashboard */
.pdash-research-item { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:18px 20px; display:flex; align-items:center; gap:16px; cursor:pointer; transition:background .12s; }
.pdash-research-item:hover { background:#fafaf8; }
.pdash-research-item-info { flex:1; min-width:0; }
.pdash-research-item-url { font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pdash-research-item-seeds { font-size:12px; color:var(--muted); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pdash-research-item-meta { text-align:right; flex-shrink:0; }
.pdash-research-item-kws { font-size:18px; font-weight:800; color:var(--ink); }
.pdash-research-item-date { font-size:11px; color:var(--muted); margin-top:2px; }

/* ── Modal ───────────────────────────────────────────────────────────────── */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:500; display:flex; align-items:center; justify-content:center; padding:20px; }
.modal-panel { background:var(--white); border-radius:var(--radius); width:100%; max-width:480px; box-shadow:0 24px 64px rgba(0,0,0,.22); overflow:hidden; }
.modal-header { display:flex; align-items:center; justify-content:space-between; padding:22px 24px 0; }
.modal-title { font-size:18px; font-weight:800; margin:0; }
.modal-close { background:none; border:0; font-size:24px; line-height:1; color:var(--muted); cursor:pointer; padding:4px 6px; border-radius:6px; }
.modal-close:hover { color:var(--ink); opacity:1; }
.modal-body { padding:20px 24px; }
.modal-footer { display:flex; gap:10px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }

/* ── Mobile ──────────────────────────────────────────────────────────────── */
@media (max-width:1024px) {
  .summary-grid { grid-template-columns:repeat(2,1fr); }
  .filters-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px) {
  .wrap { width:calc(100% - 32px); padding-top:40px; }
  h1 { font-size:clamp(44px,13vw,72px); }
  .search-card { grid-template-columns:1fr; }
  .full { grid-column:auto; }
  .results-head { flex-direction:column; align-items:stretch; }
  .result-actions { flex-direction:column; }
  .summary-grid { grid-template-columns:1fr; }
  .actions { flex-direction:column; align-items:stretch; }
  .presets { gap:6px; }
  .preset { font-size:11px; padding:6px 11px; }
  .filters-grid { grid-template-columns:1fr; }
  .clusters-grid { grid-template-columns:1fr; }
  .tabs { gap:2px; }
  .tab { font-size:12px; padding:8px 12px; }
}

/* ── Target Page Override ─────────────────────────────────────────────────── */
.gp-target-override {
  margin: 24px 0 8px;
  padding: 14px 16px;
  background: #f8f9fa;
  border: 1px solid var(--line);
  border-radius: 8px;
}
@media (prefers-color-scheme: dark) {
  .gp-target-override { background: #1e2025; border-color: #333; }
}
.gp-to-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.gp-to-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--muted);
  text-transform: uppercase;
  white-space: nowrap;
}
.gp-to-url {
  font-size: 13px;
  font-family: monospace;
  color: var(--ink);
  flex: 1;
  word-break: break-all;
}
.gp-to-override-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 10px;
  background: #e0f2fe;
  color: #0369a1;
  margin-left: 6px;
  vertical-align: middle;
  font-family: sans-serif;
}
.gp-to-change-btn,
.gp-to-clear-btn {
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
  white-space: nowrap;
}
.gp-to-change-btn:hover { background: #f0f0f0; }
.gp-to-clear-btn { color: #b91c1c; border-color: #fca5a5; }
.gp-to-clear-btn:hover { background: #fef2f2; }
.gp-to-form {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.gp-to-input {
  flex: 1;
  min-width: 200px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 13px;
  font-family: monospace;
}
.gp-to-hint {
  font-size: 11px;
  color: var(--muted);
  margin: 8px 0 0;
}
}

/* ── Target page confirmation step (shown in drawer before brief) ─────────── */
.cp-confirm-wrap {
  padding: 4px 0 8px;
}
.cp-confirm-heading {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 6px;
  color: var(--ink);
}
.cp-confirm-sub {
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 18px;
  line-height: 1.5;
}
.cp-confirm-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}
.cp-confirm-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 9px;
  cursor: pointer;
  transition: border-color .12s, background .12s;
}
.cp-confirm-option input[type="radio"] { margin-top: 3px; flex-shrink: 0; }
.cp-confirm-option:hover { border-color: #93c5fd; background: #f8faff; }
.cp-confirm-option.recommended { border-color: #3b82f6; background: #eff6ff; }
@media (prefers-color-scheme: dark) {
  .cp-confirm-option:hover { background: #1a1d22; border-color: #4b5563; }
  .cp-confirm-option.recommended { border-color: #1d4ed8; background: #1e3a5f22; }
}
.cp-confirm-option-body { flex: 1; min-width: 0; }
.cp-confirm-option-top {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 3px;
}
.cp-confirm-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.cp-confirm-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  background: #dbeafe;
  color: #1d4ed8;
  white-space: nowrap;
}
.cp-home-badge {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  background: #f3f4f6;
  color: #6b7280;
  white-space: nowrap;
}
@media (prefers-color-scheme: dark) {
  .cp-confirm-badge { background: #1e3a5f; color: #93c5fd; }
  .cp-home-badge { background: #1f2937; color: #9ca3af; }
}
.cp-confirm-path {
  display: block;
  font-size: 11px;
  font-family: monospace;
  color: var(--muted);
  margin-bottom: 4px;
}
.cp-confirm-note {
  display: block;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
}
.cp-confirm-others-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--muted);
  margin: 6px 0 4px;
}
.cp-confirm-manual {
  border-top: 1px solid var(--line);
  padding-top: 14px;
  margin-bottom: 18px;
}
.cp-confirm-manual-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 8px;
}
.cp-confirm-actions { display: flex; gap: 10px; }

/* ── Card-level target page display ──────────────────────────────────────── */
.gp-card-target {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 8px 0 4px;
  padding: 8px 10px;
  background: #f8f9fa;
  border-radius: 6px;
  border: 1px solid var(--line);
}
@media (prefers-color-scheme: dark) {
  .gp-card-target { background: #1a1d22; border-color: #2a2d35; }
}
.gp-card-target-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
  flex-shrink: 0;
}
.gp-card-target-url {
  font-size: 12px;
  font-family: monospace;
  color: var(--ink);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gp-target-badge {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 10px;
  white-space: nowrap;
  flex-shrink: 0;
}
.gp-target-auto-badge    { background: #f0f0f0; color: #666; }
.gp-target-override-badge { background: #dbeafe; color: #1d4ed8; }
@media (prefers-color-scheme: dark) {
  .gp-target-auto-badge    { background: #2a2d35; color: #aaa; }
  .gp-target-override-badge { background: #1e3a5f; color: #93c5fd; }
}
.gp-change-page-btn {
  font-size: 11px;
  padding: 3px 10px;
  border-radius: 6px;
  border: 1px solid var(--line);
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1.5;
}
.gp-change-page-btn:hover { background: #f0f0f0; }

/* Why this page? expandable */
.gp-why-details { margin-top: 6px; }
.gp-why-summary {
  font-size: 11px;
  color: var(--muted);
  cursor: pointer;
  list-style: none;
  display: inline;
}
.gp-why-summary::-webkit-details-marker { display: none; }
.gp-why-summary::before { content: '▸ '; }
details[open] .gp-why-summary::before { content: '▾ '; }
.gp-why-body {
  margin-top: 6px;
  padding: 10px 12px;
  background: #f8f9fa;
  border-radius: 6px;
  border: 1px solid var(--line);
}
@media (prefers-color-scheme: dark) {
  .gp-why-body { background: #1a1d22; border-color: #2a2d35; }
}
.gp-why-rationale { font-size: 12px; color: var(--ink); margin: 0 0 8px; }
.gp-why-signals { display: flex; flex-wrap: wrap; gap: 5px; }
.gp-why-good { font-size: 11px; color: #166534; background: #dcfce7; padding: 2px 8px; border-radius: 10px; }
.gp-why-info { font-size: 11px; color: var(--muted); background: #f3f4f6; padding: 2px 8px; border-radius: 10px; }
@media (prefers-color-scheme: dark) {
  .gp-why-good { color: #86efac; background: #14532d; }
  .gp-why-info { color: #9ca3af; background: #1f2937; }
}

/* ── Change Page modal ────────────────────────────────────────────────────── */
.cp-modal-panel {
  background: var(--white);
  border-radius: 14px;
  width: min(560px, 95vw);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 60px rgba(0,0,0,.18);
}
@media (prefers-color-scheme: dark) {
  .cp-modal-panel { background: #1c1f26; }
}
.cp-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.cp-modal-title { font-size: 16px; font-weight: 700; margin: 0; }
.cp-cluster-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  padding: 0 22px;
  margin: 12px 0 6px;
  flex-shrink: 0;
}
.cp-modal-body {
  overflow-y: auto;
  padding: 0 0 20px;
  display: flex;
  flex-direction: column;
}
#cpAlternatives { padding: 0 22px; }
.cp-section-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--muted);
  margin: 10px 0 6px;
}
.cp-page-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-bottom: 6px;
  cursor: pointer;
  transition: background .12s;
}
.cp-page-option:hover { background: #f8f9fa; }
.cp-page-option.current { border-color: #93c5fd; background: #eff6ff; }
@media (prefers-color-scheme: dark) {
  .cp-page-option:hover { background: #1a1d22; }
  .cp-page-option.current { border-color: #1d4ed8; background: #1e3a5f22; }
}
.cp-page-option-main { flex: 1; min-width: 0; }
.cp-page-title {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cp-page-url {
  display: block;
  font-size: 11px;
  font-family: monospace;
  color: var(--muted);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cp-relevance-dots { display: flex; gap: 2px; flex-shrink: 0; }
.cp-dot { width: 6px; height: 6px; border-radius: 50%; background: #e5e7eb; }
.cp-dot.active { background: #16a34a; }
.cp-page-current-badge {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  background: #dbeafe;
  color: #1d4ed8;
  flex-shrink: 0;
}
.cp-select-btn {
  flex-shrink: 0;
  font-size: 12px !important;
  padding: 4px 12px !important;
}
.cp-manual {
  padding: 14px 22px 0;
  border-top: 1px solid var(--line);
  margin-top: 14px;
  flex-shrink: 0;
}
.cp-manual-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 8px;
}
.cp-manual-row {
  display: flex;
  gap: 8px;
}
.cp-manual-input {
  flex: 1;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 7px;
  font-size: 13px;
  font-family: monospace;
}
.cp-saving-msg {
  font-size: 12px;
  color: var(--muted);
  padding: 8px 22px 0;
  flex-shrink: 0;
}
