/* styles.css */
/* ElevatorConstructor v1.0 – 2024-06-09 */
:root{
  --bg:#fdfdfd; --text:#222; --card:#fff;
  --accent:#000; --shadow:0 1px 3px rgba(0,0,0,.1);
}
[data-theme="dark"]{
  --bg:#111; --text:#eee; --card:#1a1a1a;
  --accent:#0af; --shadow:0 1px 3px rgba(0,0,0,.5);
}
*{box-sizing:border-box; margin:0; padding:0}
html{scroll-behavior:smooth}
body{font:16px/1.5 "Inter",sans-serif; background:var(--bg); color:var(--text)}
header{position:sticky;top:0;display:flex;gap:16px;align-items:center;
  padding:12px 24px;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.08);}
header input,header select{width:200px;padding:8px;border:1px solid #ccc;border-radius:4px;}
#vendor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:20px;max-width:1100px;margin:40px auto;}
.card{background:var(--card);border-radius:8px;box-shadow:var(--shadow);padding:16px;
  transition:transform .15s;display:flex;flex-direction:column;min-height:210px;}
.card:hover{transform:translateY(-4px);}
.badge{display:inline-block;margin-top:8px;padding:2px 6px;font-size:.75rem;
  background:var(--accent);color:#fff;border-radius:3px;}
button.visit{margin-top:auto;padding:8px 12px;background:var(--accent);
  color:#fff;border:none;border-radius:4px;cursor:pointer;}
button.visit:hover{background:#333}
footer{background:#222;color:#fafafa;padding:24px;text-align:center}
a{color:var(--accent)}
/* Skeleton shimmer */
.skeleton::before{content:'';position:fixed;inset:0;
  background:linear-gradient(90deg,transparent,rgba(0,0,0,.05),transparent);
  animation:shimmer 1.5s infinite}
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}