:root{
  --pat-text:#0f172a;
  --pat-muted: rgba(15,23,42,.72);
  --pat-border: rgba(15,23,42,.12);
  --pat-card: rgba(255,255,255,.92);

  --pat-purple:#7c3aed;
  --pat-cyan:#06b6d4;
  --pat-amber:#f59e0b;

  --pat-soft-purple: rgba(124,58,237,.12);
  --pat-soft-cyan: rgba(6,182,212,.12);
  --pat-soft-amber: rgba(245,158,11,.14);
}

.pat-wo{ max-width:1240px; margin:0 auto; padding:12px 10px 18px; }

.pat-wo-header{
  border-radius:18px;
  padding:16px 14px;
  background: linear-gradient(120deg,
    rgba(124,58,237,.14),
    rgba(6,182,212,.12),
    rgba(245,158,11,.10)
  );
  border: 1px solid rgba(124,58,237,.18);
  margin-bottom: 14px;
}

.pat-wo-badge{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  background: rgba(255,255,255,.7);
  border:1px solid rgba(15,23,42,.10);
  margin-bottom:8px;
}

.pat-wo-h2{ margin: 0 0 6px 0; color: var(--pat-text); }
.pat-wo-sub{ color: var(--pat-muted); }

/* Stacked layout */
.pat-wo-layout.pat-wo-layout-stacked{
  display:grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

/* Filters */
.pat-wo-filters{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 10px;
  margin-bottom: 0;
}
@media (max-width: 980px){
  .pat-wo-filters{ grid-template-columns: 1fr 1fr; }
}

.pat-wo-filter label{
  display:block;
  font-size:12px;
  font-weight:900;
  color: rgba(15,23,42,.75);
  margin: 0 0 6px 2px;
}

.pat-wo-filter input,
.pat-wo-filter select{
  width:100%;
  padding:10px 10px;
  border-radius:12px;
  border:1px solid var(--pat-border);
  background:#fff;
  font-size:14px;
  outline:none;
}
.pat-wo-filter input:focus,
.pat-wo-filter select:focus{
  border-color: rgba(124,58,237,.35);
  box-shadow: 0 0 0 3px rgba(124,58,237,.12);
}

/* Map card */
.pat-wo-mapwrap{
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.85);
  box-shadow: 0 10px 24px rgba(15,23,42,.06);
}

.pat-wo-maphead{
  display:flex;
  align-items:center;
  justify-content: space-between;
  padding: 10px 12px;
  background: linear-gradient(120deg, rgba(6,182,212,.10), rgba(124,58,237,.10));
  border-bottom: 1px solid rgba(15,23,42,.08);
}

.pat-wo-maptitle{ font-weight: 950; color: var(--pat-text); }

.pat-wo-mapbtn{
  padding: 8px 10px;
  border-radius: 12px;
  border:1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.85);
  cursor:pointer;
  font-weight: 900;
  font-size: 13px;
}

.pat-wo-map{
  height: 420px; /* compact because it's above the list now */
}
@media (max-width: 980px){
  .pat-wo-map{ height: 360px; }
}

.pat-wo-mapfoot{
  padding: 10px 12px;
  font-size: 13px;
  color: rgba(15,23,42,.78);
  border-top: 1px solid rgba(15,23,42,.08);
  background: rgba(255,255,255,.75);
}

/* Tabs */
.pat-wo-tabs{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
  margin-bottom: 0;
}

.pat-wo-tab{
  border:1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.85);
  padding: 8px 10px;
  border-radius: 999px;
  cursor:pointer;
  font-size:14px;
  display:flex;
  align-items:center;
  gap: 8px;
  transition: transform .08s ease;
}
.pat-wo-tab:hover{ transform: translateY(-1px); }
.pat-wo-tab.is-active{
  border-color: rgba(124,58,237,.35);
  background: linear-gradient(120deg, rgba(124,58,237,.16), rgba(6,182,212,.10));
  font-weight: 900;
}

.pat-wo-count{
  display:inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.12);
  background: rgba(255,255,255,.75);
  font-size:12px;
  opacity:.85;
}

/* List */
.pat-wo-list{ display:grid; gap: 12px; }

/* Cards */
.pat-wo-card{
  border:1px solid var(--pat-border);
  border-radius: 16px;
  padding: 12px;
  background: var(--pat-card);
  box-shadow: 0 10px 24px rgba(15,23,42,.06);
}

.pat-wo-card-top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:baseline;
}
.pat-wo-title{ font-weight: 950; font-size: 16px; color: var(--pat-text); }
.pat-wo-date{ color: rgba(15,23,42,.72); font-size: 13px; white-space: nowrap; }

.pat-wo-meta{
  display:flex;
  gap: 10px;
  margin-top: 10px;
  align-items:center;
  flex-wrap:wrap;
}

.pat-wo-chip{
  border:1px solid rgba(15,23,42,.12);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  background: rgba(255,255,255,.75);
  font-weight: 800;
}
.pat-wo-chip.is-cat{
  background: var(--pat-soft-purple);
  border-color: rgba(124,58,237,.25);
}
.pat-wo-chip.is-dog{
  background: var(--pat-soft-amber);
  border-color: rgba(245,158,11,.30);
}

.pat-wo-where{ color: rgba(15,23,42,.74); font-size: 13px; }
.pat-wo-desc{ margin-top: 10px; color: rgba(15,23,42,.86); }

/* Actions */
.pat-wo-actions{
  margin-top: 12px;
  display:flex;
  gap: 8px;
  flex-wrap:wrap;
}

.pat-wo-btn{
  display:inline-block;
  padding: 9px 12px;
  border-radius: 12px;
  border:1px solid rgba(15,23,42,.15);
  background: rgba(255,255,255,.9);
  cursor:pointer;
  font-size: 13px;
  font-weight: 900;
  text-decoration:none;
}
.pat-wo-btn.is-primary{
  border-color: rgba(124,58,237,.35);
  background: linear-gradient(120deg, rgba(124,58,237,.18), rgba(6,182,212,.12));
}
.pat-wo-btn.is-ghost{
  background: rgba(255,255,255,.70);
}

/* Empty/error */
.pat-wo-empty, .pat-wo-error{
  padding: 12px;
  border-radius: 14px;
  border: 1px dashed rgba(15,23,42,.25);
  background: rgba(255,255,255,.85);
  color: rgba(15,23,42,.85);
}