/* OffRaid — 300: community route pages (/routes/). Uses the site's style.css variables. */
.cm [hidden]{display:none!important}
.cm-main{min-height:60vh}
.cm .btn{padding:10px 18px;font-size:.92rem;border-color:var(--border-hi);background:var(--surface-hi);color:var(--bone)}
.cm .btn:hover{border-color:var(--orange)}
.cm .btn-primary{background:var(--orange);color:var(--on-brand);border-color:transparent}
.cm .btn-ghost{background:none}
.cm .chip{background:none;border:1px solid var(--border-hi);border-radius:9px;padding:5px 10px;font-size:.8rem;color:var(--bone);cursor:pointer}
.cm .chip:hover{border-color:var(--orange)}
.cm .linkb{background:none;border:0;color:var(--faint);text-decoration:underline;cursor:pointer;font-size:inherit;padding:0}
.cm .muted{color:var(--muted)}
.cm .bad{color:#ff8a7a}
.cm .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.cm-lang{font-size:.85rem;color:var(--muted);margin-right:10px}
.cm-hero{padding:clamp(36px,6vw,64px) 0 10px}
.cm-hero h1{font-size:clamp(2rem,6vw,3.2rem)}
.cm-share{margin-top:18px}
.cm-wrap{padding-bottom:40px}
.cm-filt{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:8px;margin:18px 0}
.cm-filt input,.cm-filt select,.cm-rf textarea,.cm-rf input,#cmRepForm select,#cmRepForm textarea,#cmDlg input,#cmDlg textarea{background:var(--surface);border:1px solid var(--border-hi);color:var(--bone);border-radius:10px;padding:9px 11px;font:inherit;font-size:.9rem;min-width:0;width:100%}
.cm-map{position:relative;height:clamp(280px,48vh,520px);border-radius:16px;overflow:hidden;border:1px solid var(--border);margin:14px 0;background:#1b1f24}
.cm-map-list{height:clamp(240px,36vh,380px)}
.cm-base{position:absolute;left:10px;top:10px;z-index:2;background:rgba(11,12,14,.85);color:var(--bone);border:1px solid var(--border-hi);border-radius:9px;padding:6px 10px;font-size:.8rem;cursor:pointer}
.cm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:10px}
.cm-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px}
.cm-card:hover{border-color:var(--border-hi)}
.cm-card h3{font-size:1.15rem;line-height:1.2}
.cm-cl:hover h3{color:var(--orange)}
.cm-by{color:var(--muted);font-size:.85rem;margin:6px 0}
.cm-st{font-size:.9rem;margin:4px 0 8px}
.cm-chip{display:inline-block;border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700;background:var(--c);color:#0b0c0e}
.cm-sbar{display:flex;height:7px;border-radius:4px;overflow:hidden;background:#2a2e33}
.cm-sleg{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.85rem;color:var(--muted)}
.cm-sleg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.cm-sleg b{color:var(--bone)}
.cm-rt{margin:10px 0 0;font-size:.85rem}
.cm-rt small{color:var(--muted)}
.cm-stars i{font-style:normal;color:#3a4048}
.cm-stars i.on{color:#F5B301}
.cm-stars i.half{color:#a6790a}
.cm-none,.cm-more{margin:20px 0;text-align:center;color:var(--muted)}
.cm-disc{color:var(--faint);font-size:.82rem;margin-top:26px}
.cm-crumb{font-size:.85rem;color:var(--muted);margin:22px 0 10px}
.cm-crumb a:hover{color:var(--orange)}
.cm-route h1{font-size:clamp(1.8rem,5vw,2.8rem)}
.cm-route h2{font-size:1.25rem;margin:0 0 10px}
.cm-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;margin:18px 0}
.cm-stats{display:flex;flex-wrap:wrap;gap:12px}
.cm-stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 16px;min-width:110px}
.cm-stat b{display:block;font:700 1.35rem/1.1 var(--disp)}
.cm-stat b small{font-size:.8rem;color:var(--muted);margin-left:2px}
.cm-stat>small{color:var(--muted);font-size:.78rem}
.cm-g{display:flex;align-items:center;gap:10px}
.cm-acts{display:flex;flex-wrap:wrap;gap:8px}
#cmSave.on{border-color:#F5B301;color:#F5B301}
.cm-surf,.cm-about{margin:18px 0}
.cm-about p{color:#d6d4cf;max-width:75ch}
.cm-ele{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:10px 14px;margin:0 0 18px}
.cm-ele svg{width:100%;height:140px;display:block}
.cm-eleh{display:flex;gap:14px;font-size:.85rem;color:var(--muted);margin-bottom:4px}
.cm-eleh b{color:var(--bone)}
.cm-dot{width:14px;height:14px;border-radius:50%;background:#ECEAE5;border:3px solid #F97316}
.cm-dot.red{background:#EF4444;border-color:#fff}
.cm-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}
.cm-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px}
.cm-rep,.cm-rev{border-top:1px solid var(--border);padding:10px 0;font-size:.9rem}
.cm-rep:first-child,.cm-rev:first-child{border-top:0}
.cm-rep p,.cm-rev p{margin:4px 0;color:#d6d4cf}
.cm-rep small,.cm-rev small{color:var(--muted)}
.cm-vote{display:flex;gap:6px;margin-top:6px}
#cmRepForm,.cm-rf{display:grid;gap:8px;margin-top:10px}
.cm-pick button{background:none;border:0;font-size:1.6rem;color:#3a4048;cursor:pointer;padding:0 2px}
.cm-pick button.on{color:#F5B301}
.cm-note{background:var(--surface-hi);border:1px solid var(--border-hi);border-radius:12px;padding:10px 14px;font-size:.9rem;margin-top:14px}
.cm-note a{color:var(--orange);text-decoration:underline}
.cm-app{margin-top:18px}
.cm-app a{color:var(--orange)}
#cmDlg{background:var(--surface);color:var(--bone);border:1px solid var(--border-hi);border-radius:16px;padding:20px;max-width:min(420px,92vw)}
#cmDlg::backdrop{background:rgba(0,0,0,.6)}
#cmDlg h3{margin-bottom:10px}
.cm-qr{background:#fff;border-radius:10px;padding:8px;width:220px;margin:8px auto}
.cm-pop{color:#0b0c0e}
#cmToast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(20px);opacity:0;background:var(--surface-hi);border:1px solid var(--border-hi);border-radius:12px;padding:10px 16px;font-size:.9rem;transition:.25s;z-index:99;pointer-events:none}
#cmToast.on{opacity:1;transform:translateX(-50%)}
#cmToast.bad{border-color:#ff8a7a}
@media (max-width:820px){
  .cm-filt{grid-template-columns:1fr 1fr}
  .cm-filt input{grid-column:1/-1}
  .cm-cols{grid-template-columns:1fr}
}
