:root{
  --bg:#f4f6f7;--panel:#fff;--ink:#172126;--muted:#66747b;--line:#d7dfe2;--accent:#165a67;
  --ok:#2f735a;--warn:#9a6a18;--bad:#9b2b2b;--blue:#3d6487;--purple:#6b568c;--teal:#3f7c78;
  --orange:#a75f24;--rose:#8a5266;--slate:#596870
}
*{box-sizing:border-box}
html,body{margin:0;font-family:Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent)}
header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:#13272d;color:#fff}
header h1{margin:2px 0 4px;font-size:1.6rem}
header p{margin:0;color:#c8d3d6}
header a{color:#fff}
main{display:grid;grid-template-columns:290px 1fr 390px;height:calc(100vh - 105px);gap:1px;background:var(--line)}
.filters,.content,#detail{background:var(--panel);min-height:0}
.filters,#detail{padding:16px;overflow:auto}
.filters h2{margin:0 0 12px;font-size:1rem}
.filters input,.filters select,.filters button{width:100%;margin:0 0 9px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff}
.filters button{background:var(--accent);color:#fff;border:0}
#count{font-size:.82rem;color:var(--muted)}
.content{display:grid;grid-template-rows:58% 42%}
#map{width:100%;height:100%}
#cards{overflow:auto;padding:12px;background:var(--bg);display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;cursor:pointer}
.card:hover{border-color:#aab8bd}
.card h3{margin:7px 0 5px;font-size:.95rem}
.card p{margin:4px 0;color:var(--muted);font-size:.8rem}
.card-top,.profile-head{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;flex-wrap:wrap}
.category-label{font-size:.68rem;color:#405159;background:#eef2f3;padding:4px 6px;border-radius:4px}
.tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.tag{background:#edf1f2;padding:3px 5px;border-radius:4px;font-size:.68rem}
.badge{display:inline-block;padding:3px 6px;border-radius:999px;font-size:.68rem;border:1px solid var(--line);white-space:nowrap}
.verified{color:var(--ok);border-color:#a8c9bb;background:#f3faf7}
.confirmed{color:#245f75;border-color:#a6c6d2;background:#f2f8fa}
.partial{color:var(--warn);border-color:#dbc796;background:#fffaf0}
.estimated{color:#795d14;border-color:#d8c67f;background:#fffbed}
.conflicting{color:var(--bad);border-color:#d9aaaa;background:#fff5f5}
.unknown{color:var(--slate);background:#f5f6f6}
.data-flags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.data-flags span{font-size:.64rem;border-radius:4px;padding:3px 5px}
.data-flags .yes{background:#edf7f2;color:var(--ok)}
.data-flags .no{background:#f1f3f4;color:#6c777c}
#detail h2{margin:7px 0 10px;font-size:1.2rem}
#detail h3{margin:16px 0 6px;font-size:.75rem;text-transform:uppercase;color:var(--muted)}
#detail p{line-height:1.45}
.source{border-top:1px solid var(--line);padding:9px 0;font-size:.78rem}
.small-note{font-size:.76rem;color:var(--muted)}
.empty-note{font-size:.78rem;color:var(--muted);padding:9px;border:1px dashed var(--line);border-radius:6px;background:#fafbfb}
.machine-card{border:1px solid var(--line);border-radius:7px;padding:9px;margin:7px 0;background:#fbfcfc}
.machine-card h4{margin:0 0 6px;font-size:.84rem}
.machine-card p{margin:3px 0!important;font-size:.75rem;color:#415159!important}
.capacity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.kv{border:1px solid var(--line);border-radius:6px;padding:7px;background:#fbfcfc}
.kv span{display:block;color:var(--muted);font-size:.66rem}
.kv b{display:block;margin-top:2px;font-size:.78rem}
.capacity-note,.quality-note,.profile-evidence-guide{font-size:.76rem;border:1px solid var(--line);border-radius:6px;padding:8px;background:#fafbfb}
.capacity-evidence{margin-top:8px;font-size:.74rem}
.capacity-evidence small{color:var(--muted)}
.map-legend{margin-top:16px;padding-top:10px;border-top:1px solid var(--line)}
.map-legend h3{font-size:.78rem;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.legend-row{display:flex;gap:7px;align-items:center;font-size:.72rem;margin:5px 0}
.legend-marker,.marker{width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #555;display:inline-block;flex:0 0 auto}
.marker{width:18px;height:18px}
.cat-commercial{background:#2f735a}.cat-supplier{background:#3d6487}.cat-university{background:#6b568c}
.cat-research{background:#3f7c78}.cat-fablab{background:#a75f24}.cat-training{background:#8a5266}
.cat-design{background:#596870}.cat-construction{background:#8b6e3e}.cat-medical{background:#8a5266}
.cat-hub{background:#345b63}.cat-other{background:#7b858a}
.evidence-guide{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.evidence-guide summary{cursor:pointer;font-size:.78rem;font-weight:600}
.evidence-def{margin-top:8px}
.evidence-def b{display:block;font-size:.7rem}
.evidence-def span{display:block;font-size:.68rem;color:var(--muted);line-height:1.35;margin-top:2px}
.profile-evidence-guide{margin-bottom:8px}
.profile-evidence-guide p{margin:4px 0!important}
.quality-note{margin:8px 0;color:#4c5b61}
@media(max-width:1100px){
  main{grid-template-columns:260px 1fr 330px}
}
@media(max-width:900px){
  main{grid-template-columns:1fr;height:auto}
  .content{height:850px}
  .filters,#detail{max-height:none}
}
