:root {
  --bg: #f5f2ea;
  --ink: #1a1a1a;
  --card: #fffdf8;
  --accent: #0e7a5f;
  --muted: #636363;
  --border: #d9d2c3;
}
body { margin: 0; font-family: 'Georgia', 'Times New Roman', serif; background: linear-gradient(180deg, #f8f6ef 0%, #ede7db 100%); color: var(--ink); }
.topbar { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-bottom: 1px solid var(--border); background: #fffaf0; }
.topbar nav { display: flex; gap: 1rem; align-items: center; }
.container { max-width: 1180px; margin: 1.5rem auto; padding: 0 1rem; }
.card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1rem; margin-bottom: 1rem; }
.stack { display: grid; gap: 0.8rem; }
.filters { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.listing { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 0.9rem; }
.listing-image { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 8px; border: 1px solid var(--border); }
input, select, button { padding: 0.55rem 0.65rem; border-radius: 7px; border: 1px solid var(--border); }
button { background: var(--accent); color: #fff; border-color: var(--accent); cursor: pointer; }
a { color: #1246a0; }
.flash { padding: 0.7rem; border-radius: 8px; margin-bottom: 0.8rem; }
.flash-error { background: #ffefef; border: 1px solid #e2b5b5; }
.flash-success { background: #effaf4; border: 1px solid #9bd2af; }
.inline { display: inline-flex; gap: 0.4rem; margin-bottom: 0.4rem; margin-right: 0.5rem; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 0.5rem; border-bottom: 1px solid var(--border); vertical-align: top; }
