:root {
  --royal:#173b7a;
  --royal-2:#2452a0;
  --sun:#f4a61d;
  --sun-dark:#d88700;
  --bg:#f7f9fc;
  --panel:#fff;
  --surface:#f1f5f9;
  --surface-2:#e7edf5;
  --border:#dce4ee;
  --border-strong:#c7d2e0;
  --text:#0f1d33;
  --muted:#5d6b7f;
  --quiet:#8997a9;
  --green:#1f9d65;
  --blue:#2f6dcc;
  --orange:#e68a16;
  --red:#c64b4b;
  --shadow:0 8px 24px rgba(28,50,82,.12);
  --display:'Outfit',sans-serif;
  --sans:'Inter',sans-serif;
  --mono:'JetBrains Mono',monospace;
}

html[data-theme="dark"] {
  --bg:#0b1220; --panel:#111b2d; --surface:#172338; --surface-2:#21304a;
  --border:#273851; --border-strong:#3b4d69; --text:#eef4fd; --muted:#a8b5c8; --quiet:#74839a;
  --shadow:0 8px 26px rgba(0,0,0,.35);
}

* { box-sizing:border-box; }
html, body { width:100%; height:100%; margin:0; overflow:hidden; }
body { background:var(--bg); color:var(--text); font-family:var(--sans); font-size:14px; }
button, input, select, textarea { font:inherit; }
button { cursor:pointer; }

