/* ChurchCompass: colors and card/modal look from Grok's mockup (backups/); structure follows Clays Finder. */
:root{--bg:#f7f5f2;--card:#fff;--primary:#2c5f4e;--primary-light:#3d7a65;--accent:#c4a35a;--text:#1f2933;--muted:#5f6670;--border:#e5e1db;--good:#2c5f4e;--ok:#b45309;--weak:#9f1239}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
a{color:var(--primary)}
header{background:var(--primary);color:#fff;padding:14px 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 20px}
header a{color:#fff;text-decoration:none}
.brand h1{margin:0;font-size:1.45rem;letter-spacing:-.02em}.brand p{margin:2px 0 0;opacity:.9;font-size:.9rem}
nav{display:flex;flex-wrap:wrap;gap:6px}
nav a{background:#fff;color:var(--primary);padding:7px 12px;border-radius:6px;font-weight:600;font-size:.88rem}
nav a:hover,nav a[aria-current=page]{background:#f0ede6}
main{max-width:1100px;margin:0 auto;padding:20px}
.draft-banner{background:#fff7e0;border:1px solid #e6cf8a;color:#6b4e00;border-radius:8px;padding:8px 12px;font-size:.85rem;margin-bottom:14px}
.draft-chip{display:inline-block;background:#fff7e0;border:1px solid #e6cf8a;color:#6b4e00;border-radius:4px;font-size:.68rem;font-weight:700;padding:0 5px;letter-spacing:.04em;vertical-align:middle}
.search-bar{background:#fff;padding:14px;border-radius:10px;box-shadow:0 1px 3px rgba(0,0,0,.08);display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end}
.search-bar label{display:flex;flex-direction:column;gap:3px;font-size:.82rem;color:var(--muted);flex:1;min-width:180px}
.search-bar input,.search-bar select{padding:9px 11px;border:1px solid var(--border);border-radius:6px;font-size:1rem;color:var(--text);background:#fff}
#map{height:400px;border-radius:12px;margin-bottom:18px;border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.06);background:#e8e6e1}
.mini-map{height:240px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px}
.card{background:var(--card);border-radius:12px;padding:18px;box-shadow:0 2px 8px rgba(0,0,0,.06);border:1px solid var(--border);transition:transform .15s,box-shadow .15s;position:relative}
.card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.card.highlighted{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.card h3{margin:0 0 4px;font-size:1.12rem}.card h3 a{text-decoration:none;color:var(--text)}.card h3 a::after{content:"";position:absolute;inset:0}
.card .snip{margin:8px 0;font-size:.93rem}.card .src{font-size:.75rem;color:var(--muted)}
.denom{color:var(--muted);font-size:.85rem}
.times{font-size:.85rem;margin-top:6px}
.match{margin-top:8px;font-size:.8rem;color:#6b4e00;background:#fbf4e2;border-radius:6px;padding:4px 8px}
.scores{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.score-pill{font-size:.75rem;padding:2px 9px;border-radius:999px;background:#f3f0eb}
.score-pill.strong{background:#d1fae5;color:#065f46}.score-pill.ok{background:#fef3c7;color:#92400e}.score-pill.weak{background:#fee2e2;color:#991b1b}.score-pill.na{background:#eceae6;color:#555}
.panel{background:#fff;border-radius:12px;padding:20px 22px;border:1px solid var(--border);margin-bottom:18px}
.panel h2{margin-top:0}
.quiz fieldset{border:0;padding:0;margin:0 0 12px}.quiz legend{font-weight:700;margin-bottom:4px}
.quiz label{display:block;margin:5px 0;cursor:pointer}
.quiz .actions{display:flex;gap:8px;flex-wrap:wrap}
.hidden{display:none!important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#f3f0eb;color:var(--text);border:1px solid transparent;padding:9px 14px;border-radius:6px;cursor:pointer;font-weight:600;font-size:.9rem;text-decoration:none;min-height:42px;font-family:inherit;line-height:1.2}
.btn:hover{background:#ebe6dd}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-light);color:#fff}
.btn:focus-visible,nav a:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.btn-note{font-size:.75rem;color:var(--muted);align-self:center}
.about-box,.believe-box,.position-box{background:#f9f8f6;border-left:4px solid var(--primary);padding:14px 18px;margin:14px 0;border-radius:0 8px 8px 0;font-size:.96rem}
.believe-box{border-left-color:var(--accent)}.position-box{border-left-color:#8a8f98}
.about-box h3,.believe-box h3,.position-box h3{margin:0 0 6px;font-size:1rem}
blockquote{margin:6px 0;padding:0}blockquote p{margin:6px 0}
.source{font-size:.8rem;color:var(--muted);margin-top:6px}
.cc-note{font-size:.88rem;color:#3d434b;font-style:italic}
.rating-row{display:grid;grid-template-columns:170px 1fr 110px;align-items:center;gap:10px;padding:9px 0 2px}
.rating-row .rname{font-weight:600}.rating-row .rval{font-size:.9rem;text-align:right}
.style-row{padding:10px 0 4px;margin-top:6px;border-top:1px solid #e5e1da}.style-row .rname{font-weight:600;margin-right:6px}.style-label{display:inline-block;background:#eef3f1;border:1px solid #cfdcd6;border-radius:999px;padding:1px 10px;font-size:.92rem}
.rating-reason{font-size:.82rem;color:var(--muted);padding:0 0 9px;border-bottom:1px solid var(--border)}
.bar{height:8px;background:#eee;border-radius:4px;overflow:hidden}.bar-fill{height:100%;border-radius:4px}
.bar-fill.strong{background:var(--good)}.bar-fill.ok{background:var(--ok)}.bar-fill.weak{background:var(--weak)}
.rating-note{font-size:.82rem;color:var(--muted);margin-top:10px}
dl.facts{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 12px;margin:0}dl.facts dt{font-weight:600}dl.facts dd{margin:0}
dl.facts ul,.plain{margin:0;padding-left:18px}
.notlisted{color:#777;font-style:italic}
.sources{font-size:.8rem;color:var(--muted)}.sources li{margin:2px 0;overflow-wrap:anywhere}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
table.rubric{border-collapse:collapse;width:100%;font-size:.88rem}table.rubric th,table.rubric td{border:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}table.rubric th{background:#f3f0eb}
form label{display:block;margin:10px 0 4px;font-weight:600;font-size:.92rem}
form input,form select,form textarea{width:100%;padding:9px 10px;border:1px solid #c9c4ba;border-radius:6px;font-size:1rem;font-family:inherit;background:#fff}
.status{margin-top:12px;font-weight:600}.status.bad{color:var(--weak)}
.note{background:#fff7e0;border:1px solid #e6cf8a;padding:9px 12px;border-radius:6px;font-size:.88rem}
footer{text-align:center;padding:26px 16px;color:var(--muted);font-size:.84rem;max-width:900px;margin:0 auto}
footer a{color:var(--muted)}
main a,dd,.card{overflow-wrap:anywhere}main a.btn{overflow-wrap:normal}
@media(max-width:760px){main{padding:14px}#map{height:300px}.two{grid-template-columns:1fr}dl.facts{grid-template-columns:minmax(0,1fr)}dl.facts dt{margin-top:6px}
 .rating-row{grid-template-columns:1fr 64px}.rating-row .bar{grid-column:1/-1;grid-row:2}.grid{grid-template-columns:1fr}header{padding:12px 14px}nav a{padding:6px 9px;font-size:.82rem}
 .btn-row .btn{flex:1 1 calc(50% - 8px)}}
/* home-screen app (PWA): safe areas + iPhone install tip (same pattern as Clays Finder) */
header{padding-top:calc(14px + env(safe-area-inset-top,0px));padding-left:calc(20px + env(safe-area-inset-left,0px));padding-right:calc(20px + env(safe-area-inset-right,0px))}
footer{padding-bottom:calc(26px + env(safe-area-inset-bottom,0px))}
.a2hs{position:fixed;left:calc(10px + env(safe-area-inset-left,0px));right:calc(10px + env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:2000;display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #d9d6cc;border-left:4px solid var(--accent);border-radius:10px;padding:10px 40px 10px 10px;box-shadow:0 4px 18px rgba(0,0,0,.18);font-size:.9rem;max-width:520px;margin:0 auto}
.a2hs img{border-radius:9px;flex:none}.a2hs-share{display:inline-block;border:1px solid #bbb;border-radius:5px;padding:0 5px;font-size:.8rem}
.a2hs-x{position:absolute;top:6px;right:6px;background:transparent;border:0;color:#555;font-size:1.4rem;line-height:1;padding:2px 8px;cursor:pointer}
.offline-panel{text-align:center;max-width:560px;margin:30px auto}.offline-panel img{border-radius:20px}
.leaflet-popup-content a{font-weight:600}
.quiz form label{display:flex;align-items:center;gap:8px;margin:6px 0;font-weight:400;font-size:.95rem}
.quiz form input[type=radio],.quiz form input[type=checkbox]{width:auto;margin:0;flex:none;accent-color:var(--primary);width:18px;height:18px}

/* ---- ChurchCompass 5-mile merge: basic listings, map legend/clusters, no-coverage fallback, Ko-fi link ---- */
.card.basic{background:#fbfaf8;box-shadow:none}
.card .addr{font-size:.88rem;margin-top:6px}
.basic-chip{display:inline-block;font-size:.75rem;padding:2px 9px;border-radius:999px;background:#eceae6;color:#3d434b;font-weight:600}
.basic-note{background:#f3f0eb;border-left:4px solid #8a8f98;border-radius:0 8px 8px 0;padding:12px 16px;margin:12px 0;font-size:.95rem}
.cc-basic-pin span{display:block;width:16px;height:16px;border-radius:50%;background:#8a8f98;border:3px solid #fff;box-shadow:0 0 0 1px #5f6670,0 1px 3px rgba(0,0,0,.35)}
.map-legend{margin:-10px 0 8px;font-size:.8rem}
.lg{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-1px;margin:0 4px 0 8px}.lg:first-child{margin-left:0}
.lg-rated{background:#2a81cb;border:2px solid #fff;box-shadow:0 0 0 1px #2a81cb}.lg-basic{background:#8a8f98;border:2px solid #fff;box-shadow:0 0 0 1px #5f6670}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background-color:rgba(44,95,78,.25)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background-color:rgba(44,95,78,.85);color:#fff;font-weight:700}
.nocov{border-left:4px solid #f59e0b}
.nocov h2{margin:0 0 6px;font-size:1.2rem}
.translation{margin-top:6px;font-size:.9rem}.translation p{margin:4px 0}
.gc-found{display:inline-block;margin-top:2px;font-size:.78rem;color:#3d434b}
.table-wrap{overflow-x:auto}
.gc-scale{padding-left:20px}.gc-scale li{margin:3px 0}
.towns p{line-height:1.9}
/* Ko-fi support link (About page button + footer link), styled like Clays Finder's */
.btn-kofi{background:#c8642b;color:#fff;border:0;min-height:44px}
.btn-kofi:hover,.btn-kofi:focus-visible{background:#a9521f;color:#fff}
.support{margin-top:6px}footer .kofi-link{white-space:nowrap}
@media(max-width:480px){.support .btn-kofi{display:flex;width:100%}}
/* rubric table becomes stacked cards on phones (no sideways scrolling, nothing hidden when printed) */
@media(max-width:760px){table.rubric thead{display:none}table.rubric,table.rubric tbody,table.rubric tr,table.rubric th,table.rubric td{display:block;width:100%}
 table.rubric tr{border:1px solid var(--border);border-radius:8px;margin:0 0 12px;overflow:hidden}table.rubric th,table.rubric td{border:0;border-top:1px solid var(--border)}
 table.rubric th{border-top:0;font-size:1rem}table.rubric td::before{content:attr(data-label);display:inline-block;min-width:1.6em;font-weight:700;margin-right:6px;color:var(--primary)}
 table.rubric td[data-label="What it measures"]::before{display:block;margin:0 0 2px}}
/* Info levels (2026-10-18): not-enough-info label, coverage chip, provisional mark, source tags, last checked */
.score-pill.nei{background:#e8eef6;color:#2f4a6d}
.rval.nei{color:#2f4a6d;font-weight:600}
.bar-fill.nei{background:transparent}
.cov-chip{display:inline-block;font-size:.75rem;padding:2px 9px;border-radius:999px;font-weight:600;background:#eceae6;color:#3d434b}
.cov-chip.cov-high{background:#d1fae5;color:#065f46}.cov-chip.cov-medium{background:#fef3c7;color:#92400e}.cov-chip.cov-low{background:#eceae6;color:#3d434b}
.coverage-line{margin:6px 0 2px}.coverage-line .source{display:inline}
.checked-line{margin:2px 0 10px}
.prov-mark{display:inline-block;font-size:.7rem;padding:1px 7px;border-radius:999px;border:1px solid #b9a77a;color:#6b5a2e;background:#fbf7ec;font-weight:600;vertical-align:middle;white-space:nowrap}
.prov-note{font-size:.8rem;color:#6b5a2e}
.stype{font-size:.72rem;color:#4b5563;background:#f1efeb;border-radius:4px;padding:0 5px;white-space:nowrap}
.panel h4{margin:14px 0 4px;font-size:1rem}
@media (max-width:760px){.rating-row{grid-template-columns:1fr auto}.rating-row .rval{min-width:64px;max-width:132px}.rating-row .rval.nei{font-size:.82rem;line-height:1.25}}
/* Near me (2026-10-18): 44px+ touch target, no double-tap zoom delay on iPhone */
.btn-near{min-height:44px;min-width:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.btn-near[aria-busy=true]{opacity:.7;cursor:progress}
.btn-near.on{background:var(--primary);color:#fff}
.search-bar .btn,.near-msg .btn{min-height:44px;touch-action:manipulation}
.near-msg{background:#fff;border-left:4px solid var(--accent);padding:10px 14px;border-radius:8px;margin:-6px 0 14px;box-shadow:0 1px 3px rgba(0,0,0,.08);font-size:.95rem}
.near-msg.bad{border-left-color:#b3261e}
.near-msg p{margin:0 0 6px}.near-msg .btn-row{margin:8px 0 0}
.dist{font-weight:700;color:var(--primary)}