.topbar {
  height:58px; display:flex; align-items:center; padding:0 18px; flex-shrink:0;
  background:linear-gradient(105deg,#07313c 0%,#0a3d4c 64%,#155761 100%); color:#fff; box-shadow:0 2px 10px rgba(0,0,0,.25); position:relative; z-index:1000;
}
.brand { color:inherit; text-decoration:none; display:flex; align-items:center; gap:10px; }
.brand-mark { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; color:#493000; background:linear-gradient(135deg,#ffd76f,var(--sun)); box-shadow:0 6px 18px rgba(244,166,29,.28); }
.brand-mark svg { width:27px; height:27px; }
.brand-name { display:block; font:800 16px/1.05 var(--display); letter-spacing:-.02em; }
.brand-subline { display:flex;align-items:center;gap:9px;margin-top:3px; }
.brand-subtitle { display:block; color:rgba(255,255,255,.62); font:500 8px/1 var(--mono); text-transform:uppercase; letter-spacing:.07em; }
.brand-maker { display:inline-flex;align-items:center;gap:4px;padding-left:8px;border-left:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.62);font:600 7px/1 var(--mono);text-transform:uppercase;letter-spacing:.05em; }
.brand-maker svg { width:14px;height:14px; }
.brand-maker rect,.brand-maker path { fill:none;stroke:#ffd061;stroke-linecap:round;stroke-linejoin:round; }
.brand-maker rect { stroke-width:1.6; }.brand-maker path { stroke-width:1.9; }
.brand-maker strong { color:#fff;font:800 10px/1 var(--display);text-transform:none;letter-spacing:-.01em; }
.topbar-right { margin-left:auto; display:flex; align-items:center; gap:12px; }
.topbar-text-button,.topbar-text-link { border:1px solid rgba(255,255,255,.22); border-radius:7px; padding:7px 9px; background:rgba(255,255,255,.08); color:#fff; text-decoration:none; font-size:9px; font-weight:700; }
.topbar-text-button:hover,.topbar-text-link:hover { background:rgba(255,255,255,.16); }
.signed-in-user { color:rgba(255,255,255,.7); font:600 8px var(--mono); text-transform:uppercase; letter-spacing:.05em; }
.database-status { display:flex; align-items:center; gap:7px; color:rgba(255,255,255,.74); font-size:11px; }
.database-status strong { color:#fff; }
.live-dot { width:7px; height:7px; background:#57d68d; border-radius:50%; box-shadow:0 0 0 3px rgba(87,214,141,.18); }
.icon-button { width:34px; height:34px; border:1px solid rgba(255,255,255,.22); color:#fff; background:rgba(255,255,255,.1); border-radius:7px; }
.theme-dark { display:none; }
html[data-theme="dark"] .theme-light { display:none; }
html[data-theme="dark"] .theme-dark { display:inline; }

.app-shell { height:calc(100vh - 58px); display:flex; }
.mode-nav { width:82px; flex-shrink:0; background:var(--panel); border-right:1px solid var(--border); display:flex; flex-direction:column; padding:12px 7px; gap:5px; z-index:50; }
.mode-button { min-height:64px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; border:0; border-radius:9px; color:var(--muted); background:transparent; font-size:10px; font-weight:700; }
.mode-nav a.mode-button { text-decoration:none; text-align:center; }
.mode-button svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.mode-button:hover { background:var(--surface); color:var(--royal-2); }
.mode-button.active { color:var(--royal-2); background:#e9f0fb; box-shadow:inset 3px 0 var(--sun); }
html[data-theme="dark"] .mode-button.active { background:#1a3155; color:#8ab6ff; }
.nav-spacer { flex:1; }

.workspace { flex:1; min-width:0; display:grid; grid-template-columns:minmax(420px, 58%) minmax(400px, 42%); }
.map-pane { position:relative; min-width:0; background:#dce5e9; }
#map { position:absolute; inset:0; z-index:1; }
.map-overlay { position:absolute; z-index:500; background:color-mix(in srgb, var(--panel) 94%, transparent); border:1px solid var(--border); box-shadow:var(--shadow); }
.map-legend { left:14px; bottom:14px; border-radius:8px; padding:9px 11px; display:flex; gap:12px; color:var(--muted); font:500 9px var(--mono); }
.map-legend span { display:flex; align-items:center; gap:5px; }
.legend-dot { width:8px; height:8px; border-radius:50%; }
.high { background:var(--green); }.promising { background:var(--blue);}.developing { background:var(--orange);}.low { background:var(--red);}
.map-reset { top:14px; right:14px; border-radius:7px; padding:8px 10px; color:var(--text); font-size:11px; font-weight:600; }
.map-loading { position:absolute; z-index:600; inset:50% auto auto 50%; transform:translate(-50%,-50%); display:none; align-items:center; gap:9px; padding:12px 16px; border-radius:9px; background:var(--panel); box-shadow:var(--shadow); color:var(--muted); font-weight:600; }
.map-loading.visible { display:flex; }
.spinner { width:16px; height:16px; border:2px solid var(--border-strong); border-top-color:var(--royal-2); border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

.search-pane { min-width:0; background:var(--panel); display:flex; flex-direction:column; overflow:hidden; border-left:1px solid var(--border); }
.panel-head { padding:20px 22px 13px; display:flex; align-items:flex-start; gap:12px; border-bottom:1px solid var(--border); }
.panel-head > div { flex:1; }
.eyebrow { display:block; margin-bottom:5px; color:var(--sun-dark); font:700 9px var(--mono); letter-spacing:.1em; }
h1, h2, h3 { font-family:var(--display); margin:0; }
h1 { font-size:21px; line-height:1.15; letter-spacing:-.025em; }
.panel-head p { margin:5px 0 0; color:var(--muted); font-size:11px; line-height:1.45; max-width:570px; }
.filter-toggle { flex-shrink:0; border:1px solid var(--border-strong); background:var(--surface); color:var(--text); border-radius:7px; padding:7px 9px; font-size:11px; font-weight:700; }
.filter-toggle span { display:inline-grid; place-items:center; min-width:17px; height:17px; padding:0 4px; margin-left:3px; color:#fff; background:var(--royal-2); border-radius:9px; font:600 9px var(--mono); }

#search-form { padding:13px 22px 11px; border-bottom:1px solid var(--border); }
.search-box { height:42px; border:1.5px solid var(--border-strong); border-radius:8px; display:flex; align-items:center; overflow:hidden; background:var(--panel); transition:border-color .15s,box-shadow .15s; }
.search-box:focus-within { border-color:var(--royal-2); box-shadow:0 0 0 3px rgba(36,82,160,.11); }
.search-box svg { width:18px; margin:0 10px; fill:none; stroke:var(--quiet); stroke-width:2; }
.search-box input { min-width:0; flex:1; height:100%; border:0; outline:0; color:var(--text); background:transparent; }
.search-box button, .deep-box button { height:100%; border:0; padding:0 16px; background:var(--royal); color:#fff; font-weight:700; font-size:12px; }
.search-box button:hover, .deep-box button:hover { background:var(--royal-2); }
.deep-search-block > label { display:block; margin-bottom:7px; font-size:11px; font-weight:700; }
.deep-box { border:1.5px solid var(--border-strong); border-radius:8px; overflow:hidden; background:var(--panel); }
.deep-box:focus-within { border-color:var(--royal-2); box-shadow:0 0 0 3px rgba(36,82,160,.11); }
.deep-box textarea { width:100%; min-height:67px; padding:10px 11px; resize:vertical; border:0; outline:0; color:var(--text); background:transparent; font-size:12px; line-height:1.5; }
.deep-box button { width:100%; height:34px; display:flex; align-items:center; justify-content:space-between; }
.example-prompts { display:flex; gap:6px; margin-top:7px; }
.example-prompts button { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border:1px solid var(--border); background:var(--surface); color:var(--muted); border-radius:12px; padding:4px 7px; font-size:9px; }
.parsed-row { margin-top:8px; display:flex; align-items:flex-start; gap:7px; color:var(--muted); font-size:9px; }
#parsed-chips { display:flex; flex-wrap:wrap; gap:4px; }
.parsed-chip { border:1px solid #a9c6eb; background:#edf5ff; color:var(--royal-2); border-radius:9px; padding:2px 6px; }
html[data-theme="dark"] .parsed-chip { background:#1a3155; }

.quick-filters { display:grid; grid-template-columns:1.25fr 1.15fr .8fr .8fr; gap:8px; margin-top:9px; }
label { color:var(--muted); font-size:9px; font-weight:700; }
label input, label select, .ranking-row select { display:block; width:100%; height:33px; margin-top:4px; padding:0 8px; border:1px solid var(--border); border-radius:6px; outline:0; background:var(--surface); color:var(--text); font-size:10px; }
label input:focus, label select:focus { border-color:var(--royal-2); }
.advanced-filters { display:none; margin-top:10px; padding-top:10px; border-top:1px solid var(--border); }
.advanced-filters.open { display:block; }
.filter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.range-inputs { display:flex; gap:4px; }
.range-inputs input { min-width:0; }
.clear-filters { margin-top:8px; padding:0; border:0; background:none; color:var(--royal-2); font-size:10px; font-weight:700; }
.ranking-row { display:flex; align-items:center; gap:8px; margin-top:10px; }
.ranking-row label { white-space:nowrap; }
.ranking-row select { flex:1; width:auto; margin:0; }
.info-button { width:22px; height:22px; border:1px solid var(--border-strong); border-radius:50%; background:var(--panel); color:var(--royal-2); font:700 11px var(--mono); }

.results-head { min-height:39px; display:flex; align-items:center; justify-content:space-between; padding:0 22px; border-bottom:1px solid var(--border); color:var(--muted); font-size:10px; }
.results-head strong { color:var(--text); font-size:12px; }
#profile-label { padding:3px 7px; border:1px solid var(--border); background:var(--surface); border-radius:9px; font:500 8px var(--mono); }
.limit-notice { padding:7px 22px; background:#fff7df; color:#745314; border-bottom:1px solid #f2d993; font-size:9px; }
html[data-theme="dark"] .limit-notice { background:#3b2c0b; color:#f6d980; border-color:#634b14; }
.results-list { flex:1; overflow:auto; padding:8px 12px 16px; }
.empty-state { margin:28px auto; max-width:310px; text-align:center; color:var(--muted); font-size:12px; line-height:1.55; }
.empty-state strong { display:block; color:var(--text); font:700 15px var(--display); margin-bottom:4px; }
.result-card { display:grid; grid-template-columns:42px 1fr; gap:10px; padding:11px 9px; border:1px solid transparent; border-bottom-color:var(--border); background:transparent; cursor:pointer; }
.result-card:hover, .result-card.selected { border-color:#b8cae5; border-radius:8px; background:var(--surface); box-shadow:0 2px 8px rgba(28,50,82,.06); }
.score-ring { --score-color:var(--green); position:relative; width:41px; height:41px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--score-color) calc(var(--score)*1%), var(--surface-2) 0); }
.score-ring::after { content:""; position:absolute; inset:4px; background:var(--panel); border-radius:50%; }
.result-card:hover .score-ring::after, .result-card.selected .score-ring::after { background:var(--surface); }
.score-ring strong { z-index:1; font:700 11px var(--mono); }
.score-ring small { position:absolute; z-index:1; top:25px; color:var(--quiet); font-size:5px; letter-spacing:.04em; }
.score-ring.promising { --score-color:var(--blue); }.score-ring.developing { --score-color:var(--orange); }.score-ring.low { --score-color:var(--red); }
.card-top { display:flex; align-items:flex-start; gap:8px; }
.company-name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 12px var(--display); color:var(--text); }
.rank-number { color:var(--quiet); font:500 8px var(--mono); }
.company-location { margin-top:2px; color:var(--muted); font-size:9px; }
.card-contact { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.card-contact a { padding:3px 6px; border:1px solid #91cfb2; border-radius:8px; background:#e9f8f1; color:#176847; text-decoration:none; font:600 8px var(--mono); overflow-wrap:anywhere; }
.card-contact a + a { border-color:#a9c6eb; background:#edf5ff; color:var(--royal-2); }
html[data-theme="dark"] .card-contact a { color:#70d5aa; background:#12392b; border-color:#28684f; }
html[data-theme="dark"] .card-contact a + a { color:#9ec7ff; background:#152b49; border-color:#315786; }
.card-tags, .card-reasons { display:flex; flex-wrap:wrap; gap:4px; margin-top:7px; }
.tag { padding:2px 6px; border-radius:8px; border:1px solid var(--border); color:var(--muted); background:var(--panel); font:500 8px var(--mono); }
.tag.owner { color:#18764e; border-color:#9bd7bb; background:#e9f8f1; }
html[data-theme="dark"] .tag.owner { color:#70d5aa; background:#12392b; border-color:#28684f; }
.reason { color:var(--muted); font-size:8px; }
.reason::before { content:"✓"; margin-right:3px; color:var(--green); font-weight:800; }
.pagination { height:42px; flex-shrink:0; display:flex; align-items:center; justify-content:center; gap:14px; border-top:1px solid var(--border); }
.pagination button { border:0; background:none; color:var(--royal-2); font-size:10px; font-weight:700; }
.pagination button:disabled { color:var(--quiet); cursor:default; }
#page-label { color:var(--muted); font:500 9px var(--mono); }

.solar-marker { width:30px!important; height:30px!important; display:grid!important; place-items:center; border-radius:50% 50% 50% 0; transform:rotate(-45deg); border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.28); color:#fff; background:var(--green); }
.solar-marker span { transform:rotate(45deg); font:700 8px var(--mono); }
.solar-marker.promising { background:var(--blue); }.solar-marker.developing { background:var(--orange);}.solar-marker.low { background:var(--red);}
.leaflet-popup-content-wrapper { border-radius:8px; font-family:var(--sans); }
.marker-popup strong { display:block; max-width:210px; margin-bottom:3px; font-family:var(--display); }
.marker-popup span { color:#5d6b7f; font-size:10px; }

dialog { color:var(--text); background:var(--panel); border:1px solid var(--border); box-shadow:0 18px 60px rgba(0,0,0,.28); }
dialog::backdrop { background:rgba(8,18,33,.4); backdrop-filter:blur(2px); }
.detail-drawer { width:min(610px,96vw); height:100vh; max-height:none; margin:0 0 0 auto; padding:0; border-width:0 0 0 1px; overflow:auto; }
.drawer-close { position:sticky; float:right; top:12px; right:12px; z-index:3; width:30px; height:30px; border:1px solid var(--border); border-radius:50%; background:var(--panel); color:var(--muted); font-size:20px; line-height:1; }
.detail-hero { padding:28px 28px 18px; border-bottom:1px solid var(--border); background:linear-gradient(145deg,var(--surface),var(--panel)); }
.detail-hero h2 { margin-right:30px; font-size:24px; }
.detail-location { margin:4px 0 12px; color:var(--muted); font-size:11px; }
.detail-score { display:flex; gap:14px; align-items:center; }
.detail-score-number { font:800 38px var(--display); color:var(--royal-2); }
.detail-score-label strong { display:block; font-size:11px; }.detail-score-label span { color:var(--muted); font-size:9px; }
.detail-section { padding:17px 28px; border-bottom:1px solid var(--border); }
.detail-section h3 { font-size:13px; margin-bottom:10px; }
.ai-brief-section { background:linear-gradient(135deg,rgba(36,95,176,.07),rgba(245,166,35,.06)); }
.ai-brief-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.ai-brief-heading .eyebrow { margin-bottom:3px; font-size:7px; }
.ai-brief-heading h3 { margin:0; }
.ai-brief-status { flex-shrink:0; padding:3px 7px; border:1px solid var(--border); border-radius:9px; background:var(--panel); color:var(--muted); font:600 7px var(--mono); text-transform:uppercase; letter-spacing:.04em; }
.ai-brief-loading,.ai-brief-error { min-height:60px; display:flex; align-items:center; gap:11px; padding:11px; border:1px solid var(--border); border-radius:8px; background:var(--panel); }
.ai-brief-loading .spinner { flex:0 0 auto; width:19px; height:19px; }
.ai-brief-loading strong,.ai-brief-error strong { display:block; font-size:10px; }
.ai-brief-loading small,.ai-brief-error small { display:block; margin-top:3px; color:var(--muted); font-size:8px; line-height:1.45; }
.ai-brief-content { padding:12px; border:1px solid #b8ccec; border-left:3px solid var(--royal-2); border-radius:8px; background:var(--panel); }
.ai-brief-content p { margin:0; color:var(--text); font-size:10px; line-height:1.6; }
.ai-brief-content ul { display:grid; gap:5px; margin:9px 0 0; padding-left:16px; color:var(--muted); font-size:9px; line-height:1.45; }
.ai-brief-caution { margin-top:9px; padding-top:8px; border-top:1px solid var(--border); color:var(--muted); font-size:8px; line-height:1.45; }
.ai-brief-caution strong { margin-right:5px; color:var(--sun-dark); text-transform:uppercase; font:700 7px var(--mono); letter-spacing:.04em; }
.ai-brief-meta { display:block; margin-top:9px; color:var(--quiet); font:500 7px var(--mono); }
.ai-brief-error { justify-content:space-between; border-color:#e6b2b2; background:#fff7f7; }
.ai-brief-error button { flex-shrink:0; border:0; border-radius:5px; padding:6px 9px; background:var(--royal); color:#fff; font-size:8px; font-weight:700; }
html[data-theme="dark"] .ai-brief-content { border-color:#315786; }
html[data-theme="dark"] .ai-brief-error { border-color:#744040; background:#351c24; }
.factor-row { display:grid; grid-template-columns:110px 1fr 52px; align-items:center; gap:8px; margin:8px 0; font-size:9px; }
.factor-track { height:6px; background:var(--surface-2); border-radius:3px; overflow:hidden; }
.factor-fill { height:100%; background:var(--royal-2); border-radius:3px; }
.factor-points { text-align:right; color:var(--muted); font:500 8px var(--mono); }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; }
.detail-field span { display:block; color:var(--quiet); font:600 8px var(--mono); text-transform:uppercase; letter-spacing:.05em; }
.detail-field strong, .detail-field a { display:block; margin-top:2px; color:var(--text); font-size:10px; overflow-wrap:anywhere; }
.detail-field a { color:var(--royal-2); }
.executive-row { padding:7px 0; border-bottom:1px solid var(--border); display:flex; justify-content:space-between; gap:8px; }
.executive-row strong { font-size:10px; }.executive-row span { color:var(--muted); font-size:9px; text-align:right; }
.methodology-modal { width:min(680px,94vw); border-radius:12px; padding:26px; }
.methodology-modal h2 { font-size:24px; }.methodology-modal > p { color:var(--muted); line-height:1.6; font-size:11px; }
.methodology-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:16px 0; }
.method-card { padding:11px; background:var(--surface); border:1px solid var(--border); border-radius:8px; }
.method-card-head { display:flex; justify-content:space-between; font-weight:700; font-size:11px; }.method-card-head strong { color:var(--royal-2); font-family:var(--mono); }
.method-card p { margin:5px 0 0; color:var(--muted); font-size:9px; line-height:1.45; }
.methodology-note { padding:10px; border-left:3px solid var(--sun); background:#fff8e6; color:#674b16; font-size:9px; line-height:1.5; }
html[data-theme="dark"] .methodology-note { background:#382b0f; color:#f1d588; }
.error-banner { margin:10px; padding:12px; border:1px solid #e6b2b2; background:#fff1f1; color:#933; border-radius:7px; font-size:10px; }

/* Guided first-run tutorial */
.tour-veil { position:fixed; inset:0; z-index:1900; opacity:0; pointer-events:none; }
body.tour-running .tour-veil { pointer-events:auto; }
.tour-spot { position:fixed; z-index:1901; pointer-events:none; border:2px solid var(--sun); border-radius:10px; opacity:0; box-shadow:0 0 0 9999px rgba(7,15,30,.68),0 0 0 4px rgba(244,166,29,.28); transition:left .28s cubic-bezier(.16,1,.3,1),top .28s cubic-bezier(.16,1,.3,1),width .28s cubic-bezier(.16,1,.3,1),height .28s cubic-bezier(.16,1,.3,1),opacity .18s; }
.tour-box { position:fixed; z-index:1902; width:370px; max-width:calc(100vw - 24px); padding:15px 16px 13px; border:1px solid var(--border-strong); border-radius:11px; background:var(--panel); color:var(--text); box-shadow:0 22px 65px rgba(0,0,0,.3); opacity:0; visibility:hidden; transition:opacity .18s,visibility .18s,left .26s cubic-bezier(.16,1,.3,1),top .26s cubic-bezier(.16,1,.3,1); }
.tour-box.on { opacity:1; visibility:visible; }.tour-box.centred { width:430px; }
.tour-arrow { position:absolute; width:0; height:0; display:none; }.tour-arrow.a-bottom { top:-9px; margin-left:-9px; border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid var(--border-strong); }.tour-arrow.a-top { bottom:-9px;margin-left:-9px;border-left:9px solid transparent;border-right:9px solid transparent;border-top:9px solid var(--border-strong); }.tour-arrow.a-right { left:-9px;margin-top:-9px;border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:9px solid var(--border-strong); }.tour-arrow.a-left { right:-9px;margin-top:-9px;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:9px solid var(--border-strong); }
.tour-head { display:flex;align-items:center;gap:8px;margin-bottom:5px; }.tour-sec { color:var(--sun-dark);font:700 7px var(--mono);text-transform:uppercase;letter-spacing:.08em; }.tour-x { width:25px;height:25px;margin-left:auto;border:0;border-radius:6px;background:transparent;color:var(--quiet);font-size:19px;line-height:1; }.tour-x:hover { background:var(--surface);color:var(--text); }
.tour-title { margin:0 0 6px;font-size:16px; }.tour-body { margin:0 0 13px;color:var(--muted);font-size:11px;line-height:1.6; }.tour-foot { display:flex;align-items:center;gap:10px;padding-top:10px;border-top:1px solid var(--border); }.tour-dots { display:flex;flex:1;flex-wrap:wrap;gap:3px; }.tour-dots i { width:5px;height:5px;border-radius:50%;background:var(--border-strong); }.tour-dots i.done { background:var(--sun);opacity:.55; }.tour-dots i.on { background:var(--royal-2);transform:scale(1.55); }.tour-actions { display:flex;gap:5px; }.tour-button { padding:5px 8px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--muted);font-size:8px;font-weight:700; }.tour-button.primary { border-color:var(--royal);background:var(--royal);color:#fff; }.tour-button:disabled { opacity:.35;cursor:default; }
#btnTour.pulse { animation:tourPulse 1.8s ease-in-out infinite; }@keyframes tourPulse{0%,100%{box-shadow:0 0 0 0 rgba(244,166,29,.5)}55%{box-shadow:0 0 0 8px rgba(244,166,29,0)}}

/* Account administration */
.admin-page { height:calc(100vh - 58px); overflow:auto; padding:30px clamp(20px,5vw,70px) 60px; background:var(--bg); }
.admin-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;max-width:1200px;margin:0 auto 22px; }.admin-heading h1 { font-size:28px; }.admin-heading p { margin:7px 0 0;color:var(--muted);font-size:11px; }.admin-back { padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:var(--royal-2);text-decoration:none;font-size:9px;font-weight:700; }
.admin-card { max-width:1200px;margin:0 auto 18px;border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden; }.admin-card-title { display:flex;align-items:center;justify-content:space-between;padding:14px 17px;border-bottom:1px solid var(--border); }.admin-card-title h2 { font-size:15px; }.admin-card-title span { color:var(--muted);font:600 8px var(--mono);text-transform:uppercase; }.admin-table-wrap { overflow:auto; }.admin-table { width:100%;border-collapse:collapse;min-width:960px; }.admin-table th { padding:9px 12px;background:var(--surface);color:var(--quiet);font:700 7px var(--mono);text-align:left;text-transform:uppercase;letter-spacing:.05em; }.admin-table td { padding:11px 12px;border-top:1px solid var(--border);font-size:9px;vertical-align:top; }.admin-table td strong,.admin-table td span,.admin-table td small { display:block; }.admin-table td small { margin-top:3px;color:var(--quiet);font-size:7px; }.account-status { display:inline-block!important;width:max-content;padding:3px 6px;border-radius:9px;background:var(--surface);font:700 7px var(--mono);text-transform:uppercase; }.status-approved { color:#176847;background:#e9f8f1; }.status-pending { color:#76500b;background:#fff8dc; }.status-rejected,.status-revoked { color:#933;background:#fff1f1; }.admin-actions { display:flex;align-items:flex-end;flex-wrap:wrap;gap:5px; }.admin-actions button { padding:6px 8px;border:0;border-radius:5px;background:var(--green);color:#fff;font-size:7px;font-weight:700; }.admin-actions button.secondary { background:var(--orange); }.admin-actions button.danger { background:var(--red); }.role-picker { flex:1 0 100%;display:flex;align-items:center;gap:7px;margin-bottom:2px; }.role-picker span { color:var(--quiet);font:700 7px var(--mono);text-transform:uppercase;white-space:nowrap; }.role-picker select { min-width:210px;padding:6px 8px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text);font:600 8px var(--body); }.admin-protected { color:var(--quiet);font-size:8px; }.event-table td { font-family:var(--mono);font-size:7px; }

@media (max-width:1050px) {
  .workspace { grid-template-columns:52% 48%; }
  .filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-legend { flex-direction:column; gap:4px; }
}
@media (max-width:760px) {
  html,body { overflow:auto; }
  .topbar { position:sticky; top:0; }.database-status { display:none; }
  .app-shell { height:auto; min-height:calc(100vh - 58px); flex-direction:column; }
  .mode-nav { width:100%; height:58px; position:sticky; top:58px; flex-direction:row; padding:4px 8px; border-right:0; border-bottom:1px solid var(--border); }
  .mode-button { min-height:48px; min-width:76px; flex-direction:row; }.mode-button svg { width:17px; }.nav-spacer { flex:1; }
  .workspace { display:flex; flex-direction:column; }
  .map-pane { height:42vh; min-height:310px; }.search-pane { min-height:600px; }
  .quick-filters { grid-template-columns:1fr; }.filter-grid { grid-template-columns:1fr 1fr; }
  .methodology-grid { grid-template-columns:1fr; }
}
@media (max-width:1050px) { .brand-subtitle { display:none; }.brand-maker { border-left:0;padding-left:0; } }
@media (max-width:620px) { .brand-name { font-size:13px; }.brand-maker span { display:none; }.topbar-right { gap:6px; }.signed-in-user { display:none; } }

/* Contract pilot: contactability, evidence, workflow and HubSpot export */
.phone-gate { margin-top:8px; padding:6px 9px; border:1px solid #9bd7bb; border-radius:6px; background:#edf9f3; color:#27664c; font-size:9px; }
.phone-gate span { display:inline-grid; place-items:center; width:15px; height:15px; margin-right:4px; border-radius:50%; background:var(--green); color:#fff; font-weight:800; }
html[data-theme="dark"] .phone-gate { background:#12392b; border-color:#28684f; color:#8ce0bb; }
.check-filter { display:flex; align-items:center; gap:7px; min-height:33px; margin-top:14px; padding:0 8px; border:1px solid var(--border); border-radius:6px; background:var(--surface); }
.check-filter input { width:14px; height:14px; margin:0; }
.results-actions { display:flex; align-items:center; gap:7px; }
#export-pilot { border:1px solid var(--royal-2); border-radius:6px; background:var(--royal); color:#fff; padding:5px 8px; font-size:9px; font-weight:700; }
#export-pilot:disabled { opacity:.45; cursor:default; }
.tag.phone-tag { color:#176847; border-color:#91cfb2; background:#e9f8f1; font-weight:700; }
.tag.signal-tag { color:#76500b; border-color:#eac66f; background:#fff8dc; }
html[data-theme="dark"] .tag.phone-tag { color:#70d5aa; background:#12392b; border-color:#28684f; }
html[data-theme="dark"] .tag.signal-tag { color:#f2ce76; background:#3a2c0d; border-color:#675018; }
.workflow-mini { margin-top:6px; color:var(--quiet); font:500 7px var(--mono); text-transform:uppercase; letter-spacing:.035em; }
.call-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0; padding:9px 10px; border:1px solid #95d2b3; border-radius:8px; background:#edf9f3; }
.contact-actions { display:flex; flex-wrap:wrap; gap:6px; min-width:0; }
.call-bar a { flex-shrink:0; padding:7px 10px; border-radius:6px; background:var(--green); color:#fff; text-decoration:none; font-weight:800; font-size:11px; overflow-wrap:anywhere; }
.call-bar a.email-action { background:var(--royal-2); }
.call-bar span { color:#366a54; font-size:9px; text-align:right; }
html[data-theme="dark"] .call-bar { background:#12392b; border-color:#28684f; }.readiness-badge { margin-left:auto; display:flex; align-items:center; gap:6px; padding:6px 8px; border:1px solid #e7c56e; border-radius:7px; background:#fff8dc; }
.readiness-badge strong { color:#9b6500; font:800 20px var(--display); }.readiness-badge span { color:#886919; font:700 6px/1.25 var(--mono); letter-spacing:.05em; }
html[data-theme="dark"] .readiness-badge { background:#3a2c0d; border-color:#675018; }
.section-title-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.section-title-row h3 { margin-bottom:0; }
.section-title-row button,.outline-link { flex-shrink:0; border:1px solid var(--border-strong); border-radius:6px; background:var(--surface); color:var(--royal-2); padding:5px 8px; text-decoration:none; font-size:9px; font-weight:700; }
.section-help { margin:7px 0 10px; color:var(--muted); font-size:9px; line-height:1.45; }
.evidence-card { margin:8px 0; padding:10px; border:1px solid var(--border); border-left:3px solid var(--sun); border-radius:7px; background:var(--surface); }
.evidence-card > div { display:flex; align-items:center; gap:7px; }.evidence-card strong { font-size:10px; }.evidence-category { padding:2px 5px; border-radius:8px; background:var(--surface-2); color:var(--muted); font:600 7px var(--mono); text-transform:uppercase; }
.evidence-card p { margin:6px 0; color:var(--muted); font-size:9px; line-height:1.45; }.evidence-card a { color:var(--royal-2); font-size:8px; font-weight:700; }
.no-evidence { padding:12px; border:1px dashed var(--border-strong); border-radius:7px; color:var(--muted); font-size:9px; line-height:1.5; }
.outreach-card { position:relative; margin:9px 0; padding:11px; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.outreach-card > strong { font-size:10px; }.outreach-card p,.outreach-card pre { margin:7px 0 10px; color:var(--text); font:400 9px/1.55 var(--sans); white-space:pre-wrap; }
.copy-button { border:0; border-radius:5px; padding:5px 8px; background:var(--royal); color:#fff; font-size:8px; font-weight:700; }
.contact-chip-list { display:flex; flex-wrap:wrap; gap:5px; margin-top:12px; }.contact-chip { padding:4px 7px; border:1px solid #a9c6eb; border-radius:10px; background:#edf5ff; color:var(--royal-2); text-decoration:none; font-size:8px; }
.verified-email-block { margin-top:14px; padding:10px; border:1px solid #a9c6eb; border-radius:8px; background:#f5f9ff; }
.verified-email-block > strong { font-size:10px; color:var(--royal-2); }
.verified-email-block .contact-chip-list { margin-top:7px; }
html[data-theme="dark"] .verified-email-block { background:#152b49; border-color:#315786; }
.executive-list { margin-top:10px; }.executive-row > div { display:flex; flex-direction:column; }.executive-row small { color:var(--muted); font-size:8px; }.executive-row a { color:var(--royal-2); text-decoration:none; font-size:9px; font-weight:700; }
.workflow-section { padding-bottom:35px; }.workflow-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.workflow-section label { display:block; }.workflow-section input,.workflow-section select,.workflow-section textarea { display:block; width:100%; margin-top:4px; padding:7px; border:1px solid var(--border); border-radius:6px; background:var(--surface); color:var(--text); font-size:9px; }
.workflow-section textarea { resize:vertical; }.exclude-check { display:flex!important; align-items:center; gap:6px; margin:9px 0; }.exclude-check input { width:14px; height:14px; margin:0; }.save-workflow { border:0; border-radius:6px; padding:7px 11px; background:var(--royal); color:#fff; font-size:9px; font-weight:700; }.save-workflow + span { margin-left:7px; color:var(--green); font-size:9px; }

@media (max-width:1200px) { .quick-filters { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { .quick-filters { grid-template-columns:1fr; }.results-actions #profile-label { display:none; }.call-bar { align-items:flex-start; flex-direction:column; }.call-bar span { text-align:left; }.workflow-grid { grid-template-columns:1fr; } }
